Créez des intégrations de AWS services pour HTTP APIs dans Gateway API - APIPasserelle Amazon

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.

Créez des intégrations de AWS services pour HTTP APIs dans Gateway API

Vous pouvez intégrer vos AWS services HTTP API à l'aide d'intégrations de premier ordre. Une intégration de premier ordre connecte un HTTP API itinéraire à un AWS service. API Lorsqu'un client invoque une route soutenue par une intégration de premier ordre, API Gateway invoque un AWS service API pour vous. Par exemple, vous pouvez utiliser des intégrations de premier ordre pour envoyer un message à une file d'attente Amazon Simple Queue Service ou pour démarrer une machine à AWS Step Functions états. Pour connaître les actions de service prises en charge, veuillez consulter Référence de sous-type d'intégration.

Mappage des paramètres de demande

Les intégrations de première classe ont des paramètres requis et des paramètres facultatifs. Vous devez configurer tous les paramètres requis pour créer une intégration. Vous pouvez utiliser des valeurs statiques ou des paramètres de mappage évalués de manière dynamique lors de l'exécution. Pour obtenir la liste complète des intégrations et des paramètres pris en charge, veuillez consulter Référence de sous-type d'intégration.

Le tableau suivant décrit les paramètres de demande de mappage pris en charge.

Type Exemple Remarques
Valeur d'en-tête $request.header.name Les noms d'en-tête ne sont pas sensibles à la casse. APIGateway combine plusieurs valeurs d'en-tête avec des virgules, par exemple"header1": "value1,value2".
Valeur de chaîne de requête $request.querystring.name Les noms de chaîne de requête sont sensibles à la casse. APIGateway combine plusieurs valeurs avec des virgules, par exemple"querystring1": "Value1,Value2".
Paramètre de chemin $request.path.name Valeur d'un paramètre de chemin dans la demande. Par exemple, si l'itinéraire est le cas/pets/{petId}, vous pouvez mapper le petId paramètre de la demande avec $request.path.petId.
Transmission de corps de demande $request.body APILa passerelle fait passer l'intégralité du corps de la demande.
Corps de la demande $request.body.name Une expression de JSON chemin. La descente récursive ($request.body..name) et les expressions de filtre (?(expression)) ne sont pas prises en charge.
Note

Lorsque vous spécifiez un JSON chemin, API Gateway tronque le corps de la demande à 100 Ko, puis applique l'expression de sélection. Pour envoyer des charges utiles supérieures à 100 Ko, spécifiez $request.body.

Variable de contexte $contexte.variableName Valeur d'une variable de contexte prise en charge.
Variable d'étape $stageVariables.variableName Valeur d'une variable d'étape.
Valeur statique string Valeur constante.

Créer une intégration de première classe

Avant de créer une intégration de premier ordre, vous devez créer un IAM rôle qui accorde à API Gateway les autorisations nécessaires pour invoquer l'action de AWS service à laquelle vous procédez à l'intégration. Pour en savoir plus, veuillez consulter Création d'un rôle pour un service AWS.

Pour créer une intégration de premier ordre, choisissez une action de AWS service prise en charge, par exempleSQS-SendMessage, configurez les paramètres de demande et fournissez un rôle qui accorde à API Gateway l'autorisation d'appeler le AWS service API intégré. Selon le sous-type d'intégration, différents paramètres de demande sont requis. Pour en savoir plus, consultez la section Référence de sous-type d'intégration.

La AWS CLI commande suivante crée une intégration qui envoie un SQS message Amazon.

aws apigatewayv2 create-integration \ --api-id abcdef123 \ --integration-subtype SQS-SendMessage \ --integration-type AWS_PROXY \ --payload-format-version 1.0 \ --credentials-arn arn:aws:iam::123456789012:role/apigateway-sqs \ --request-parameters '{"QueueUrl": "$request.header.queueUrl", "MessageBody": "$request.body.message"}'

Créez une intégration de premier ordre en utilisant AWS CloudFormation

L'exemple suivant montre un AWS CloudFormation extrait qui crée un /{source}/{detailType} itinéraire avec une intégration de premier ordre avec Amazon. EventBridge

Le paramètre Source est mappé au paramètre de chemin {source}, le paramètre DetailType au paramètre de chemin {DetailType} et le paramètre Detail au corps de la demande.

L'extrait n'affiche pas le bus d'événements ni le IAM rôle qui accorde à API Gateway les autorisations nécessaires pour invoquer l'PutEventsaction.

Route: Type: AWS::ApiGatewayV2::Route Properties: ApiId: !Ref HttpApi AuthorizationType: None RouteKey: 'POST /{source}/{detailType}' Target: !Join - / - - integrations - !Ref Integration Integration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref HttpApi IntegrationType: AWS_PROXY IntegrationSubtype: EventBridge-PutEvents CredentialsArn: !GetAtt EventBridgeRole.Arn RequestParameters: Source: $request.path.source DetailType: $request.path.detailType Detail: $request.body EventBusName: !GetAtt EventBus.Arn PayloadFormatVersion: "1.0"