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 utilizando AWS Step Functions para invocar una función de AWS Lambda.
nota
Step Functions se basa en máquinas de estado y tareas. En Step Functions, las máquinas de estado se denominan flujos de trabajo y consisten en una serie de pasos controlados en eventos. Cada paso de un flujo de trabajo se denomina estado. Por ejemplo, un estado Task representa una unidad de trabajo que realiza otro servicio de AWS, como llamar a otro Servicio de AWS u otra API. 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 la Consola de administración de AWS o en el editor de su elección; AWS se encarga de proporcionar un entorno informático para su función y de ejecutarlo.
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 de Lambda se encuentra en la misma cuenta de AWS y Región de AWS que la máquina de estado.
-
Abra la consola de Lambda
; y elija Crear función. -
En la página Crear función, elija Diseñar desde cero.
-
En Nombre de la función, introduzca
HelloFunction. -
Mantenga las selecciones predeterminadas para todas las demás opciones y elija Crear función.
-
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. A continuación se muestra un ejemplo de ARN:
arn:aws:lambda:region:123456789012:function:HelloFunction -
Copie el siguiente código para la función de Lambda en la sección Código fuente de la página
HelloFunction.export const handler = async(event, context, callback) => { callback(null, "Hello from " + event.who + "!"); };Este código crea un saludo utilizando el campo
whode los datos de entrada, proporcionados por el objetoeventpasado 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étodocallbackdevuelve el saludo creado a partir de su función. -
Elija Implementar.
Paso 2: Probar la función de Lambda
Pruebe la función de Lambda para verla en acción.
-
Seleccione Probar.
-
En Nombre del evento, escriba
HelloEvent. -
Sustituya los datos de Evento JSON por lo siguiente.
{ "who": "AWS Step Functions" }La entrada
"who"se corresponde con el campoevent.whode su función de Lambda y completa el saludo. Introducirá los mismos datos de entrada cuando ejecute su máquina de estado. -
Elija Guardar y, a continuación, Probar.
-
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.
-
Abra la consola de Step Functions
, seleccione Máquinas de estado y, a continuación, elija Crear máquina de estado. importante
Asegúrese de que la máquina de estado se encuentra en la misma cuenta y región de AWS que la función de Lambda que ha creado anteriormente.
-
Elija Crear desde cero.
-
Asigne un nombre a la máquina de estado y, a continuación, elija Continuar para editarla en Workflow Studio.
-
En el navegador de estados de la izquierda, asegúrese de que ha elegido la pestaña Acciones. A continuación, arrastre y suelte la API Invocación de AWS Lambda en el estado vacío con la etiqueta Arrastre el primer estado aquí.
-
En el panel Inspector de la derecha, configure la función de Lambda:
-
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.
-
Mantenga la selección predeterminada en la lista desplegable de Carga útil.
-
-
(Opcional) Seleccione Definición para ver la definición de Amazon States Language (ASL) de la máquina de estad o, que se genera automáticamente en función de las selecciones que realice en la pestaña Acciones y el panel Inspector.
-
Especifique un nombre para la máquina de estado. Para ello, elija el icono de edición situado junto al nombre predeterminado de máquina de estado 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 región de AWS, y no deben contener ninguno de los siguientes elementos:
-
Espacios en blanco
-
Caracteres comodín (
? *) -
Caracteres entre corchetes (
< > { } [ ]) -
Caracteres especiales (
" # % \ ^ | ~ ` $ & , ; : /) -
Caracteres de control (
\\u0000-\\u001fo\\u007f-\\u009f).
Step Functions acepta nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Dado que estos caracteres impedirán que Amazon CloudWatch registre datos, le recomendamos que utilice únicamente caracteres ASCII para poder realizar un seguimiento de las métricas en Step Functions.
-
-
(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.
-
Seleccione Crear.
-
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.
-
En la página Máquinas de estado, seleccione LambdaStateMachine.
-
Seleccione Iniciar ejecución.
Aparece el cuadro de diálogo Iniciar ejecución.
-
(Opcional) Introduzca un nombre de ejecución personalizado para anular el valor predeterminado generado.
Nombres y registros con caracteres no ASCII
Step Functions acepta nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Dado que estos caracteres impedirán que Amazon CloudWatch registre datos, le recomendamos que utilice únicamente caracteres ASCII para poder realizar un seguimiento de las métricas en Step Functions.
-
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. -
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.
-
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 Información general sobre 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 Invocación de una función AWS Lambda con Step Functions.