Defina tareas paralelas en un flujo de trabajo de Step Functions - 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.

Defina tareas paralelas en un flujo de trabajo de Step Functions

En el tema anteriorAñada lógica condicional, configuró las condiciones para elegir diferentes rutas en su flujo de trabajo. Hasta ahora, los pasos se han realizado de forma secuencial. En este tema, aprenderá a ejecutar dos o más pasos simultáneamente utilizando el Parallel estado.

Ambas sucursales de un Parallel estado reciben la misma entrada, pero cada una procesa las partes de la entrada específicas para cada una de ellas. Step Functions espera a que se complete cada rama antes de continuar con el siguiente paso.

Utilizará el estado paralelo para comprobar simultáneamente la identidad y la dirección del solicitante.

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

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

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

  2. Abra la página de la función de check-identity y sustituya el código existente en el área 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 check-address y sustituya el código existente en el área 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 Información general de funciones, copie sus respectivos nombres de recursos de Amazon (ARN) y guárdelos en un archivo de texto. Necesitará la función ARNs al especificar la integración del servicio para el estado de identidad y dirección del solicitante de Verify. A continuación se muestra un ejemploARN:

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

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

En la consola de Step Functions, actualizará el flujo de trabajo para especificar la integración de servicios con las funciones de Lambda check-identity y check-address creadas en el paso 1.

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

  2. Elija el estado Verify identity y haga lo siguiente en la pestaña Configuración:

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

      nota

      Con Step Functions, puede integrarse con otros Servicios de AWS y ordénelos en sus flujos de trabajo. Para obtener más información sobre las integraciones de servicios y sus tipos, consulte Integración de servicios con Step Functions.

    2. En Nombre de la función, elija la función de Lambda check-identity en la lista desplegable.

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

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

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

    2. En Nombre de la función, elija la función de Lambda check-address en la lista desplegable.

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

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

Siguientes pasos

En el siguiente pasoRepite sobre los elementos, aprenderás a iterar los elementos.