Creación de una máquina de estado de Step Functions que utilice Lambda - 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 una máquina de estado de Step Functions que utilice Lambda

En este tutorial, creará un flujo de trabajo de un solo paso AWS Step Functions para invocar una AWS Lambda función.

nota

Step Functions se basa en máquinas de estado y tareas. En Step Functions, un flujo de trabajo se denomina máquina de estado, que consiste en una serie de pasos controlados en eventos. Cada paso de un flujo de trabajo se denomina estado. Un Task estado representa una unidad de trabajo que realiza otro AWS servicio, por ejemplo AWS Lambda. Un estado de tarea puede llamar a Servicio de AWS cualquier API.

Para obtener más información, consulte:

Lambda es adecuado para estados de Task, ya que las funciones de Lambda son sin servidor y fáciles de escribir. Puedes escribir código en el editor AWS Management Console o en tu editor favorito. AWS se ocupa de los detalles necesarios para proporcionar un entorno informático para su función y para ejecutarla.

Paso 1: Crear una función de Lambda

La función de Lambda recibe los datos de evento y devuelve un mensaje de bienvenida.

importante

Asegúrese de que su función Lambda esté en la misma AWS cuenta y AWS región que su máquina de estado.

  1. Abra la consola de Lambda; y elija Crear función.

  2. En la página Crear función, elija Diseñar desde cero.

  3. En Nombre de la función, introduzca HelloFunction.

  4. Mantenga las selecciones predeterminadas para todas las demás opciones y elija Crear función.

  5. Tras crear la función de Lambda, copie el nombre de recurso de Amazon (ARN) de la función que aparece en la esquina superior derecha de la página. Para copiar el ARN, haga clic en 
                                        copy Amazon Resource Name
                                    . A continuación se muestra un ejemplo de ARN:

    arn:aws:lambda:us-east-1:123456789012:function:HelloFunction
  6. Copie el siguiente código para la función Lambda en la sección Código fuente de la HelloFunctionpágina.

    export const handler = async(event, context, callback) => { callback(null, "Hello from " + event.who + "!"); };

    Este código crea un saludo utilizando el campo who de los datos de entrada, proporcionados por el objeto event pasado a la función. Los datos de entrada de esta función se agregan más tarde, cuando se inicia una nueva ejecución. El método callback devuelve el saludo creado a partir de su función.

  7. Elija Implementar.

Paso 2: Probar la función de Lambda

Pruebe la función de Lambda para verla en acción.

  1. Seleccione Probar.

  2. En Nombre del evento, escriba HelloEvent.

  3. Sustituya los datos de Evento JSON por lo siguiente.

    { "who": "AWS Step Functions" }

    La entrada "who" se corresponde con el campo event.who de su función de Lambda y completa el saludo. Introducirá los mismos datos de entrada cuando ejecute su máquina de estado.

  4. Elija Guardar y, a continuación, Probar.

  5. En Resultado de ejecución, expanda Detalles para ver los resultados.

Paso 3: Crear una máquina de estado

