Usar o Lambda com o Amazon MSK - AWS Lambda

Usar o Lambda com o Amazon MSK

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 de streaming. O Amazon MSK simplifica a configuração, o dimensionamento e o gerenciamento de clusters do Kafka. O Amazon MSK também facilita a configuração da aplicação para várias zonas de disponibilidade e para segurança com o AWS Identity and Access Management (IAM).

Este capítulo explica como usar um cluster do Amazon MSK como origem de eventos para a função do Lambda. O processo geral de integração do Amazon MSK com o Lambda envolve as seguintes etapas:

  1. Configuração do cluster e da rede: primeiro, configure o cluster do Amazon MSK. Isso inclui a configuração da rede correta para permitir que o Lambda acesse o cluster.

  2. Configuração do mapeamento da origem do evento: depois, crie o recurso de mapeamento da origem do evento de que o Lambda precisa para se conectar ao cluster Amazon MSK à função com segurança.

  3. Configuração da função e das permissões: por fim, certifique-se de que a função esteja configurada corretamente e tenha as permissões exigidas em seu perfil de execução.

nota

Agora é possível criar e gerenciar seus mapeamentos da origem do evento do Amazon MSK diretamente do console do Lambda ou do Amazon MSK. Ambos os consoles oferecem a opção de lidar automaticamente com a configuração das permissões necessárias do perfil de execução do Lambda para um processo de configuração mais simplificado.

Para obter exemplos de como configurar uma integração do Lambda com um cluster do Amazon MSK, consulte Tutorial: Usar um mapeamento de origem do evento do Amazon MSK para invocar uma função do Lambda, Using Amazon MSK as an event source for AWS Lambda no AWS Compute Blog e Amazon MSK Lambda Integration 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 ] } ] } ] } }