Defina tarefas paralelas em um fluxo de trabalho do Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Defina tarefas paralelas em um fluxo de trabalho do Step Functions

No tópico anteriorAdicionar lógica condicional, você configurou condições para escolher caminhos diferentes em seu fluxo de trabalho. Até agora, as etapas foram executadas sequencialmente. Neste tópico, você aprenderá como executar duas ou mais etapas simultaneamente usando o Parallel estado.

Ambas as ramificações em um Parallel estado recebem a mesma entrada, mas cada ramificação processa as partes da entrada específicas para ela. Step Functions espera até que cada ramificação seja concluída antes de prosseguir para a próxima etapa.

Você usará o estado Paralelo para verificar simultaneamente a identidade e o endereço do candidato.

Etapa 1: Criar as funções do Lambda para realizar as verificações necessárias

Esse fluxo de trabalho do aplicativo de cartão de crédito invoca duas funções Lambda dentro do estado Em paralelo para verificar a identidade e o endereço do solicitante. Essas verificações são realizadas ao mesmo tempo usando o estado Em paralelo. A máquina de estado conclui a execução só depois do fim da execução de ambas as ramificações paralelas.

Para criar as funções do Lambda de verificação de identidade e verificação de endereço
  1. Em uma nova guia ou janela, abra o console do Lambda e crie duas funções Lambda do Node.js intituladas e. check-identity check-address Para obter informações sobre como criar uma função Lambda usando o console, consulte Criar uma função Lambda no console no AWS Lambda Guia do desenvolvedor.

  2. Abra a página da função check-identity e substitua o código existente na área Fonte do código pelo seguinte 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 a página da função check-address e substitua o código existente na área Fonte do código pelo seguinte 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 as funções do Lambda, na seção Visão geral da função, copie seus respectivos Amazon Resource Names (ARN) e salve-os em um arquivo de texto. Você precisará da função ARNs ao especificar a integração do serviço para o estado de identidade e endereço do solicitante do Verify. Veja a seguir um exemploARN:

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

Etapa 2: Atualizar o fluxo de trabalho, Adicionar tarefas paralelas a serem executadas

No console do Step Functions, você vai atualizar seu fluxo de trabalho para especificar a integração do serviço com as funções do Lambda check-identity e check-address criadas na Etapa 1.

Para adicionar tarefas paralelas ao fluxo de trabalho
  1. Abra a janela do console do Step Functions contendo o protótipo do fluxo de trabalho que você criou no Crie uma máquina de estado em Step Functions.

  2. Escolha o estado Verify identity (Verificar identidade) e, na guia Configuração, faça o seguinte:

    1. Para o Tipo de integração, retenha a seleção-padrão de Otimizado.

      nota

      Usando Step Functions, você pode se integrar com outros Serviços da AWS e orquestre-os em seus fluxos de trabalho. Para obter mais informações sobre integrações de serviços e seus tipos, consulte Integrando serviços com Step Functions

    2. Em Function name (Nome da função), escolha a função do Lambda check-identity na lista suspensa.

    3. Em Carga útil, escolha Inserir carga útil e substitua a carga útil de exemplo pela seguinte como carga útil:

      { "email": "janedoe@example.com", "ssn": "012-00-0000" }
  3. Escolha o estado Verify address (Verificar endereço) e, na guia Configuração, faça o seguinte:

    1. Para o Tipo de integração, retenha a seleção-padrão de Otimizado.

    2. Em Function name (Nome da função), escolha a função do Lambda check-address na lista suspensa.

    3. Em Carga útil, escolha Inserir carga útil e substitua a carga útil de exemplo pela seguinte como carga útil:

      { "street": "123 Any St", "city": "Any Town", "state": "AT", "zip": "01000" }
  4. Escolha Próximo.

Próximas etapas

Na próxima etapaItere sobre itens, você aprenderá a iterar sobre itens.