Creación de un estado de Step FunctionsMáquinaQue utiliza 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 un estado de Step FunctionsMáquinaQue utiliza Lambda

En este tutorial, creará un flujo de trabajo de un solo paso conAWS Step Functionspara invocar unAWS Lambdafunción.

nota

En Step Functions, un flujo de trabajo se denominamáquina de estado, que es una serie de pasos impulsados por eventos. Cada paso de un flujo de trabajo se denominastate. UNATaskestado representa una unidad de trabajo que otroAWSservicio, tales comoAWS Lambda, se desempeña. UNATaskstate puede llamar a cualquierAWSservicio o API. Para obtener más información, consulte:

Lambda es adecuada paraTaskestados, porque las funciones de Lambda sonsin servidory fácil de escribir. Puede escribir código en la AWS Management Console 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: Creación de una función Lambda

La función Lambda recibe datos de eventos y devuelve un mensaje de saludo.

importante

Asegúrese de que su función Lambda esté bajo la mismaAWSCuenta de yAWSRegión como máquina de estado.

  1. Abra el iconoConsola de Lambday eligeCrear función.

  2. En la página Create function, elija Author from scratch.

  3. En el navegadorInformación básica, configure la función Lambda:

    1. En Function name (Nombre de función), introduzca HelloFunction.

    2. ParaRuntime (Tiempo de ejecución):, eligeNode.js 14.x.

    3. EnCambiar la función de ejecución predeterminada, eligeCrear un nuevo rol con permisos básicos de Lambda.

    4. Elija Create function (Crear función).

    5. Una vez creada la función Lambda, copie el nombre de recurso de Amazon (ARN) de la función de Amazon Resource Name (ARN) 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
  4. Copie el siguiente código para la función Lambda en laFuente de códigoSección sobre de laHelloFunction(Se ha creado el certificado).

    exports.handler = (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.

  5. Elija Implementar.

Paso 2: Probar la función Lambda

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

  1. Seleccione Test (Probar).

  2. En el navegadorConfigurar evento de pruebacuadro de diálogo, escribaHelloEventen laNombre del evento:.

  3. Sustituya los datos de ejemplo por lo siguiente.

    { "who": "AWS Step Functions" }

    La"who"entrada se corresponde con laevent.whoen la función Lambda, completando el saludo. Introducirá los mismos datos de entrada cuando ejecute la máquina de estado.

  4. Seleccione Create (Crear).

  5. En la páginaHelloFunctionpágina, elijaPruebaspara probar la función Lambda con los nuevos datos.

    Los resultados de la prueba se muestran en laResultados de ejecuciónpestaña.

  6. Elija el iconoResultados de ejecuciónpara ver la salida.

Paso 3: Creación de una máquina de estado

UsarConsola de Step Functionspara crear una máquina de estado de que invoquela función Lambda que creó anteriormente en el paso 1.

  1. Abra el iconoConsola de Step Functionsy eligeCreación de una máquina de estado.

    importante

    Asegúrese de que la máquina de estado se encuentra en el mismoAWScuenta y región como la función Lambda que creó anteriormente.

  2. En la páginaElija el método de creaciónpágina, elijaDiseñe visualmente su flujo de trabajo.

  3. ParaTipo, conserva la selección predeterminada, es decir,estándar.

  4. Elija Next (Siguiente). Se abrirá Workflow Studio.

  5. En el navegador de Estados Unidos de la izquierda, elija laActionspanel.

    1. Arrastre y coloque laAWS LambdaInvocarAPI en estado vacío etiquetadoArrastre el primer estado aquí.

      
                                    Navegador de estados
  6. En el navegadorInspectora la derecha, configure la función Lambda y su nombre:

    1. ElegirConfiguracióny, a continuación, edite elNombre de estado, si es necesario.

    2. En el navegadorParámetros del APIsección, elijala función Lambda que ha creado anteriormenteen laNombre de la funciónlista desplegable.

    3. Conservar la selección predeterminada en elCargalista desplegable.

  7. Elija Next (Siguiente).

  8. En la páginaRevisión del código generado, revise la definición de Amazon States Language (ASL) de la máquina de estado, que se genera automáticamente en función de sus selecciones en elActionsyInspectorpanel.

  9. Elija Next (Siguiente).

  10. En Name for your state machine (Nombre para la máquina de estado), escriba un nombre, por ejemplo, LambdaStateMachine.

    nota

    Los nombres de máquina de estado, ejecución y actividad deben tener entre 1 y 80 caracteres de longitud, deben ser únicos para su cuenta yAWSRegión y no debe contener ninguno de los siguientes elementos:

    • espacios en blanco

    • Caracteres comodín (? *)

    • Caracteres de soporte (< > { } [ ])

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

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

    Step Functions le permite crear nombres de máquina de estado, ejecución y actividad que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con Amazon CloudWatch. Para asegurarte de que puedes realizar un seguimiento CloudWatch métricas, elija un nombre que utilice solo caracteres ASCII.

  11. EnRol de ejecución, en elPermisossección, elijaCrear nuevo rol.

  12. Elija Create state machine (Crear máquina de estado).

Paso 4: Inicio de una nueva ejecución

Después de crear la máquina de estado, inicie una ejecución.

  1. En la página LambdaStateMachine, seleccione Start execution (Iniciar ejecución).

    LaComience la ejecuciónSe muestra el cuadro de diálogo.

  2. (Opcional) Para identificar la ejecución, puede especificar un nombre para ella en laNombre. De forma predeterminada, Step Functions genera automáticamente un nombre de ejecución exclusivo.

    nota

    Step Functions le permite crear nombres de máquina de estado, ejecución y actividad que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con Amazon CloudWatch. Para asegurarte de que puedes realizar un seguimiento CloudWatch métricas, elija un nombre que utilice solo caracteres ASCII.

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

    { "who" : "AWS Step Functions" }

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

  4. Elija Start Execution (Iniciar ejecución).

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

  5. Para ver los resultados de la ejecución, elija laSalida de la ejecuciónpestaña.

nota

También puedes pasar cargas útiles mientras invocas Lambda desde una máquina estatal. Para obtener más información y ejemplos sobre la invocación de Lambda mediante la transferencia de carga útil en elParameterscampo, consulteInvocar Lambda con Step Functions.