Creación de Step Functions API mediante 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.

Creación de Step Functions API mediante API Gateway

Puede utilizar Amazon API Gateway para asociar su AWS Step Functions APIscon métodos en un API GatewayAPI. Cuando se envía una HTTPS solicitud a un API método, API Gateway invoca tus API acciones de Step Functions.

En este tutorial, se muestra cómo crear una API que utilice un recurso y el POST método para comunicarse con la StartExecution API acción. Utilizará el AWS Identity and Access Management (IAM) consola para crear un rol para API Gateway. A continuación, utilizará la consola de API Gateway para crear una API puerta de enlaceAPI, crear un recurso y un método y asignar el método a la StartExecution API acción. Por último, implementará y probará suAPI.

nota

Aunque Amazon API Gateway puede iniciar una ejecución de Step Functions mediante una llamadaStartExecution, usted debe llamar DescribeExecution para obtener el resultado.

Paso 1: Crear un IAM rol para API Gateway

Antes de crear tu API GatewayAPI, debes darle permiso a API Gateway para que llame a las API acciones de Step Functions.

Para configurar los permisos de API Gateway
  1. Inicie sesión en la IAMconsola y elija Roles, Crear rol.

  2. En la página Seleccionar entidad de confianza, haga lo siguiente:

    1. Para el tipo de entidad de confianza, mantenga la selección predeterminada de Servicio de AWS.

    2. En Caso de uso, elija APIGateway en la lista desplegable.

  3. Seleccione APIGateway y, a continuación, elija Siguiente.

  4. Elija Siguiente en la página Agregar permisos.

  5. (Opcional) En la página Asignar nombre, revisar y crear, introduzca los detalles, como el nombre del rol. Por ejemplo, escriba APIGatewayToStepFunctions.

  6. Elija Crear rol.

    El IAM rol aparece en la lista de roles.

  7. Elija el nombre del rol y anote el rol ARN, como se muestra en el siguiente ejemplo.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Para adjuntar una política al IAM rol
  1. En la página Roles, busque su rol (APIGatewayToStepFunctions) y, a continuación, selecciónelo.

  2. En la pestaña Permisos, elija Agregar permisos y, a continuación, Asociar políticas.

  3. En la página Asociar política, busque AWSStepFunctionsFullAccess, elija la política y después elija Asociar política.

Paso 2: Crea tu API puerta de enlace API

Después de crear su IAM rol, puede crear su API Gateway personalizadoAPI.

Para crear el API
  1. Abra la consola de Amazon API Gateway y, a continuación, seleccione Crear API.

  2. En la página Elegir un API tipo, en el RESTAPIpanel, selecciona Crear.

  3. En la REST API página Crear, seleccione Nuevo yAPI, a continuación, introduzca StartExecutionAPI para el APInombre.

  4. Mantenga el tipo de API punto final como Regional y, a continuación, elija Crear API.

Para crear un recurso
  1. En la página de recursos de StartExecutionAPI, elija Crear recurso.

  2. En la página Crear recurso, escriba execution como Nombre del recurso y, a continuación, elija Crear recurso.

Para crear un método POST
  1. Seleccione el recurso /execution y, a continuación, elija Crear método.

  2. En Tipo de método, elija POST.

  3. En Tipo de integración, elija AWS servicio.

  4. En Región de AWS, elija una región de la lista.

  5. En Servicio de AWS, seleccione Step Functions de la lista.

  6. Conservar AWS subdominio en blanco.

  7. Para el HTTPmétodo, selecciónelo POSTde la lista.

    nota

    Todas las API acciones de Step Functions utilizan HTTP POST este método.

  8. En Tipo de acción, elija Usar nombre de acción.

  9. En Nombre de la función, introduzca StartExecution.

  10. En el rol de ejecución, introduzca el rol ARN del IAM rol que creó anteriormente, como se muestra en el siguiente ejemplo.

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  11. Mantenga las opciones predeterminadas para Caché de credenciales y Tiempo de espera predeterminado y, a continuación, seleccione Guardar.

El mapeo visual entre API Gateway y Step Functions se muestra en la página de ejecución del método /execution POST - -.

Paso 3: Probar e implementar la puerta de enlace API API

Una vez que la haya creadoAPI, pruébela e impleméntela.

Para probar la comunicación entre API Gateway y Step Functions
  1. En la página /execution - POST - Ejecución del método, seleccione la pestaña Probar. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.

  2. En la pestaña /execution - POST - Prueba de método, copie los siguientes parámetros de la solicitud en la sección Cuerpo ARN de la solicitud utilizando una máquina de estados existente (o cree una nueva máquina de estados que utilice una función Lambda) y, a continuación, elija Probar.

    { "input": "{}", "name": "MyExecution", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }

    Para obtener más información, consulte la sintaxis de la StartExecution solicitud en AWS Step Functions APIReferencia.

    nota

    Si no desea incluir la máquina ARN de estado en el cuerpo de su llamada a API Gateway, puede configurar una plantilla de mapeo en la pestaña de solicitud de integración, como se muestra en el siguiente ejemplo.

    { "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }

    Con este enfoque, puede especificar diferentes máquinas ARNs de estado en función de su etapa de desarrollo (por ejemplodev,test, yprod). Para obtener más información sobre cómo especificar las variables de fase en una plantilla de mapeo, consulte $stageVariablesla Guía para desarrolladores de API Gateway.

  3. La ejecución comienza y la ejecución ARN y su fecha de época se muestran en el cuerpo de la respuesta.

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

    Puede ver la ejecución seleccionando su máquina de estados en el AWS Step Functions consola.

Para implementar su API
  1. En la página de recursos de StartExecutionAPI, elija Implementar API.

  2. En Etapa, seleccione Nueva etapa.

  3. En Stage name (Nombre de etapa), escriba alpha.

  4. (Opcional) En Description (Descripción), introduzca una descripción.

  5. Elija Implementar.

Para probar la implementación
  1. En la página de etapas de StartExecutionAPI, expanda alpha,/, /execution y POST, a continuación, elija el POSTmétodo.

  2. En Modificaciones de métodos, selecciona el icono de copia para copiar tu invocaciónAPI. URL El completo URL debería tener el aspecto del siguiente ejemplo.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. Desde la línea de comandos, ejecute el curl comando con la máquina ARN de estados y, a continuación, invoque la URL de su implementación, como se muestra en el siguiente ejemplo.

    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

    Se devuelven la ejecución ARN y su fecha de época, como se muestra en el siguiente ejemplo.

    {"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
    nota

    Si aparece el error «Falta el token de autenticación», asegúrese de que la invocación URL termine en /execution.