Processar um arquivo CSV com o Mapa distribuído - 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á.

Processar um arquivo CSV com o Mapa distribuído

Este projeto de exemplo demonstra como você pode usar o estado Mapa distribuído para iterar mais de 10.000 linhas de um arquivo CSV que é gerado usando uma função do Lambda. O arquivo CSV contém informações de envio dos pedidos do cliente e é armazenado em um bucket do Amazon S3. O Mapa distribuído itera em um lote de 10 linhas no arquivo CSV para análise de dados.

O Mapa distribuído contém uma função do Lambda para detectar qualquer pedido atrasado. O Mapa distribuído também contém um Mapa Inline para processar os pedidos atrasados em um lote e retornar esses pedidos atrasados em uma matriz. Para cada pedido atrasado, o Mapa Inline envia uma mensagem para uma fila do Amazon SQS. Por fim, esse projeto de exemplo armazena os resultados do Execução de mapa em outro bucket do Amazon S3 em seu Conta da AWS.

Com o Mapa distribuído, você pode realizar até 10.000 execuções paralelas de fluxo de trabalho secundário por vez. Neste projeto de exemplo, a simultaneidade máxima do Mapa distribuído é definida em 1000, o que a limita a 1000 execuções paralelas de fluxo de trabalho secundário.

Esse projeto de amostra cria a máquina de estado, os AWS recursos de suporte e configura as permissões relacionadas do IAM. Explore este projeto de exemplo para saber como usar o Mapa distribuído para orquestrar workloads paralelas em grande escala ou usá-lo como ponto de partida para seus próprios projetos.

AWS CloudFormation modelo e recursos adicionais

Você usa um CloudFormation modelo para implantar esse projeto de amostra. Esse modelo cria os seguintes recursos em seu Conta da AWS:

  • Máquina de estado do Step Functions.

  • Função de execução para a máquina de estado. Essa função concede as permissões que sua máquina de estado precisa para acessar outros Serviços da AWS recursos, como a ação Invoke da função Lambda.

  • Uma função do Lambda chamada CSVGeneratorFunction gera um arquivo CSV que contém os detalhes do pedido do cliente.

  • Função de execução para a função do Lambda do gerador CSV. Essa função concede à função permissão para acessar outras Serviços da AWS.

  • Um bucket de entrada do Amazon S3 para armazenar o arquivo CSV gerado.

  • Uma função do Lambda de detecção de pedidos atrasados que analisa os dados do arquivo CSV e detecta qualquer pedido atrasado.

  • Função de execução para a função do Lambda do pedido atrasado. Essa função concede à função permissão para acessar outras Serviços da AWS.

  • Um bucket de saída do Amazon S3 para armazenar os resultados da análise dos pedidos do cliente.

  • Uma fila do Amazon SQS para a qual o Step Functions envia mensagens para cada pedido atrasado. Essas mensagens contêm os IDs dos clientes e de seus pedidos.

  • Um grupo de CloudWatch registros que armazena informações relacionadas ao histórico de execução da máquina de estado.

Importante

Aplicam-se taxas padrão para cada serviço.

Etapa 1: Criar a máquina de estado e provisionar os recursos

  1. Abra o console do Step Functions e clique em Criar máquina de estado.

  2. Digite Distributed Map to process a CSV file in S3 no campo de pesquisa e escolha Mapa distribuído para processar um arquivo CSV no S3 a partir dos resultados da pesquisa que são retornados.

  3. Escolha Próximo para continuar.

  4. Step Functions lista o Serviços da AWS usado no projeto de amostra que você selecionou. Também mostra um gráfico de fluxo de trabalho para o projeto de amostra. Implante esse projeto no seu Conta da AWS ou use-o como ponto de partida para criar seus próprios projetos. Com base em como você deseja prosseguir, escolha Executar uma demonstração ou Criar com base nela.

    Para obter informações sobre os recursos que serão criados para esse projeto de exemplo, consulte AWS CloudFormation modelo e recursos adicionais.

    A imagem a seguir mostra o gráfico do fluxo de trabalho para o Mapa distribuído para processar um arquivo CSV no projeto de exemplo do S3:

    Gráfico de fluxo de trabalho do Mapa distribuído para processar um arquivo CSV no projeto de exemplo do S3.
  5. Escolha Usar modelo para continuar com a seleção.

  6. Execute um destes procedimentos:

    • Se você selecionou Criar com base nela, o Step Functions criará o protótipo do fluxo de trabalho para o projeto de amostra selecionado. O Step Functions não implanta os recursos listados na definição do fluxo de trabalho.

      No Modo de design do Workflow Studio, arraste e solte os estados do Navegador de estados para continuar criando seu protótipo de fluxo de trabalho. Ou mude para o Modo de código que fornece um editor de código integrado semelhante ao VS Code para atualizar a definição Amazon States Language (ASL) de sua máquina de estado no console Step Functions. Para obter mais informações sobre o uso do Workflow Studio para criar suas máquinas de estado, consulte Como usar o Workflow Studio.

      Importante

      Lembre-se de atualizar o espaço reservado do nome do recurso da Amazon (ARN) para os recursos usados no projeto de amostra antes de executar o fluxo de trabalho.

    • Se você selecionou Executar uma demonstração, o Step Functions cria um projeto de amostra somente para leitura que usa um AWS CloudFormation modelo para implantar os AWS recursos listados nesse modelo no seu. Conta da AWS

      dica

      Para visualizar a definição da máquina de estado do projeto de amostra, escolha Código.

      Quando estiver pronto, escolha Implemente e execute para implantar o projeto de amostra e criar os recursos.

      Pode levar até 10 minutos para que esses recursos e as permissões relacionadas ao IAM sejam criados. Enquanto seus recursos estão sendo implantados, você pode abrir o link do CloudFormation Stack ID para ver quais recursos estão sendo provisionados.

      Depois que todos os recursos do projeto de exemplo forem criados, você poderá ver o novo projeto de exemplo listado na página Máquinas de estado.

      Importante

      Taxas padrão podem ser aplicadas a cada serviço usado no CloudFormation modelo.

Etapa 2: Executar a máquina de estado

Depois que todos os recursos forem aprovisionados e implementados, você poderá executar a máquina de estado.

  1. Na página Máquinas de estado, escolha seu projeto de exemplo.

  2. Na página do projeto de exemplo, escolha Iniciar execução.

  3. Na caixa de diálogo Iniciar execução, faça o seguinte:

    1. (Opcional) Insira os valores de entrada no formato JSON para executar seu projeto de exemplo.

      Se você optar por Executar uma demonstração, não precisará fornecer nenhuma entrada de execução.

      nota

      Se o projeto de demonstração que você implementou contiver dados de entrada de execução pré-preenchidos, use essa entrada para executar a máquina de estado.

    2. Selecione Iniciar execução.

    3. (Opcional) O console Step Functions direciona você para uma página intitulada com seu ID de execução. Essa página é conhecida como página de Detalhes da execução. Nesta página, você pode revisar os resultados da execução à medida que a execução avança ou após a conclusão.

      Depois que a execução for concluída, escolha estados individuais na Exibição em gráfico e, em seguida, escolha as guias individuais no painel de Detalhes da etapa para visualizar os detalhes de cada estado, incluindo entrada, saída e definição, respectivamente.

    4. (Opcional) Revise os resultados da execução exportados para o bucket do Amazon S3. Esses resultados incluem dados, como entrada e saída de execução, ARN e status de execução. Para ter mais informações, consulte ResultWriter.