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 mediante AWS Step Functions para invocar un AWS Lambda función.

nota

Step Functions se basa en máquinas y tareas de estados. En Step Functions, las máquinas de estados se denominan flujos de trabajo, que son una serie de pasos basados en eventos. Cada paso de un flujo de trabajo se denomina estado. Por ejemplo, un estado de tarea representa una unidad de trabajo más que otra AWS un servicio realiza, como llamar a otro Servicio de AWS oAPI. Las instancias de flujos de trabajo en ejecución que realizan tareas se denominan ejecuciones en Step Functions.

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. Puede escribir código en AWS Management Console o 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 el mismo nivel AWS cuenta y Región de AWS como tu 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. Una vez creada la función Lambda, copie el nombre del recurso de Amazon (ARN) de la función que aparece en la esquina superior derecha de la página. A continuación se muestra un ejemplo: ARN

    arn:aws:lambda:us-east-1:123456789012:function:HelloFunction
  6. Copie el siguiente código de la función Lambda en la sección Código fuente del 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 JSON datos del evento por los siguientes.

    { "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 estados esté debajo de la misma AWS cuenta y región como la función Lambda que creó anteriormente.

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

  3. Elija Seleccionar para abrir Workflow Studio. 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, arrastre y suelte el AWS Lambda Invoque API al estado vacío denominado Arrastre el primer estado aquí.

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

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

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

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

  7. Especifique un nombre para la máquina de estado. Para ello, seleccione el icono de edición situado junto al nombre de la máquina de estados 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 debe 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).

    Step Functions acepta nombres para máquinas de estados, ejecuciones, actividades y etiquetas que no contengan ASCII caracteres. Como estos personajes no funcionan con Amazon CloudWatch, te recomendamos que utilices solo ASCII caracteres para poder hacer un seguimiento de las métricas CloudWatch.

  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 eliminas el IAM rol que Step Functions crea, Step Functions no podrá volver a crearlo más adelante. Del mismo modo, si modificas el rol (por ejemplo, quitando Step Functions de los principios de la IAM política), Step Functions no podrá restaurar su 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) Introduzca un nombre de ejecución personalizado para anular el valor predeterminado generado.

    ASCIINombres no identificables y registro

    Step Functions acepta nombres para máquinas de estados, ejecuciones, actividades y etiquetas que no contengan ASCII caracteres. Como estos personajes no funcionan con Amazon CloudWatch, te recomendamos que utilices solo ASCII caracteres para poder hacer un seguimiento de las métricas CloudWatch.

  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 Descripción general de los detalles de ejecución.

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 Invoca un AWS Lambda funciona con Step Functions.