Gerenciar fluxos de trabalho e eventos do Lambda - AWS Lambda

Gerenciar fluxos de trabalho e eventos do Lambda

Ao criar aplicações com tecnologia sem servidor com o Lambda, você geralmente precisa de maneiras de orquestrar a execução de funções e tratar os eventos. A AWS fornece várias abordagens para coordenar as funções do Lambda:

  • Funções duráveis do Lambda para orquestração de fluxo de trabalho que prioriza o código no Lambda

  • AWS Step Functions para orquestração visual do fluxo de trabalho em vários serviços

  • Agendador do Amazon EventBridge e Amazon EventBridge para arquiteturas e agendamentos orientados a eventos

Também é possível integrar essas abordagens. Por exemplo, é possível usar o Agendador do EventBridge para acionar funções duráveis ou fluxos de trabalho do Step Functions quando eventos específicos ocorrerem ou configurar fluxos de trabalho para publicar eventos no Agendador do EventBridge em pontos de execução definidos. Os tópicos a seguir desta seção fornecem mais informações sobre como usar essas opções de orquestração.

Orquestração que prioriza o código com funções duráveis

As funções duráveis do Lambda fornecem uma abordagem que prioriza o código para a orquestração do fluxo de trabalho, permitindo que sejam criados fluxos de trabalho com estado e de longa duração diretamente nas suas funções do Lambda. Diferentemente dos serviços de orquestração externos, as funções duráveis mantêm a lógica do fluxo de trabalho em código, facilitando a versão, o teste e a manutenção junto com sua lógica de negócios.

As funções duráveis são ideais quando é necessário:

  • Definição de fluxo de trabalho que priorize o código: defina fluxos de trabalho usando linguagens de programação familiares em vez de JSON ou designers visuais

  • Processos de longa duração: execute fluxos de trabalho que podem ser executados por até um ano, muito além do limite de 15 minutos das funções padrão do Lambda

  • Desenvolvimento simplificado: mantenha a lógica do fluxo de trabalho e a lógica de negócios na mesma base de código para facilitar a manutenção e os testes

  • Espera econômica: pause a execução durante os estados de espera sem consumir recursos computacionais

  • Gerenciamento de estado integrado: pontos de verificação automáticos e persistência de estado sem configuração de armazenamento externo

Escolha entre funções duráveis e Step Functions

Tanto as funções duráveis quanto as Step Functions fornecem recursos de orquestração de fluxo de trabalho, mas atendem a diferentes casos de uso:

Consideração funções duráveis Step Functions
Definição do fluxo de trabalho Priorização de código (JavaScript, Python, Java) Linguagem Amazon States baseada em JSON ou designer visual
Abordagem de desenvolvimento Base de código única com lógica de negócios Definição de fluxo de trabalho e código de função separados
Integração de serviços Por meio do código de função do Lambda e AWS SDKs Integrações nativas com muitos serviços da AWS
Duração da execução Até 1 ano. Até 1 ano (padrão), 5 minutos (expressa)
Processamento paralelo Promise.all() e padrões baseados em código Estado paralelo e mapa distribuído
Tratamento de erros Blocos try-catch e lógica de nova tentativa personalizada Estados de nova tentativa e captura integrados
Monitoramento visual Logs e painéis personalizados do CloudWatch Gráfico de execução visual e histórico detalhado
Melhor para Fluxos de trabalho centrados no desenvolvedor, lógica de negócios complexa, prototipagem rápida Orquestração de vários serviços, fluxos de trabalho visuais, governança corporativa

Use funções duráveis quando:

  • Sua equipe preferir abordagens de desenvolvimento que priorizem o código

  • A lógica do fluxo de trabalho for fortemente acoplada à lógica de negócios

  • Você precisar de prototipagem e iteração rápidas

  • Seus fluxos de trabalho envolverem principalmente funções do Lambda e chamadas de serviço simples

Use Step Functions quando:

  • Você precisar de design e monitoramento visual do fluxo de trabalho

  • Seus fluxos de trabalho orquestrarem vários serviços da AWS extensivamente

  • Você precisar de recursos corporativos de governança e conformidade

  • As partes interessadas não técnicas precisarem entender a lógica do fluxo de trabalho

Para obter mais informações sobre funções duráveis, consulte Funções duráveis para o Lambda.

