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.
Vous pouvez utiliser Amazon API Gateway pour AWS Step Functions APIs associer vos méthodes à une API API Gateway. Lorsqu'une requête HTTPS est envoyée à une méthode d'API, API Gateway appelle vos actions d'API Step Functions.
Ce didacticiel vous montre comment créer une API qui utilise une ressource et la méthode POST
pour communiquer avec l'action d'API StartExecution
. Vous allez utiliser la console AWS Identity and Access Management (IAM) pour créer un rôle pour API Gateway. Vous allez ensuite utiliser la console API Gateway pour créer une API API Gateway, créer une ressource et une méthode, et associer la méthode à l'action de l'StartExecution
API. En dernier lieu, vous déploierez et testerez votre API.
Note
Bien qu'Amazon API Gateway puisse démarrer une exécution de Step Functions en appelantStartExecution
, vous devez appeler DescribeExecution
pour obtenir le résultat.
Étape 1 : créer un rôle IAM pour API Gateway
Avant de créer votre API API Gateway, vous devez autoriser API Gateway à appeler les actions de l'API Step Functions.
Pour configurer les autorisations pour API Gateway
-
Connectez-vous à la console IAM
et choisissez Rôles, Créer un rôle. -
Sur la page Select trusted entity (Sélectionner une entité de confiance), procédez comme suit :
Pour le type d'entité fiable, conservez la sélection par défaut de Service AWS.
Dans le cas d'utilisation, choisissez API Gateway dans la liste déroulante.
Sélectionnez API Gateway, puis Next.
-
Sur la page Ajouter des autorisations, sélectionnez Suivant.
-
(Facultatif) Sur la page Nom, révision et création, entrez des informations, telles que le nom du rôle. Par exemple, saisissez
APIGatewayToStepFunctions
. Sélectionnez Créer un rôle.
Le rôle IAM apparaît dans la liste des rôles.
-
Choisissez le nom de votre rôle et notez l' ARN de rôle, comme illustré dans l'exemple suivant.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Pour associer une politique au rôle IAM
-
Sur la page Rôles, recherchez votre rôle (
APIGatewayToStepFunctions
), puis choisissez le rôle. -
Dans l'onglet Autorisations, choisissez Ajouter des autorisations, puis choisissez Joindre des politiques.
-
Sur la page Joindre une politique, recherchez
AWSStepFunctionsFullAccess
, choisissez la politique, puis choisissez Ajouter des autorisations.
Étape 2 : Création de votre API API Gateway
Après avoir créé votre rôle IAM, vous pouvez créer votre API API Gateway personnalisée.
Pour créer l’API
-
Ouvrez la console Amazon API Gateway
, puis choisissez Create API. Sur la page Choisissez un type d'API, dans le volet API REST, choisissez Build.
Sur la page Créer une API REST, sélectionnez Nouvelle API, puis entrez le nom
StartExecutionAPI
de l'API.Conservez le type de point de terminaison d'API régional, puis choisissez Create API.
Pour créer une ressource
-
Sur la page Ressources de
StartExecutionAPI
, choisissez Créer une ressource. -
Sur la page Créer une ressource, entrez le nom
execution
de la ressource, puis choisissez Créer une ressource.
Pour créer une méthode POST
-
Choisissez la ressource /execution, puis choisissez Create method.
-
Dans Type de méthode, sélectionnez
POST
. -
Pour Type d’intégration, choisissez Service AWS .
-
Pour Région AWS, choisissez une région dans la liste.
-
Pour Service AWS, choisissez Step Functions dans la liste.
Laissez Sous-domaine AWS vide.
-
Pour la méthode HTTP, choisissez POST dans la liste.
Note
Toutes les actions de l'API Step Functions utilisent la
POST
méthode HTTP. -
Pour Type d’action, sélectionnez Utiliser un nom d’action.
-
Pour Nom de l’action, saisissez
StartExecution
. -
Pour le rôle d'exécution, entrez l'ARN du rôle IAM que vous avez créé précédemment, comme indiqué dans l'exemple suivant.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
-
Conservez les options par défaut pour le cache des informations d'identification et le délai d'expiration par défaut, puis choisissez Enregistrer.
Le mappage visuel entre API Gateway et Step Functions est affiché sur la page d'exécution de la méthode /execution - POST.
Étape 3 : tester et déployer l'API API Gateway
Une fois que vous avez créé l'API, testez-la et déployez-la.
Pour tester la communication entre API Gateway et Step Functions
-
Sur la page /execution - POST - Method Execution, choisissez l'onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.
-
Dans l'onglet /execution - POST - Method Test, copiez les paramètres de demande suivants dans la section Corps de la requête en utilisant l'ARN d'une machine à états existante (ou créez une nouvelle machine à états utilisant une fonction Lambda), puis choisissez Test.
{ "input": "{}", "name": "MyExecution", "stateMachineArn": "
arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld
" }Pour plus d'informations, consultez la syntaxe des
StartExecution
demandes dans la référence de l'AWS Step Functions API.Note
Si vous ne souhaitez pas inclure l'ARN de votre machine d'état dans le corps de votre appel API Gateway, vous pouvez configurer un modèle de mappage dans l'onglet Demande d'intégration, comme indiqué dans l'exemple suivant.
{ "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }
Avec cette approche, vous pouvez spécifier ARNs des machines à états différents en fonction de votre stade de développement (par exemple
dev
,test
, etprod
). Pour plus d'informations sur la spécification des variables d'étape dans un modèle de mappage, consultez$stageVariables
le guide du développeur d'API Gateway. -
L'exécution démarre et l'ARN d'exécution ainsi que sa date d'époque sont affichés sous le corps de la réponse.
{ "executionArn": "
arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution
", "startDate": 1486768956.878 }Note
Vous pouvez consulter l'exécution en choisissant votre machine d'état sur la console AWS Step Functions
.
Pour déployer votre API
-
Sur la page Ressources de
StartExecutionAPI
, choisissez Deploy API. Pour Étape, sélectionnez Nouvelle étape.
Sous Stage name (Nom de l’étape), entrez
alpha
.(Facultatif) Sous Description, entrez une description.
Choisissez Déployer.
Pour tester votre déploiement
-
Sur la page Stages de
StartExecutionAPI
, développez alpha,/, /execution, POST, puis choisissez la méthode POST. -
Sous Method overrides, choisissez l'icône de copie pour copier l'URL d'appel de votre API. L'URL complète doit ressembler à l'exemple suivant.
https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
-
À partir de la ligne de commande, exécutez la commande
curl
à l'aide de l'ARN de votre machine d'état, puis appelez l'URL de votre déploiement, comme illustré dans l'exemple suivant :curl -X POST -d '{"input": "{}","name": "MyExecution","stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"}' https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
L'ARN d'exécution et sa date d'époque sont renvoyés, comme illustré dans l'exemple suivant.
{"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
Note
Si le message d'erreur « jeton d'authentification manquant » s'affiche, assurez-vous que l'URL d'appel se termine par /execution.