Crear una API de Step Functions utilizando 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.

Crear una API de Step Functions utilizando API Gateway

Puede utilizar Amazon API Gateway para asociar sus AWS Step Functions API a los métodos de una API de API Gateway. Cuando se envía una solicitud HTTPS a un método de la API, API Gateway invoca acciones de la API de Step Functions.

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

nota

Aunque Amazon API Gateway puede comenzar una ejecución de Step Functions llamando a StartExecution, usted debe llamar a DescribeExecution para obtener el resultado.

Paso 2: Crear un rol de IAM para API Gateway

Antes de crear su API de API Gateway, debe conceder a API Gateway permiso para llamar a las acciones de la API de Step Functions.

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

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

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

    2. En la lista desplegable, elija API Gateway en la lista desplegable.

  3. Seleccione API Gateway 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 rol de IAM se muestra en la lista de roles.

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

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Para asociar una política al rol de IAM
  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: Crear una API de API Gateway

Después de crear el rol de IAM, puede crear la API de API Gateway personalizada.

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

  2. En la página Elija un tipo de API, en el panel API de REST, seleccione Crear.

  3. En la página Crear API de REST, selecciona Nueva API y, a continuación, introduce StartExecutionAPI como nombre de la API.

  4. Mantenga el Tipo de punto de conexión de la API como Regional y, a continuación, seleccione Crear API.

Para crear un recurso
  1. En la página Recursos de la StartExecutionAPI, selecciona 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, seleccione Servicio de AWS .

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

    nota

    Para conocer las regiones que admiten actualmente Step Functions, consulte Regiones admitidas.

  5. En Servicio de AWS, elija Step Functions en la lista.

  6. Deje Subdominio de AWS en blanco.

  7. En Método HTTP, elija POST en la lista.

    nota

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

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

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

  10. En Rol de ejecución, escriba el ARN del rol de IAM creado anteriormente, como se muestra en el ejemplo siguiente.

    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.

La asignación visual entre API Gateway y Step Functions se muestra en la página /execution - POST - Ejecución de método.

Paso 3: Probar e implementar la API de API Gateway

Una vez que haya creado la API, 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 de método, elija 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 solicitud en la sección Cuerpo de la solicitud utilizando el ARN de una máquina de estado existente (o cree una nueva máquina de estado que utilice una función de 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 StartExecution Sintaxis de solicituden la Referencia de la API de AWS Step Functions .

    nota

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

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

    Con este enfoque puede especificar ARN de diferentes máquinas de estado en función de la etapa de desarrollo (por ejemplo, dev, test y prod). Para obtener más información sobre la especificación de variables de etapa en una plantilla de asignación, consulte $stageVariables en la Guía para desarrolladores de API Gateway.

  3. La ejecución se inicia, y el ARN de ejecución y su fecha de inicio se muestran en Cuerpo de la respuesta.

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

    Puede ver la ejecución eligiendo su máquina de estado en la consola de AWS Step Functions.

Para implementar su API
  1. En la página de recursos de la StartExecutionAPI, selecciona 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. Seleccione Implementar.

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

  2. En Anulaciones de métodos, elija el icono de copia para copiar la URL de invocación de la API. La URL completa deberá ser similar al siguiente ejemplo.

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. Desde la línea de comandos, ejecute el comando curl utilizando el ARN de la máquina de estado y, a continuación, invoque la dirección 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 el ARN de ejecución 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 URL de invocación termine en /execution.