HTTP
Le connecteur HTTP fournit une connectivité au service HTTP et vous permet d'utiliser des API basées sur HTTP. Le connecteur est également compatible avec la connectivité SSL/TLS via une configuration personnalisée et avec différents mécanismes d'authentification, tels que l'attribution des identifiants client OAuth 2.0, ou l'authentification de base et Digest.
Avant de commencer
Avant d'utiliser le connecteur HTTP, effectuez les tâches suivantes :
- Dans votre projet Google Cloud :
- Assurez-vous que la connectivité réseau est configurée. Pour en savoir plus sur les schémas de réseau, consultez Connectivité réseau.
- Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le connecteur.
- Attribuez les rôles IAM suivants au compte de service que vous souhaitez utiliser pour le connecteur :
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Un compte de service est un type spécial de compte Google destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google. Si vous ne possédez pas de compte de service, vous devez en créer un. Pour en savoir plus, consultez Créer un compte de service.
- Activez les services suivants :
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Pour savoir comment activer des services, consultez Activer des services.
Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer au moment de configurer le connecteur.
Configurer le connecteur
Une connexion est propre à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit :
- Dans la console Cloud, accédez à la page Connecteurs d'intégration > Connexions, puis sélectionnez ou créez un projet Google Cloud.
- Cliquez sur + Créer pour ouvrir la page Créer une connexion.
- Dans la section Emplacement, choisissez l'emplacement de la connexion.
- Région : sélectionnez un emplacement dans la liste déroulante.
Pour obtenir la liste de toutes les régions disponibles, consultez Emplacements.
- Cliquez sur Suivant.
- Région : sélectionnez un emplacement dans la liste déroulante.
- Dans la section Détails de la connexion, procédez comme suit :
- Connecteur : sélectionnez HTTP dans la liste déroulante des connecteurs disponibles.
- Version du connecteur : sélectionnez la version du connecteur dans la liste déroulante des versions disponibles.
- Dans le champ Nom de connexion, indiquez le nom de l'instance de connexion.
Les noms de connexion doivent répondre aux critères suivants :
- Ils peuvent contenir des lettres, des chiffres ou des traits d'union.
- Les lettres doivent être en minuscules.
- Ils doivent commencer par une lettre et se terminer par une lettre ou un chiffre.
- Ils ne peuvent pas dépasser 49 caractères.
- (Facultatif) Saisissez une description de l'instance de connexion.
- (Facultatif) Activez Cloud Logging, puis sélectionnez un niveau de journalisation. Par défaut, le niveau de journalisation est défini sur
Error
. - Compte de service : sélectionnez un compte de service disposant des rôles requis.
- (Facultatif) Spécifiez une URL de point de terminaison dans le champ Vérification de l'état pour vérifier l'état de la connexion. L'URL peut également inclure une adresse IP de rattachement de point de terminaison. L'état est actif par défaut.
- (Facultatif) Configurez les paramètres des nœuds de connexion :
- Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
- Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.
Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Pour traiter davantage de transactions pour une connexion, vous devez disposer de plus de nœuds. À l'inverse, moins de nœuds sont nécessaires si une connexion traite moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour améliorer la disponibilité) et le nombre maximal de nœuds sur 50.
-
Utiliser un proxy : cochez cette case pour configurer un serveur proxy pour la connexion.
- Cliquez sur + Ajouter une destination.
- Sélectionnez un type de destination.
- Adresse de l'hôte : spécifiez le nom d'hôte ou l'adresse IP de la destination.
Si vous souhaitez établir une connexion privée à votre backend, procédez comme suit :
- Créez un rattachement de service PSC.
- Créez un rattachement de point de terminaison, puis saisissez les détails du rattachement de point de terminaison dans le champ Adresse de l'hôte.
- Adresse de l'hôte : spécifiez le nom d'hôte ou l'adresse IP de la destination.
- (Facultatif) Cliquez sur + AJOUTER UNE ÉTIQUETTE pour ajouter une étiquette à la connexion sous la forme d'une paire clé/valeur.
- Si vous souhaitez utiliser SSL, sélectionnez Activer SSL. Les détails de la configuration SSL s'affichent.
- Sélectionnez un type de truststore. Vous avez le choix entre Public, Privé ou Connexion non sécurisée.
- Sélectionnez les certificats tels qu'ils sont affichés en fonction du magasin de confiance que vous avez choisi.
- Si vous utilisez un certificat autosigné ou un certificat de magasin de confiance privé, stockez le certificat racine en tant que secret Secret Manager au format PEM (Privacy Enhanced Mail), puis sélectionnez le secret requis dans Magasin de confiance personnalisé.
- Si vous utilisez mTLS, sélectionnez les certificats du magasin de clés dans la section Magasin de clés.
- (Facultatif) Sélectionnez la version TLS.
- Saisissez la suite de chiffrement compatible. Pour indiquer plusieurs suites de chiffrement, séparez-les par une virgule. Pour en savoir plus, consultez Suites de chiffrement compatibles.
- Cliquez sur Suivant.
- Dans la section Destinations, saisissez des informations sur l'hôte distant (système backend) auquel vous souhaitez vous connecter.
- Type de destination : sélectionnez un type de destination.
- Pour spécifier le nom d'hôte ou l'adresse IP de la destination, sélectionnez Adresse de l'hôte, puis saisissez l'adresse dans le champ Hôte 1.
- Pour établir une connexion privée, sélectionnez Rattachement de point de terminaison, puis choisissez le rattachement requis dans la liste Rattachement de point de terminaison.
Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité supplémentaire, vous pouvez envisager de configurer des adresses IP sortantes statiques pour vos connexions, puis de configurer vos règles de pare-feu pour ajouter à la liste d'autorisation uniquement les adresses IP statiques spécifiques.
Pour saisir d'autres destinations, cliquez sur + Ajouter une destination.
- Cliquez sur Suivant.
- Type de destination : sélectionnez un type de destination.
-
Dans la section Authentification, saisissez les informations d'authentification.
- Sélectionnez un type d'authentification, puis saisissez les informations appropriées.
Les types d'authentification suivants sont compatibles avec la connexion HTTP :
- Authentification personnalisée
- Attribution des identifiants client OAuth 2.0
- Authentification de base
- Authentification Digest
- Code d'autorisation OAuth 2.0
- Compte de service
- Authentification par jeton d'ID de compte de service
- Authentification par clé API
- Cliquez sur Suivant.
Pour savoir comment configurer ces types d'authentification, consultez Configurer l'authentification.
- Sélectionnez un type d'authentification, puis saisissez les informations appropriées.
- Vérifier : vérifiez vos informations de connexion et d'authentification.
- Cliquez sur Créer.
Configurer l'authentification
Saisissez les informations en fonction de l'authentification que vous souhaitez utiliser.
- Authentification personnalisée
Les détails d'authentification personnalisée peuvent être ajoutés en tant qu'en-tête de requête lors de l'exécution de l'action de la tâche Connecteurs.
- Attribution des identifiants client OAuth 2.0
- ID client : ID client à utiliser pour authentifier la requête HTTP.
- Code secret du client : secret Secret Manager contenant le code secret du client pour l'authentification de la requête HTTP.
- Format de requête pour le jeton d'accès : format de requête à utiliser dans les requêtes effectuées pour récupérer le jeton d'accès sur le serveur d'authentification.
Sélectionnez
body
pour transmettre l'ID client et le secret en tant que corps de requête, ouheader
pour les transmettre en tant qu'en-tête encodé. - Chemin de requête du jeton : chemin d'accès de la requête à ajouter à l'URL du serveur d'authentification pour récupérer l'URL du jeton d'accès.
- Délai d'expiration par défaut : délai d'expiration par défaut (en secondes) du jeton d'accès. Cette durée sera utilisée si la réponse du jeton d'accès ne comporte pas de date/d'heure d'expiration. Si la valeur n'est pas fournie, le jeton sera actualisé dans six heures.
- Authentification de base
- Nom d'utilisateur : nom d'utilisateur utilisé pour effectuer une requête HTTP.
- Mot de passe : secret Secret Manager contenant le mot de passe associé au nom d'utilisateur fourni.
- Authentification Digest
- Nom d'utilisateur : nom d'utilisateur utilisé pour effectuer une requête HTTP.
- Mot de passe : secret Secret Manager contenant le mot de passe associé au nom d'utilisateur fourni.
- Code d'autorisation OAuth 2.0
- ID client : ID client fourni par votre application externe.
- Niveaux d'accès : niveaux d'accès pris en charge par votre application externe.
- Code secret du client : sélectionnez le secret Secret Manager. Vous devez avoir créé le secret Secret Manager avant de configurer cette autorisation.
- Version du secret : version du secret Secret Manager pour le code secret du client.
- (Facultatif) Activez PKCE (Proof Key for Code Exchange, clé de vérification pour l'échange de code) si ce protocole est compatible avec votre serveur backend.
- URL d'autorisation : saisissez l'URL d'autorisation de votre application externe.
- URL du jeton d'accès : saisissez l'URL permettant d'obtenir le jeton d'accès de votre application externe.
- Compte de service
Sélectionnez cette option pour vous authentifier à l'aide du compte de service que vous avez fourni lors des étapes précédentes de la configuration de cette connexion. Assurez-vous d'avoir fourni le compte de service disposant des rôles et des autorisations IAM appropriés pour l'authentification.
- Niveaux d'accès : sélectionnez les niveaux d'accès OAuth 2.0 requis dans le menu déroulant. Pour en savoir plus, consultez Niveaux d'accès.
- Authentification par jeton d'ID de compte de service
Sélectionnez cette option pour vous authentifier à l'aide du jeton d'ID généré à partir du compte de service que vous avez fourni aux étapes précédentes. Cette authentification utilise des jetons Web JSON (JWT) pour l'authentification. Le fournisseur de jetons d'ID signe et émet les jetons JWT pour l'authentification à l'aide d'un compte de service.
- Audience : saisissez les destinataires auxquels le jeton JWT est destiné.
- Nom de l'en-tête : saisissez le nom de l'en-tête du jeton d'ID généré à utiliser dans l'en-tête HTTP. Si vous ne spécifiez aucune valeur pour ce champ, la valeur de clé est définie par défaut sur
Authorization
.
- Authentification par clé API
Sélectionnez cette option pour vous authentifier à l'aide d'une clé API.
- Clé API : sélectionnez le secret Secret Manager de la clé API.
- Version du secret : sélectionnez la version du secret.
- Nom du paramètre de clé API : saisissez un nom de paramètre pour la clé API. Une clé API est envoyée à votre serveur backend sous la forme d'une paire clé-valeur. La valeur que vous saisissez ici sera utilisée comme nom de la clé API que vous avez sélectionnée précédemment.
- Emplacement de la clé API : sélectionnez l'emplacement où vous souhaitez ajouter la clé API dans la requête.
Pour le type d'authentification Authorization code
, après avoir créé la connexion, vous devez effectuer quelques étapes supplémentaires pour configurer l'authentification. Pour en savoir plus, consultez Étapes supplémentaires après la création de la connexion.
Suites de chiffrement compatibles
Version TLS | Suites de chiffrement compatibles |
---|---|
1.2 |
|
1.3 |
|
Étapes supplémentaires après la création de la connexion
Si vous avez sélectionné OAuth 2.0 - Authorization code
pour l'authentification, vous devez effectuer les étapes supplémentaires ci-dessous après avoir créé la connexion :
- Sur la page Connexions, recherchez la connexion que vous venez de créer.
Notez que l'état du nouveau connecteur sera Autorisation requise.
- Cliquez sur Autorisation requise.
Le volet Modifier l'autorisation s'affiche.
- Copiez la valeur de l'URI de redirection dans votre application externe.
- Vérifiez les détails de l'autorisation.
- Cliquez sur Autoriser.
Si l'autorisation aboutit, l'état de la connexion est défini sur Active sur la page Connexions.
Accorder une nouvelle autorisation pour le code d'autorisation
Si vous utilisez le type d'authentification Authorization code
et que vous avez modifié la configuration de votre application HTTP backend, vous devez autoriser à nouveau votre connexion HTTP. Pour autoriser à nouveau une connexion, procédez comme suit :
- Sur la page Connexions, cliquez sur la connexion requise.
La page des détails de la connexion s'ouvre.
- Cliquez sur Modifier pour modifier les détails de la connexion.
- Dans la section Authentification, vérifiez les détails du code d'autorisation OAuth 2.0.
Apportez des modifications, si besoin.
- Cliquez sur Enregistrer. La page des détails de la connexion s'affiche.
- Dans la section Authentification, cliquez sur Modifier l'autorisation. Le volet Autoriser s'affiche.
- Cliquez sur Autoriser.
Si l'autorisation aboutit, l'état de la connexion est défini sur Active sur la page Connexions.
Entités, opérations et actions
Tous les connecteurs Integration Connectors fournissent une couche d'abstraction pour les objets de l'application connectée. Vous ne pouvez accéder aux objets d'une application que par le biais de cette abstraction. L'abstraction vous est présentée en tant qu'entités, opérations et actions.
- Entité : une entité peut être considérée comme un objet ou un ensemble de propriétés dans l'application ou le service connectés. La définition d'une entité diffère d'un connecteur à l'autre. Par exemple, dans un connecteur de base de données, les tables sont les entités, alors que dans un connecteur de serveur de fichiers, ce sont les dossiers, et dans un connecteur de système de messagerie, ce sont les files d'attente.
Toutefois, il est possible qu'un connecteur n'accepte ou ne possède aucune entité. Dans ce cas, la liste
Entities
est vide. - Opération : une opération est l'activité que vous pouvez effectuer sur une entité. Voici les opérations possibles :
Lorsque vous sélectionnez une entité dans la liste proposée, cela génère une liste d'opérations disponibles pour l'entité. Pour obtenir une description détaillée des opérations, consultez les opérations d'entité de la tâche "Connecteurs". Cependant, si un connecteur n'accepte pas l'une des opérations d'entité, cette opération non compatible ne figure pas dans la liste
Operations
. - Action : une action est une fonction de première classe mise à la disposition de l'intégration par le biais de l'interface du connecteur. Une action vous permet de modifier une ou plusieurs entités, et varie d'un connecteur à l'autre. Normalement, une action comporte des paramètres d'entrée et un paramètre de sortie. Toutefois, il est possible qu'un connecteur n'accepte aucune action, auquel cas la liste
Actions
est vide.
Limites du système
Le connecteur HTTP peut traiter 100 transactions par seconde et par nœud, et limite les transactions au-delà de ce seuil. Par défaut, Integration Connectors alloue deux nœuds (pour améliorer la disponibilité) à une connexion.
Pour en savoir plus sur les limites applicables à Integration Connectors, consultez Limites.
Action compatible
La connexion HTTP accepte l'action suivante :
Action HttpRequest
Le connecteur HTTP garantit au moins une tentative d'envoi de la requête au point de terminaison configuré. Ce service est soumis au Contrat de niveau de service (SLA) d'Application Integration. Les tableaux suivants décrivent les paramètres d'entrée et de sortie de l'action HttpRequest.
Paramètres d'entrée de l'action HttpRequest
Nom du paramètre | Type de données | Obligatoire | Description |
---|---|---|---|
Url | Struct | Non | URL à laquelle vous souhaitez envoyer la requête.
L'URL est au format <scheme>://<netloc>/<path>;<params>?<query>#<fragment> .
Si vous fournissez netloc , la valeur remplace le nom d'hôte fourni lors de la création de la connexion. |
Method | Chaîne | Non | Méthode de requête HTTP telle que GET, POST, DELETE ou PUT. La valeur par défaut est GET. |
Headers | Struct | Non | En-têtes de la requête HTTP. |
Body | Chaîne | Non | Corps de la requête HTTP. |
RequestHasBytes | Booléen | Non | Indique s'il faut envoyer la requête sous forme d'octets. Si ce paramètre est défini sur true , vous devez envoyer la requête sous forme de chaîne encodée en base64 dans le paramètre Body . La valeur par défaut est false . |
ResponseHasBytes | Booléen | Non | Indique si la réponse doit être reçue sous forme d'octets. Si la valeur est définie sur true , vous recevrez la réponse sous forme de chaîne encodée en base64 dans le paramètre de sortie ResponseBody . La valeur par défaut est false . |
HttpVersion | Chaîne | Non | Version HTTP à utiliser lors de l'envoi de la requête. Les valeurs acceptées sont 1.1 et 2. Si vous spécifiez la version 2, la négociation ALPN (Application-Layer Protocol Negotiation) a lieu et la version 1.1 est utilisée si le serveur n'est pas compatible avec la version 2. La valeur par défaut est 2. |
ResponseFormat | Chaîne | Non | Spécifie le format de la réponse du connecteur. Les valeurs acceptées sont v1 et v2 .
La valeur par défaut est v1 .
Exemple de réponse v1 : [{ "ResponseBody": "{\n \"status\": 200\n}" }, { "StatusCode": 200.0 }, { "HttpVersion": "2" }, { "ResponseHeaders": { ":status": "200", "content-length": "19" } }] Exemple de réponse v2 : [{ "ResponseBody": "{\n \"status\": 200\n}", "StatusCode": 200.0, "HttpVersion": "2", "ResponseHeaders": { ":status": "200", "content-length": "19" } }] |
FailOnError | Booléen | Non | Spécifie le comportement de la connexion en cas d'erreur dans votre application backend.
La valeur par défaut est |
Timeout | Entier | Non | Délai avant expiration de la requête HTTP, en secondes. La valeur maximale autorisée est de 150 secondes. |
Paramètres de sortie de l'action HttpRequest
Nom du paramètre | Type de données | Description |
---|---|---|
ResponseBody | Chaîne | Réponse reçue du serveur HTTP. |
StatusCode | Entier | Code d'état reçu du serveur HTTP. |
HttpVersion | Chaîne | Version négociée de la requête HTTP. |
ResponseHeaders | Struct | En-têtes de la réponse HTTP sous forme de paires key,value . |
Exemples
Les exemples de cette section décrivent les opérations suivantes :
- Configurer une charge utile de requête
- Envoyer du contenu en octets
- Récupérer du contenu en octets
Le tableau suivant fournit une liste d'exemples de scénarios et la configuration correspondante dans la tâche "Connecteurs" :
Tâche | Configuration |
---|---|
Configurer une charge utile de requête |
Cet exemple envoie une requête POST à l'URL |
Envoyer du contenu en octets |
Pour envoyer du contenu en octets (comme des fichiers), vous devez définir l'attribut de requête
Cet exemple envoie une requête POST au serveur |
Récupérer du contenu en octets |
Pour récupérer du contenu en octets (sous forme de chaîne en base64) à partir du serveur, vous devez définir l'attribut de requête
Cet exemple envoie une requête GET au serveur |
Codes d'erreur
Cette section décrit les messages d'erreur que vous pouvez recevoir lorsque vous utilisez la connexion HTTP.
Message d'erreur | Cause |
---|---|
Erreur de connexion au serveur HTTP | La connexion HTTP n'a pas pu établir de connexion avec le serveur en raison de l'échec du handshake SSL ou d'un point de terminaison de serveur HTTP incorrect. |
Réponse d'erreur reçue du serveur HTTP | Le serveur HTTP auquel vous essayez de vous connecter renvoie une réponse d'erreur avec le code d'état 4xx ou 5xx. Exemple de réponse :
{ "error": { "code": 400, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "metadata": { "Body": "{\"thisIsResponseJSON\":\"someValue\"}" "Error": "Error response received from the HTTP server", "Headers": "{\":status\":[\"400\"], \"access-control-allow-credentials\":[\"true\"]}", "StatusCode": "400", "connection_type": "Http" } } ], "message": "Unable to execute HTTP Request", "status": "FAILED_PRECONDITION" } } |
Erreur lors de la récupération du jeton d'accès | Une erreur s'est produite lors de la récupération du jeton d'accès pour le type d'authentification OAuth Client Credentials Grant . |
Erreur d'authentification Digest | L'environnement d'exécution du connecteur n'a pas reçu la question d'authentification Digest ou le type de la question n'est pas compatible. |
Créer des connexions à l'aide de Terraform
Vous pouvez utiliser la ressource Terraform pour créer une connexion.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Pour afficher un exemple de modèle Terraform permettant de créer une connexion, consultez Exemple de modèle.
Lorsque vous créez cette connexion à l'aide de Terraform, vous devez définir les variables suivantes dans votre fichier de configuration Terraform :
Nom du paramètre | Type de données | Obligatoire | Description |
---|---|---|---|
proxy_enabled | BOOLEAN | False | Cochez cette case afin de configurer un serveur proxy pour la connexion. |
Utiliser la connexion HTTP dans une intégration
Une fois la connexion créée, elle devient disponible dans Apigee Integration et Application Integration. Vous pouvez utiliser la connexion dans une intégration au moyen de la tâche "Connecteurs".
- Pour savoir comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez Tâche "Connecteurs".
- Pour savoir comment créer et utiliser la tâche "Connecteurs" dans Application Integration, consultez Tâche "Connecteurs".
Demander de l'aide à la communauté Google Cloud
Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.Étapes suivantes
- Découvrez comment suspendre et reprendre une connexion.
- Découvrez comment surveiller l'utilisation des connecteurs.
- Découvrez comment afficher les journaux des connecteurs.