Tutorial 4: Definir varias tareas para realizarlas en paralelo - 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.

Tutorial 4: Definir varias tareas para realizarlas en paralelo

Hasta ahora, ha aprendido a ejecutar flujos de trabajo de forma secuencial. Sin embargo, puede ejecutar dos o más pasos en paralelo mediante el Parallel estado. Un Parallel estado hace que el intérprete ejecute cada rama simultáneamente.

Ambas ramas de un Parallel estado reciben la misma entrada, pero cada rama procesa las partes de la entrada específicas para ella. Step Functions espera a que cada rama termine de ejecutarse antes de continuar con el siguiente paso.

En este tutorial, utilizará el estado paralelo para comprobar simultáneamente la identidad y la dirección del solicitante.

Paso 1: Cree las funciones de Lambda para realizar las comprobaciones necesarias

Este flujo de trabajo de solicitud de tarjeta de crédito invoca dos funciones de Lambda dentro del estado paralelo para comprobar la identidad y la dirección del solicitante. Estas comprobaciones se realizan simultáneamente mediante el estado paralelo. La máquina de estados completa la ejecución solo después de que ambas ramas paralelas hayan terminado de ejecutarse.

Para crear las funciones Lambda checkidentity y checkaddress
  1. En una pestaña o ventana nueva, abra la consola de Lambda y cree dos funciones Lambda 16.x de Node.js denominadas y. check-identity check-address Para obtener información sobre cómo crear una función Lambda mediante la consola, consulte Crear una función Lambda en la consola en la Guía para desarrolladores. AWS Lambda

  2. Abra la página de la función de verificación de identidad y sustituya el código existente en el área de código fuente por el siguiente código:

    const ssnRegex = /^\d{3}-?\d{2}-?\d{4}$/; const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; class ValidationError extends Error { constructor(message) { super(message); this.name = "CustomValidationError"; } } exports.handler = async (event) => { const { ssn, email } = event; console.log(`SSN: ${ssn} and email: ${email}`); const approved = ssnRegex.test(ssn) && emailRegex.test(email); if (!approved) { throw new ValidationError("Check Identity Validation Failed"); } return { statusCode: 200, body: JSON.stringify({ approved, message: `Identity validation ${approved ? 'passed' : 'failed'}` }) } };
  3. Abra la página de la función de verificación de direcciones y sustituya el código existente en el área de código fuente por el siguiente código:

    class ValidationError extends Error { constructor(message) { super(message); this.name = "CustomAddressValidationError"; } } exports.handler = async event => { const { street, city, state, zip } = event; console.log(`Address information: ${street}, ${city}, ${state} - ${zip}`); const approved = [street, city, state, zip].every(i => i?.trim().length > 0); if (!approved) { throw new ValidationError("Check Address Validation Failed"); } return { statusCode: 200, body: JSON.stringify({ approved, message: `Address validation ${ approved ? 'passed' : 'failed'}` }) } };
  4. Para ambas funciones de Lambda, en la sección Descripción general de las funciones, copie sus respectivos nombres de recursos de Amazon (ARN) y guárdelos en un archivo de texto. Necesitarás la función ARNs para especificar la integración del servicio para el estado de identidad y dirección del solicitante de Verify. El siguiente es un ejemplo de ARN:

    arn:aws:lambda:us-east-2:123456789012:function:HelloWorld

Paso 2: Actualizar el flujo de trabajo: añadir tareas paralelas para realizar

En la consola de Step Functions, actualizarás tu flujo de trabajo para especificar la integración del servicio con las funciones Lambda de identidad y dirección de verificación que creaste en el paso 1.

Para añadir tareas paralelas en el flujo de trabajo
  1. Abra la ventana de la consola de Step Functions que contiene el prototipo de flujo de trabajo que creó enTutorial 1: Cree el prototipo para su máquina de estados.

  2. Seleccione Verificar el estado de identidad y, en la pestaña Configuración, haga lo siguiente:

    1. Para el tipo de integración, mantenga la selección predeterminada de Optimizado.

      nota

      Con Step Functions, puede integrarlas con otras Servicios de AWS y orquestarlas en sus flujos de trabajo. Para obtener más información sobre las integraciones de servicios y sus tipos, consulte Utilización de AWS Step Functions con otros servicios

    2. En Nombre de función, elija la función Lambda de verificación de identidad en la lista desplegable.

    3. En Carga útil, elija Introducir carga útil y, a continuación, sustituya la carga útil de ejemplo por la siguiente como carga útil:

      { "email": "janedoe@example.com", "ssn": "012-00-0000" }
  3. Seleccione Verificar el estado de la dirección y, en la pestaña Configuración, haga lo siguiente:

    1. Para el tipo de integración, mantenga la selección predeterminada de Optimizado.

    2. En Nombre de la función, elija la función Lambda de verificación de direcciones en la lista desplegable.

    3. En Carga útil, elija Introducir carga útil y, a continuación, sustituya la carga útil de ejemplo por la siguiente como carga útil:

      { "street": "123 Any St", "city": "Any Town", "state": "AT", "zip": "01000" }
  4. Elija Siguiente.