Utilice la consola de Step Functions para crear una máquina de estado que invoque la función de Lambda que creó en el paso 1.

  1. Abra la consola de Step Functions y seleccione Crear máquina de estado.

    importante

    Asegúrese de que su máquina de estado esté en la misma AWS cuenta y región que la función Lambda que creó anteriormente.

  2. En el cuadro de diálogo Elegir una plantilla, seleccione En blanco.

  3. Elija Seleccionar. Se abrirá Workflow Studio en Modo Diseño.

  4. En el navegador de estados de la izquierda, asegúrese de que ha elegido la pestaña Acciones. A continuación, proceda del modo siguiente:

    1. Arrastre y suelte la API Invocación de AWS Lambda en el estado vacío con la etiqueta Arrastrar primer estado aquí.

      
                                    Navegador de estados
  5. En el panel Inspector de la derecha, configure la función de Lambda:

    1. En la sección Parámetros de la API, elija la función de Lambda que creó anteriormente en la lista desplegable Nombre de la función.

    2. Mantenga la selección predeterminada en la lista desplegable de Carga útil.

  6. (Opcional) Seleccione Definición para ver la definición de Lenguaje de estados de Amazon (ASL) de la máquina de estado, que se genera automáticamente en función de las selecciones que realice en la pestaña Acciones y el panel Inspector.

  7. Especifique un nombre para la máquina de estado. Para ello, elija el icono de edición situado junto al nombre de la máquina de estado predeterminada de MyStateMachine. A continuación, en Configuración de máquina de estado, especifique un nombre en el cuadro Nombre de la máquina de estado.

    Por ejemplo, introduzca el nombre LambdaStateMachine.

    nota

    Los nombres de máquinas de estado, ejecuciones y tareas de actividad no deben superar los 80 caracteres. Estos nombres deben ser exclusivos para su cuenta y AWS región, y no deben contener ninguno de los siguientes elementos:

    • Espacios en blanco

    • Caracteres comodín (? *)

    • Caracteres entre corchetes (< > { } [ ])

    • Caracteres especiales (: ; , \ | ^ ~ $ # % & ` ")

    • Caracteres de control (\\u0000 - \\u001f o \\u007f - \\u009f).

    Si la máquina de estado es de tipo rápido, puede proporcionar el mismo nombre a varias ejecuciones de la máquina de estado. Step Functions genera un ARN de ejecución único para cada ejecución de una máquina de estado rápida, incluso aunque varias ejecuciones tengan el mismo nombre.

    Step Functions permite crear nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con Amazon. CloudWatch Para asegurarse de que puede realizar un seguimiento de CloudWatch las métricas, elija un nombre que utilice únicamente caracteres ASCII.

  8. (Opcional) En Configuración de máquina de estado, especifique otros ajustes del flujo de trabajo, como el tipo de máquina de estado y su función de ejecución.

    Para este tutorial, mantenga todas las selecciones predeterminadas en Configuración de máquina de estado.

  9. Seleccione Crear.

  10. En el cuadro de diálogo Confirmar creación de rol, elija Confirmar para continuar.

    También puede seleccionar Ver configuración de rol para volver a Configuración de máquina de estado.

    nota

    Si se elimina el rol de IAM que crea Step Functions, no se podrá volver a crear más adelante. Asimismo, si se modifica el rol (por ejemplo, eliminando Step Functions de las entidades principales de la política de IAM), Step Functions no podrá restablecer la configuración original más adelante.

Paso 4: Ejecutar la máquina de estado

Después de crear la máquina de estado, puede ejecutarla.

  1. En la página Máquinas de estado, elija LambdaStateMachine.

  2. Seleccione Iniciar ejecución.

    Aparece el cuadro de diálogo Iniciar ejecución.

  3. (Opcional) Para identificar la ejecución, puede especificar un nombre en el cuadro Nombre. De forma predeterminada, Step Functions genera automáticamente un nombre de ejecución único.

    nota

    Step Functions permite crear nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con Amazon. CloudWatch Para asegurarse de que puede realizar un seguimiento de CloudWatch las métricas, elija un nombre que utilice únicamente caracteres ASCII.

  4. En el área Entrada, sustituya los datos de ejecución de ejemplo por lo siguiente.

    { "who" : "AWS Step Functions" }

    "who" es el nombre de clave que su función de Lambda utiliza para obtener el nombre de la persona a la que se saluda.

  5. Seleccione Iniciar ejecución.

    Se inicia la ejecución de su máquina de estado y aparece una nueva página que muestra la ejecución en funcionamiento.

  6. La consola de Step Functions le dirige a una página cuyo título es su ID de ejecución. Esta página se conoce como Detalles de la ejecución. En esta página, puede revisar los resultados de la ejecución a medida que avanza la ejecución o una vez finalizada.

    Para revisar los resultados de la ejecución, elija los estados individuales en la Vista de gráfico y, a continuación, elija las pestañas individuales del panel Detalles del paso para ver los detalles de cada estado, incluidas la entrada, la salida y la definición, respectivamente. Para obtener más información sobre la ejecución que puede ver en la página Detalles de la ejecución, consulte Página de detalles de ejecución: información general de la interfaz.

    
                            La pestaña Salida del panel de Detalles del paso muestra el resultado devuelto por la ejecución de la máquina de estado.
nota

También puede transferir cargas útiles al invocar a Lambda desde una máquina de estado. Para obtener más información y ejemplos sobre cómo invocar a Lambda pasando la carga útil en el campo Parameters, consulte Invocar Lambda con Step Functions.