View a markdown version of this page

Objet x-amazon-apigateway-integration - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Objet x-amazon-apigateway-integration

Spécifie les détails de l’intégration au backend utilisée pour cette méthode. Cette extension est une propriété étendue de l'objet opération OpenAPI. Le résultat est un objet Intégration API Gateway.

Nom de la propriété Type Description
cacheKeyParameters Tableau d'éléments string Liste de paramètres de demande dont les valeurs doivent être mises en cache.
cacheNamespace string Un groupe de API-specific balises contenant des paramètres mis en cache associés.
connectionId string L'ID de a VpcLink pour l'intégration privée.
connectionType string Type de connexion de l’intégration. La valeur valide est "VPC_LINK" pour l’intégration privée ou "INTERNET", dans le cas contraire.
credentials string

Pour les informations d'identification basées sur les rôles AWS IAM, spécifiez l'ARN d'un rôle IAM approprié. Si cette propriété n’est pas spécifiée, les informations d’identification utilisent par défaut les autorisations basées sur la ressource, qui doivent être ajoutées manuellement pour permettre à l’API d’accéder à la ressource. Pour plus d’informations, consultez Accord d’autorisations à l’aide d’une politique de ressources.

Remarque : pour des performances optimales, lorsque vous utilisez les informations d’identification IAM, assurez-vous que les points de terminaison régionaux STS AWS sont activés pour la région où cette API est déployée.

contentHandling string Types de conversion de l’encodage des charges utiles de la demande. Les valeurs valides sont 1) CONVERT_TO_TEXT, pour la conversion d'une charge utile binaire en chaîne encodée en base64 ou pour la conversion d'une charge utile de texte en chaîne encodée en utf-8 ou pour le passage de la charge utile de texte en mode natif sans modification, et 2) CONVERT_TO_BINARY, pour la conversion d'une charge utile de texte en bloc encodé en base64 ou le passage par une charge utile binaire en mode natif sans modification.
httpMethod string Méthode HTTP utilisée dans la demande d’intégration. Pour les appels de fonction Lambda, la valeur doit être POST.
integrationSubtype string Spécifie le sous-type d'intégration pour une intégration AWS de services. Prise en charge uniquement pour les API HTTP. Pour connaître les sous-types d’intégration pris en charge, consultez Référence de sous-type d’intégration.
integrationTarget string L'écouteur ALB ou NLB auquel envoyer la demande. Pris en charge uniquement pour les intégrations privées qui utilisent des liens VPC V2. Pour de plus amples informations, veuillez consulter Configuration des liens VPC V2 dans API Gateway.
passthroughBehavior string Spécifie comment une charge utile de demande d’un type de contenu non mappé est transmise par le biais de la demande d’intégration sans modification. Les valeurs prises en charge sont when_no_templates, when_no_match et never. Pour de plus amples informations, veuillez consulter Integration.passthroughBehavior.
payloadFormatVersion string Spécifie le format de la charge utile envoyée à une intégration. Obligatoire pour les API HTTP. Pour les API HTTP, les valeurs prises en charge pour les intégrations de proxy Lambda sont 1.0 et 2.0. Pour toutes les autres intégrations, 1.0 est la seule valeur prise en charge. Pour en savoir plus, consultez Création d'intégrations de AWS Lambda proxy pour HTTP APIs dans API Gateway et Référence de sous-type d’intégration.
requestParameters Objet x-amazon-apigateway-integration.requestParameters

Pour les API REST, spécifie les mappages des paramètres de demande de méthode aux paramètres de demande d’intégration. Les paramètres de demande pris en charge sont querystring, path, header et body.

Pour les API HTTP, les paramètres de demande sont une carte clé-valeur spécifiant les paramètres qui sont transmis aux intégrations AWS_PROXY avec un paramètre spécifié integrationSubtype. Vous pouvez fournir des valeurs statiques ou des données de demande de carte, des variables intermédiaires ou des variables de contexte évaluées au moment de l'exécution. Pour en savoir plus, consultez la section Création d'intégrations de AWS services pour HTTP APIs dans API Gateway.

requestTemplates Objet x-amazon-apigateway-integration.requestTemplates Modèles de mappage pour la charge utile des demandes des types MIME spécifiés.
responses Objet x-amazon-apigateway-integration.responses Définit les réponses de la méthode et spécifie les mappages de paramètres souhaités ou les mappages de charge utile des réponses d’intégration aux réponses de méthode.
responseTransferMode string Mode de transfert de réponse de l'intégration. Utilisez cette BUFFERED option pour qu'API Gateway attende de recevoir la réponse complète avant de commencer la transmission. Permet STREAM à API Gateway de renvoyer des réponses partielles au client dès qu'elles sont disponibles. Pour en savoir plus, veuillez consulter la section Diffusez la réponse d'intégration pour vos intégrations de proxy dans API Gateway.
timeoutInMillis integer Délais d’expiration de l’intégration compris entre 50 ms et 29 000 ms.
type string

Type d’intégration au backend spécifié. Les valeurs valides sont :

  • http ou http_proxy : pour l’intégration avec un backend HTTP.

  • aws_proxy, pour l'intégration avec les fonctions AWS Lambda.

  • aws, pour l'intégration aux fonctions AWS Lambda ou à d'autres AWS services, tels qu'Amazon DynamoDB, Amazon Simple Notification Service ou Amazon Simple Queue Service.

  • mock : pour l’intégration avec API Gateway sans appel de backend.

Pour plus d’informations sur les types d’intégrations, consultez integration:type.

tlsConfig Objet x-amazon-apigateway-integration.tlsConfig Spécifie la configuration TLS pour une intégration.
uri string URI du point de terminaison du backend. Pour les intégrations de type aws, il s’agit de la valeur d’ARN. Pour l’intégration HTTP, il s’agit de l’URL du point de terminaison HTTP, y compris le schéma https ou http.

Exemples d’objet x-amazon-apigateway-integration

Pour les API HTTP, vous pouvez définir des intégrations dans la section composants de votre définition OpenAPI. Pour en savoir plus, consultez la section Objet x-amazon-apigateway-integrations.

"x-amazon-apigateway-integration": { "$ref": "#/components/x-amazon-apigateway-integrations/integration1" }

L’exemple suivant crée une intégration avec une fonction Lambda. À des fins de démonstration, les exemples de modèles responseTemplates de mappage présentés dans requestTemplates et parmi les exemples ci-dessous sont supposés s'appliquer à la JSON-formatted charge utile suivante : { "name":"value_1", "key":"value_2", "redirect": {"url" :"..."} } pour générer une sortie JSON { "stage":"value_1", "user-id":"value_2" } ou une sortie XML de<stage>value_1</stage>.

"x-amazon-apigateway-integration" : { "type" : "aws", "uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:012345678901:function:HelloWorld/invocations", "httpMethod" : "POST", "credentials" : "arn:aws:iam::012345678901:role/apigateway-invoke-lambda-exec-role", "requestTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " }, "requestParameters" : { "integration.request.path.stage" : "method.request.querystring.version", "integration.request.querystring.provider" : "method.request.querystring.vendor" }, "cacheNamespace" : "cache namespace", "cacheKeyParameters" : [], "responses" : { "2\\d{2}" : { "statusCode" : "200", "responseParameters" : { "method.response.header.requestId" : "integration.response.header.cid" }, "responseTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " } }, "302" : { "statusCode" : "302", "responseParameters" : { "method.response.header.Location" : "integration.response.body.redirect.url" } }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" } } } }

Notez que les guillemets (") pour la chaîne JSON doivent être mis en séquence d’échappement (\") dans les modèles de mappage.