Création d'une Step Functions API à l'aide de API Gateway - AWS Step Functions

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éation d'une Step Functions API à l'aide de API Gateway

Vous pouvez utiliser Amazon API Gateway pour associer votre AWS Step Functions APIsavec des méthodes dans une API passerelleAPI. Lorsqu'une HTTPS requête est envoyée à une API méthode, API Gateway invoque vos API actions Step Functions.

Ce didacticiel explique comment créer un API fichier qui utilise une ressource et POST comment communiquer avec l'StartExecutionAPIaction. Vous utiliserez le AWS Identity and Access Management (IAM) console pour créer un rôle pour API Gateway. Vous allez ensuite utiliser la console API Gateway pour créer une API passerelleAPI, créer une ressource et une méthode, et associer la méthode à l'StartExecutionAPIaction. Enfin, vous allez déployer et tester votreAPI.

Note

Même si Amazon API Gateway peut démarrer une exécution de Step Functions en appelantStartExecution, vous devez appeler DescribeExecution pour obtenir le résultat.

Étape 1 : créer un IAM rôle pour API Gateway

Avant de créer votre API GatewayAPI, vous devez autoriser API Gateway à appeler des API actions Step Functions.

Pour configurer les autorisations pour API Gateway
  1. Connectez-vous à la IAMconsole et choisissez Rôles, Créer un rôle.

  2. Sur la page Select trusted entity (Sélectionner une entité de confiance), procédez comme suit :

    1. Pour le type d'entité fiable, conservez la sélection par défaut de Service AWS.

    2. Pour Cas d'utilisation, choisissez APIGateway dans la liste déroulante.

  3. Sélectionnez APIGateway, puis Next.

  4. Sur la page Ajouter des autorisations, sélectionnez Suivant.

  5. (Facultatif) Sur la page Nom, révision et création, entrez des informations, telles que le nom du rôle. Par exemple, saisissez APIGatewayToStepFunctions.

  6. Sélectionnez Créer un rôle.

    Le IAM rôle apparaît dans la liste des rôles.

  7. Choisissez le nom de votre rôle et notez le rôle ARN, comme indiqué dans l'exemple suivant.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Pour associer une politique au IAM rôle
  1. Sur la page Rôles, recherchez votre rôle (APIGatewayToStepFunctions), puis choisissez le rôle.

  2. Dans l'onglet Autorisations, choisissez Ajouter des autorisations, puis choisissez Joindre des politiques.

  3. Sur la page Joindre une politique, recherchezAWSStepFunctionsFullAccess, choisissez la politique, puis choisissez Ajouter des autorisations.

Étape 2 : Créez votre API passerelle API

Après avoir créé votre IAM rôle, vous pouvez créer votre API passerelle personnaliséeAPI.

Pour créer le API
  1. Ouvrez la console Amazon API Gateway, puis choisissez Create API.

  2. Sur la page Choisissez un API type, dans le RESTAPIvolet, choisissez Créer.

  3. Sur la REST API page Créer, sélectionnez Nouveau API, puis entrez StartExecutionAPI pour le APInom.

  4. Conservez le type de API point de terminaison régional, puis choisissez Create API.

Pour créer une ressource
  1. Sur la page Ressources de StartExecutionAPI, choisissez Créer une ressource.

  2. 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
  1. Choisissez la ressource /execution, puis choisissez Create method.

  2. Dans Type de méthode, sélectionnezPOST.

  3. Pour le type d'intégration, sélectionnez AWS service.

  4. Pour Région AWS, choisissez une région dans la liste.

  5. Pour Service AWS, choisissez Step Functions dans la liste.

  6. Garder AWS sous-domaine vide.

  7. Pour la HTTPméthode, POSTchoisissez dans la liste.

    Note

    Toutes les API actions Step Functions utilisent HTTP POST cette méthode.

  8. Pour Type d’action, sélectionnez Utiliser un nom d’action.

  9. Pour Nom de l’action, saisissez StartExecution.

  10. Pour Rôle d'exécution, entrez le rôle ARN du IAM rôle que vous avez créé précédemment, comme indiqué dans l'exemple suivant.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  11. 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 la API passerelle API

Une fois que vous l'avez crééAPI, testez-le et déployez-le.

Pour tester la communication entre API Gateway et Step Functions
  1. Sur la page /execution - POST - Method Execution, choisissez l'onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Dans l'onglet /execution - POST - Method Test, copiez les paramètres de demande suivants dans la section Corps de la requête à l'aide 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 le AWS Step Functions APIRéférence.

    Note

    Si vous ne souhaitez pas inclure le nom 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 exempledev,test, etprod). Pour plus d'informations sur la spécification de variables d'étape dans un modèle de mappage, consultez $stageVariablesle guide du développeur de API Gateway.

  3. L'exécution commence et l'exécution ARN et sa date d'époque sont affichées sous le corps de la réponse.

    { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution", "startDate": 1486768956.878 }
    Note

    Vous pouvez visualiser l'exécution en choisissant votre machine d'état sur le AWS Step Functions console.

Pour déployer votre API
  1. Sur la page Ressources de StartExecutionAPI, choisissez Deploy API.

  2. Pour Étape, sélectionnez Nouvelle étape.

  3. Sous Stage name (Nom de l'étape), entrez alpha.

  4. (Facultatif) Sous Description, entrez une description.

  5. Choisissez Deploy (Déployer).

Pour tester votre déploiement
  1. Sur la page Stages de StartExecutionAPI, développez alpha,/, /execution POST, puis choisissez la POSTméthode.

  2. Sous Method overrides, choisissez l'icône de copie pour copier votre API invocationURL. L'intégralité URL devrait ressembler à l'exemple suivant.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. À partir de la ligne de commande, exécutez la curl commande à l'aide ARN de votre machine d'état, puis appelez URL celle de votre déploiement, comme indiqué 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'exécution ARN et sa date d'époque sont renvoyées, comme indiqué 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'appel se URL termine par /execution.