Modos de escalabilidade do agente de sondagem de eventos no Lambda
É possível escolher entre dois modos de escalação de pesquisador de eventos para o mapeamento da origem do evento do Kafka:
Modo de escalação
Modo sob demanda (padrão)
Quando você cria inicialmente uma origem de eventos do Amazon MSK, o Lambda aloca um número padrão de pesquisadores de eventos para processar todas as partições no tópico do Kafka. O Lambda aumenta ou diminui automaticamente o número de pesquisadores de eventos com base na carga de mensagens.
A cada um minuto, o Lambda avalia o atraso de deslocamento de todas as partições do tópico. Se o atraso de deslocamento for muito alto, a partição está recebendo mensagens mais rápido do que o Lambda pode processá-las. Se necessário, o Lambda adiciona ou remove os pesquisadores de eventos do tópico. Esse processo de ajuste de escala automático para adicionar ou remover pesquisadores de eventos ocorre em até três minutos após a avaliação.
Se a função do Lambda de destino sofrer um controle de utilização, o Lambda reduzirá o número de pesquisadores de eventos. Essa ação reduz a workload na função, reduzindo o número de mensagens que os pesquisadores de eventos podem recuperar e enviar para a função.
Modo provisionado
Para workloads em que você precisa ajustar o throughput do mapeamento da origem de eventos, você pode usar o modo provisionado. No modo provisionado, você define limites mínimos e máximos para a quantidade de pesquisadores de eventos provisionados. Esses pesquisadores de eventos provisionados são dedicados ao mapeamento da origem do evento e podem lidar com picos inesperados de mensagens por meio do ajuste de escala automático responsivo. Recomendamos que você use o modo provisionado para workloads do Kafka que tenham requisitos rigorosos de performance.
No Lambda, um pesquisador de eventos é uma unidade computacional capaz de lidar com até 5 MBps de throughput. Como referência, suponha que sua origem de eventos produza uma carga útil média de 1 MB e que a duração média da função seja de 1 segundo. Se a carga útil não passar por nenhuma transformação (como filtragem), um único pesquisador oferece suporte a um throughput de 5 MBps e 5 invocações simultâneas do Lambda. O uso do modo provisionado incorre em custos adicionais. Para estimativas de preços, consulte Preços do AWS Lambda
nota
Ao usar o modo provisionado, você não precisa criar endpoints de VPC do AWS PrivateLink nem conceder as permissões associadas como parte da sua configuração de rede.
No modo provisionado, o intervalo de valores aceitos para o número mínimo de pesquisadores de eventos (MinimumPollers
) está entre 1 e 200, inclusive. O intervalo de valores aceitos para o número máximo de pesquisadores de eventos (MaximumPollers
) está entre 1 e 2.000, inclusive. O valor de MaximumPollers
deve ser maior que ou igual ao valor de MinimumPollers
. Além disso, para manter o processamento ordenado nas partições, o Lambda limita o valor de MaximumPollers
ao número de partições no tópico.
Para obter mais detalhes sobre como escolher valores mínimo e máximo apropriados de pesquisadores de eventos, consulte Práticas recomendadas e considerações ao usar o modo provisionado.
Você pode configurar o modo provisionado para o mapeamento da origem de eventos do Amazon MSK usando o console ou a API do Lambda.
Para configurar o modo provisionado para um mapeamento da origem de eventos do Amazon MSK existente (console)
-
Abra a página Funções
do console do Lambda. -
Escolha a função com o mapeamento da origem de eventos do Amazon MSK para o qual você deseja configurar o modo provisionado.
-
Escolha Configuração e, em seguida, escolha Acionadores.
-
Escolha o mapeamento da origem de eventos do Amazon MSK para o qual você deseja configurar o modo provisionado e, em seguida, escolha Editar.
-
Em Configuração de mapeamento da origem do evento, escolha Configurar modo provisionado.
-
Para Pesquisadores de eventos mínimos, insira um valor entre 1 e 200. Se você não especificar um valor, o Lambda vai atribuir o valor padrão de 1.
-
Para Pesquisadores de eventos máximos, insira um valor entre 1 e 2.000. Esse valor deve ser maior ou igual ao seu valor para Pesquisadores de eventos mínimos. Se você não especificar um valor, o Lambda vai atribuir o valor padrão de 200.
-
-
Escolha Salvar.
Você pode configurar o modo provisionado programaticamente usando o objeto ProvisionedPollerConfig em seu EventSourceMappingConfiguration. Por exemplo, o comando da CLI UpdateEventSourceMapping a seguir configura um valor de 5 para MinimumPollers
e um valor de 100 para MaximumPollers
.
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'
Depois de configurar o modo provisionado, você pode observar o uso de pesquisadores de eventos para sua workload monitorando a métrica ProvisionedPollers
. Para obter mais informações, consulte Métricas de mapeamento da origem do evento.
Para desativar o modo provisionado e retornar ao modo padrão (sob demanda), você pode usar o seguinte comando da CLI UpdateEventSourceMapping:
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'
Práticas recomendadas e considerações ao usar o modo provisionado
A configuração ideal de pesquisadores de eventos mínimos e máximos para o mapeamento da origem de eventos depende dos requisitos de performance da sua aplicação. Recomendamos que você inicie por um mínimo padrão de pesquisadores de eventos para definir o perfil de performance básico. Ajuste sua configuração com base nos padrões de processamento de mensagens observados e no perfil de performance desejado.
Para workloads com tráfego intenso e necessidades rigorosas de performance, aumente o número mínimo de pesquisadores de eventos para lidar com picos repentinos de mensagens. Para determinar os pesquisadores de eventos mínimos necessários, considere as mensagens de sua workload por segundo e o tamanho médio da carga útil e use a capacidade de throughput de um único pesquisador de eventos (até 5 MBps) como referência.
Para manter o processamento ordenado em uma partição, o Lambda limita o máximo de pesquisadores de eventos ao número de partições no tópico. Além disso, o número máximo de pesquisadores de eventos para os quais o mapeamento da origem de eventos pode ser escalado depende das configurações de simultaneidade da função.
Ao ativar o modo provisionado, atualize suas configurações de rede para remover os endpoints de VPC do AWS PrivateLink e as permissões associadas.