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.
Temas
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
-
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 -
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'}` }) } };
-
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'}` }) } };
-
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
Para añadir tareas paralelas en el flujo de trabajo
-
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. -
Seleccione Verificar el estado de identidad y, en la pestaña Configuración, haga lo siguiente:
-
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
-
En Nombre de función, elija la función Lambda de verificación de identidad en la lista desplegable.
-
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" }
-
-
Seleccione Verificar el estado de la dirección y, en la pestaña Configuración, haga lo siguiente:
-
Para el tipo de integración, mantenga la selección predeterminada de Optimizado.
-
En Nombre de la función, elija la función Lambda de verificación de direcciones en la lista desplegable.
-
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" }
-
-
Elija Siguiente.