Orquestração dos fluxos de trabalho com o Step Functions

AWS Step Functions é um serviço de orquestração de fluxo de trabalho que ajuda você a coordenar várias funções do Lambda e outros serviços da AWS em fluxos de trabalho estruturados. Esses fluxos de trabalho podem manter o estado, lidar com erros com mecanismos sofisticados de repetição e processar dados em grande escala.

O Step Functions oferece dois tipos de fluxos de trabalho para atender às diferentes necessidades de orquestração:

Fluxos de trabalho padrão

Ideal para fluxos de trabalho auditáveis e de longa duração que exigem uma semântica de execução exata. Os fluxos de trabalho padrão podem durar até um ano, fornecer histórico de execução detalhado e oferecer suporte à depuração visual. Eles são adequados para processos como atendimento de pedidos, pipelines de processamento de dados ou trabalhos de analytics em várias etapas.

Fluxos de trabalho expressos

Projetado para workloads de alta taxa de eventos e curta duração com semântica de execução única. Os fluxos de trabalho expressos podem ser executados por até cinco minutos e são ideais para processamento de eventos de alto volume, transformações de dados de streaming ou cenários de ingestão de dados de IoT. Eles oferecem maior throughput e custo potencialmente menor em comparação com os fluxos de trabalho padrão.

nota

Para obter mais informações sobre os tipos de fluxo de trabalho do Step Functions, consulte Escolher o tipo de fluxo de trabalho no Step Functions.

Dentro desses fluxos de trabalho, o Step Functions fornece dois tipos de estados de mapa para processamento paralelo:

Mapa em linha

Processa itens de uma matriz JSON dentro do histórico de execução do fluxo de trabalho principal. O Mapa em linha suporta até 40 iterações simultâneas e é adequado para conjuntos de dados menores ou quando você precisa manter todo o processamento em uma única execução. Para obter mais informações, consulte Usar o estado Mapa no modo inline.

Mapa distribuído

Permite o processamento de workloads paralelas em grande escala por meio da iteração em conjuntos de dados que excedem 256 KiB ou exigem mais de 40 iterações simultâneas. Com suporte para até 10.000 execuções paralelas de fluxo de trabalho secundário, o Mapa distribuído se destaca no processamento de dados semiestruturados armazenados no Amazon S3, como arquivos JSON ou CSV, tornando-o ideal para processamento em lote e operações de ETL. Para obter mais informações, consulte Usar o estado do mapa no modo distribuído.

Ao combinar esses tipos de fluxo de trabalho e estados de Mapa, o Step Functions fornece um conjunto de ferramentas flexível e poderoso para orquestrar aplicações complexas com tecnologia sem servidor, desde operações de pequena escala até pipelines de processamento de dados em grande escala.

Para começar a usar o Lambda com o Step Functions, consulte Orquestrar funções do Lambda com o Step Functions.

Gerenciar eventos com o EventBridge e o Agendador do EventBridge

O Amazon EventBridge é um serviço de barramento de eventos que ajuda você a criar arquiteturas orientadas a eventos. Ele roteia eventos entre os serviços da AWS, aplicações integradas e aplicações de software como serviço (SaaS). O Agendador do EventBridge é um agendador com tecnologia sem servidor que permite criar, executar e gerenciar tarefas de um serviço central, permitindo invocar funções do Lambda em um agendamento usando expressões cron e rate ou configurar invocações únicas.

O Amazon EventBridge e o Agendador do EventBridge ajudam você a criar arquiteturas orientadas a eventos com o Lambda. O EventBridge roteia eventos entre os serviços da AWS, aplicações integradas e aplicações SaaS, enquanto o Agendador do EventBridge fornece recursos de agendamento específicos para invocar funções do Lambda de forma recorrente ou única.

Esses serviços fornecem vários recursos importantes para trabalhar com funções do Lambda:

  • Crie regras que correspondam e roteiem eventos para funções do Lambda usando o EventBridge

  • Configure as invocações de funções recorrentes usando expressões cron e rate com o Agendador do EventBridge

  • Configure as invocações de função únicas em datas e horários específicos

  • Defina janelas de tempo flexíveis e políticas de repetição para invocações agendadas

Para obter mais informações, consulte Invocar uma função do Lambda segundo uma agenda.