Processe dados em um bucket do Amazon S3 com o Mapa distribuído - AWS Step Functions

Processe dados em um bucket do Amazon S3 com o Mapa distribuído

Este projeto de exemplo demonstra como usar o estado de mapa distribuído para processar dados em grande escala; por exemplo, analisar dados meteorológicos históricos e identificar a estação meteorológica que tem a temperatura média mais alta do planeta a cada mês. Os dados meteorológicos são registrados em mais de 12 mil arquivos CSV, que, por sua vez, são armazenados em um bucket do Amazon S3.

Esse projeto de exemplo inclui dois estados de Mapa distribuído, chamados de NOA Data da cópia distribuída do S3 e ProcessNOAAData. O NOA Data da cópia distribuída do S3 itera sobre os arquivos CSV em um bucket público do Amazon S3 chamado noaa-gsod-pds e os copia para um bucket do Amazon S3 em seu Conta da AWS. ProcessNOAAData itera sobre os arquivos copiados e inclui uma função do Lambda que executa a análise de temperatura.

O projeto de exemplo e primeiro verifica o conteúdo do bucket do Amazon S3 com uma chamada para a ação da API ListObjectsV2. Com base no número de chaves retornadas em resposta a essa chamada, o projeto de exemplo toma uma das seguintes decisões:

  • Se a contagem de chaves for maior ou igual a 1, o projeto fará a transição para o estado ProcessNOAAData. Esse estado de Mapa distribuído inclui uma função do Lambda chamada TemperatureFunction que encontra a estação meteorológica que teve a temperatura média mais alta a cada mês. Essa função retorna um dicionário com o year-month como chave e um dicionário que contém informações sobre a estação meteorológica como valor.

  • Se a contagem de chaves retornadas não exceder 1, o estado de NOA Data da cópia distribuída do S3 listará todos os objetos do bucket público noaa-gsod-pds e copiará iterativamente os objetos individuais para outro bucket em sua conta em lotes de cem. Um Mapa inline executa a cópia iterativa dos objetos.

    Depois que todos os objetos são copiados, o projeto passa para o estado ProcessNOAAData para processar os dados meteorológicos.

Por fim, o projeto de exemplo faz a transição para uma função redutora do Lambda que realiza uma agregação final dos resultados retornados pela função TemperatureFunction e grava os resultados em uma tabela do Amazon DynamoDB.

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

Esse projeto de exemplo cria a máquina de estado, os recursos compatíveis do AWS 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.

Importante

Esse projeto de exemplo está disponível somente na região Leste dos EUA (Norte da Virgínia).

Etapa 1: Criar a máquina de estado

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

  2. Selecione Criar a partir do modelo e encontre o modelo inicial relacionado. Escolha Próximo para continuar.

  3. Escolha como usar o modelo:

    1. Executar uma demonstração: cria uma máquina de estado somente leitura. Após a revisão, você pode criar o fluxo de trabalho e todos os recursos relacionados.

    2. Comece a criar: fornece uma definição de fluxo de trabalho editável que você pode revisar, personalizar e implantar com seus próprios recursos. (Recursos relacionados, como perfis ou filas, não serão criados automaticamente.)

  4. Escolha Usar modelo para continuar com a seleção.

    nota

    Cobranças padrão são aplicadas aos serviços implantados na conta.

Etapa 2: Executar a máquina de estado de demonstração

Se você escolher a opção Executar uma demonstração, todos os recursos relacionados serão implantados e estarão prontos para execução. Se você escolheu a opção Comece a criar, talvez seja necessário definir valores de espaço reservado e criar recursos adicionais antes de executar seu fluxo de trabalho personalizado.

  1. Selecione Implantar e executar.

  2. Aguarde até que a pilha do CloudFormation seja implantada. Esse processo pode levar até 10 minutos.

  3. Depois que a opção Iniciar execução for exibida, revise a Entrada e selecione Iniciar execução.

Parabéns!

Agora você deve ter uma demonstração em execução da máquina de estado. Você pode escolher estados na visualização do gráfico para revisar a entrada, a saída, as variáveis, a definição e os eventos.