Realizar una llamada a API Gateway - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realizar una llamada a API Gateway

Este proyecto de ejemplo muestra cómo utilizar Step Functions para realizar una llamada a API Gateway y comprueba si la llamada se ha realizado correctamente. Este proyecto de muestra crea lo siguiente:

  • API REST de Amazon API Gateway a la que llama el equipo de estado.

  • RelacionadosAWS Identity and Access Management(IAM) roles.

Para obtener más información acerca de las integraciones de servicios de API Gateway y Step Functions, consulte los siguientes temas:

Crear la máquina de estado y aprovisionar recursos

  1. Abra el iconoconsola Step Functionsy eligeCrear máquina de estado de.

  2. ElegirEjecutar un proyecto de ejemploy, a continuación, seleccioneRealizar una llamada a API Gateway.

    Aparecen el Code (Código) y el Visual Workflow (Flujo de trabajo visual) de la máquina de estado.

    
            Flujo de trabajo del modelo de entrenamiento.
  3. Elija Next (Siguiente).

    Se muestra la página Deploy resources (Implementar recursos), que muestra los recursos que se crearán. Para este proyecto de muestra, los recursos incluyen:

    • Una máquina de estado de

    • Una llamada a la API de REST de API Gateway

    • Roles de IAM relacionados

  4. Elija Deploy Resources (Implementar recursos).

    nota

    La creación de estos recursos y los permisos de IAM relacionados puede tardar hasta 10 minutos. Mientras se muestra la página Deploy resources (Implementar recursos), puede abrir el enlace Stack ID (ID de pila) para ver qué recursos se están aprovisionando.

Inicio de una nueva ejecución

  1. Abra el iconoconsola Step Functions.

  2. En la páginaMáquinas de estado, seleccione laApiGatewayWorkflowStateMáquinamáquina de estado creada por el proyecto de muestra y, a continuación, seleccioneComience la ejecución.

  3. En la página New execution (Nueva ejecución), escriba un nombre para la ejecución (opcional) y, a continuación, elija Start Execution (Iniciar ejecución).

  4. (Opcional) Para identificar la ejecución, puede especificar un nombre para ella en laNombre. De forma predeterminada, Step Functions genera automáticamente un nombre de ejecución exclusivo.

    nota

    Step Functions le permite crear nombres de máquina de estado, ejecución y actividad que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con AmazonCloudWatch. Para asegurarte de que puedes realizar un seguimientoCloudWatchmétricas, elija un nombre que utilice solo caracteres ASCII.

  5. (Opcional) Vaya a la máquina de estado recién creada en Step FunctionsSalpicaderoy, a continuación, seleccioneNueva ejecución.

  6. Cuando finalice la ejecución, podrá seleccionar estados en el Visual workflow (Flujo de trabajo visual) y examinar la Input (Entrada) y la Output (Salida) en Step details (Detalles del paso).

Código de la máquina de estado de ejemplo

La máquina de estado de este proyecto de muestra se integra con API Gateway llamando a la API de REST de API Gateway y pasando los parámetros necesarios.

Examine este ejemplo de máquina de estado para ver cómo interactúa Step Functions con API Gateway.

Para obtener más información acerca de cómo AWS Step Functions puede controlar otros servicios de AWS, consulte Utilización de AWS Step Functions con otros servicios.

{ "Comment": "Calling APIGW REST Endpoint", "StartAt": "Add Pet to Store", "States": { "Add Pet to Store": { "Type": "Task", "Resource": "arn:aws:states:::apigateway:invoke", "Parameters": { "ApiEndpoint": "<POST_PETS_API_ENDPOINT>", "Method": "POST", "Stage": "default", "Path": "pets", "RequestBody.$": "$.NewPet", "AuthType": "IAM_ROLE" }, "ResultSelector": { "ResponseBody.$": "$.ResponseBody" }, "Next": "Pet was Added Successfully?" }, "Pet was Added Successfully?": { "Type": "Choice", "Choices": [ { "Variable": "$.ResponseBody.errors", "IsPresent": true, "Next": "Failure" } ], "Default": "Retrieve Pet Store Data" }, "Failure": { "Type": "Fail" }, "Retrieve Pet Store Data": { "Type": "Task", "Resource": "arn:aws:states:::apigateway:invoke", "Parameters": { "ApiEndpoint": "<GET_PETS_API_ENDPOINT>", "Method": "GET", "Stage": "default", "Path": "pets", "AuthType": "IAM_ROLE" }, "ResultSelector": { "Pets.$": "$.ResponseBody" }, "ResultPath": "$.ExistingPets", "End": true } } }

Para obtener información acerca de cómo configurar IAM cuando se utiliza Step Functions con otrosAWSservicios, consultePolíticas de IAM para servicios integrados.

Ejemplo de IAM

Estos ejemplos deAWS Identity and Access ManagementLas políticas de (IAM) generadas por el proyecto de muestra incluyen los privilegios mínimos necesarios para ejecutar la máquina de estado y los recursos relacionados. Le recomendamos que incluya únicamente los permisos necesarios en las políticas de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-west-1:111122223333:c8hqe4kdg5/default/GET/pets", "arn:aws:execute-api:us-west-1:111122223333:c8hqe4kdg5/default/POST/pets" ], "Effect": "Allow" } ] }

Para obtener información acerca de cómo configurar IAM cuando se utiliza Step Functions con otrosAWSservicios, consultePolíticas de IAM para servicios integrados.