Usar o Lambda com o Amazon MSK - AWS Lambda

Usar o Lambda com o Amazon MSK

nota

Se você deseja enviar dados para um destino que não seja uma função do Lambda ou enriquecer os dados antes de enviá-los, consulte Amazon EventBridge Pipes (Pipes do Amazon EventBridge).

O Amazon Managed Streaming for Apache Kafka (Amazon MSK) é um serviço totalmente gerenciado que você pode usar para criar e executar aplicações que usam o Apache Kafka para processar dados em streaming. O Amazon MSK simplifica a configuração, o dimensionamento e o gerenciamento de clusters que executam o Kafka. O Amazon MSK também facilita a configuração de seu aplicativo para várias zonas de disponibilidade e para segurança comAWS Identity and Access Management(IAM). O Amazon MSK é compatível com várias versões de código aberto do Kafka.

O Amazon MSK como uma origem de evento funciona de forma semelhante ao uso do Amazon Simple Queue Service (Amazon SQS) ou do Amazon Kinesis. O Lambda pesquisa internamente por novas mensagens da origem do evento e, em seguida, chama de forma síncrona a função do Lambda de destino. O Lambda lê as mensagens em lotes e fornece estas para a sua função como uma carga de eventos. O tamanho máximo do lote é configurável (o padrão é 100 mensagens). Para ter mais informações, consulte Comportamento de lotes.

Por padrão, o Lambda faz o ajuste de escala automático do número de pesquisadores de eventos para seu mapeamento da origem de eventos do Amazon MSK. Para otimizar o throughput do mapeamento da origem de eventos do Amazon MSK, configure o modo provisionado. No modo provisionado, você pode definir o número mínimo e máximo de pesquisadores de eventos alocados para o mapeamento da origem de eventos. Isso pode melhorar a capacidade do mapeamento da origem de eventos para lidar com picos inesperados de mensagens. Para obter mais informações, consulte modo provisionado.

Atenção

Os mapeamentos da origem do evento do Lambda processam cada evento ao menos uma vez, podendo haver o processamento duplicado de registros. Para evitar possíveis problemas relacionados a eventos duplicados, é altamente recomendável tornar o código da função idempotente. Para saber mais, consulte Como tornar minha função do Lambda idempotente no Centro de Conhecimentos da AWS.

Para obter um exemplo de como configurar o Amazon MSK como uma origem de evento, consulteUsar o Amazon MSK como uma origem de evento para o AWS Lambda no blog AWS Compute. Para obter um tutorial completo, consulte Amazon MSK Lambda Integration (Integração do Lambda no Amazon MSK) no Amazon MSK Labs.

Evento de exemplo

O Lambda envia o lote de mensagens no parâmetro de evento quando ele chama sua função. O payload do evento contém uma matriz de mensagens. Cada item de array contém detalhes do tópico do Amazon MSK e do identificador de partição, juntamente com um carimbo de data/hora e uma mensagem codificada em base64.

{ "eventSource":"aws:kafka", "eventSourceArn":"arn:aws:kafka:us-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2", "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", "records":{ "mytopic-0":[ { "topic":"mytopic", "partition":0, "offset":15, "timestamp":1545084650987, "timestampType":"CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers":[ { "headerKey":[ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ] } }