Criar um mapeamento da origem do evento do Lambda para uma origem de evento do Apache Kafka autogerenciado
Para criar um mapeamento da origem do evento, você pode usar o console do Lambda, a AWS Command Line Interface (CLI) ou um SDK da AWS
As etapas do console a seguir adicionam um cluster do Apache Kafka autogerenciado como acionador da função do Lambda. Nos bastidores, isso cria um recurso de mapeamento da origem do evento.
Pré-requisitos
-
Um cluster Apache Kafka autogerenciado. O Lambda é compatível com o Apache Kafka versão 0.10.1.0 e posteriores.
-
Uma função de execução com permissão para acessar os recursos da AWS que o cluster do Kafka autogerenciado usa.
Adicionando um cluster Kafka autogerenciado (console)
Siga estas etapas para adicionar seu cluster autogerenciado do Apache Kafka e um tópico do Kafka como um acionador para sua função do Lambda.
Para adicionar um acionador do Apache Kafka à sua função do Lambda (console)
-
Abra a página Functions
(Funções) no console do Lambda. -
Escolha o nome da função do Lambda.
-
Em Visão geral da função, escolha Adicionar gatilho.
-
Em Trigger configuration (Configuração do acionador), faça o seguinte:
-
Selecione o tipo de acionadro Apache Kafka.
-
Para Servidores de bootstrap, insira o endereço de host e par de portas de um corretor Kafka em seu cluster e escolha Adicionar. Repita para cada agente da Kafka no cluster.
-
Em Nome do tópico, insira o nome do tópico do Kafka usado para armazenar registros no cluster.
-
(Opcional) Em Tamanho do lote, insira o número máximo de registros a serem recebidos em um único lote.
-
Em Batch window (Janela de lote), insira o tempo máximo em segundos usado pelo Lambda para coletar os registros antes de invocar a função.
-
(Opcional) em Consumer group ID (ID do grupo de consumidores), insira o ID de um grupo de consumidores do Kafka no qual ingressar.
-
(Opcional) Em Posição inicial, escolha Mais recente para começar a realizar a leitura do fluxo a partir do registro mais recente, Horizonte de corte para começar no registro mais antigo disponível ou No carimbo de data e hora para especificar um carimbo de data e hora para começar a realizar a leitura.
-
(Opcional) Em VPC, escolha a Amazon VPC para seu cluster do Kafka. Em seguida, escolha VPC subnets (Sub-redes da VPC) e VPC security groups (Grupos de segurança da VPC).
Essa configuração será necessária se apenas os usuários da VPC acessarem seus agentes.
-
(Opcional) Em Authentication (Autenticação), escolha Add (Adicionar) e faça o seguinte:
-
Escolha o protocolo de acesso ou a autenticação dos agentes do Kafka no cluster.
-
Se o agente do Kafka usar autenticação SASL/PLAIN, escolha BASIC_AUTH.
-
Se seu agente usar autenticação SASL/SCRAM, escolha um dos protocolos SASL_SCRAM.
-
Se estiver configurando a autenticação mTLS, escolha o protocolo CLIENT_CERTIFICATE_TLS_AUTH.
-
-
Para a autenticação SASL/SCRAM ou mTLS, escolha a chave secreta do Secrets Manager que contém as credenciais de seu cluster do Kafka.
-
-
(Opcional) Em Encryption (Criptografia), escolha o segredo do Secrets Manager que contém o certificado CA raiz que seus agentes do Kafka usam para criptografia TLS, se seus agentes do Kafka usarem certificados assinados por uma CA privada.
Essa configuração se aplica à criptografia TLS para SASL/SCRAM ou SASL/PLAIN e à autenticação MTLs.
-
Para criar o gatilho em um estado desativado para teste (recomendado), desmarque Ativar gatilho. Ou, para habilitar o gatilho imediatamente, selecione Ativar gatilho.
-
-
Para criar o acionador, selecione Add (Adicionar).
Adicionando um cluster Kafka autogerenciado (AWS CLI)
Use os comandos de exemplo da AWS CLI a seguir para criar e visualizar um acionador autogerenciado do Apache Kafka para sua função do Lambda.
Usar SASL/SCRAM
Se usuários do Kafka acessarem seus agentes do Kafka pela Internet, especifique o segredo do Secrets Manager criado para autenticação SASL/SCRAM. O exemplo a seguir usa o comando create-event-source-mappingmy-kafka-function em um tópico do Kafka chamado AWSKafkaTopic.
aws lambda create-event-source-mapping \ --topicsAWSKafkaTopic\ --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:111122223333:secret:MyBrokerSecretName\ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function\ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'
Usar uma VPC
Se apenas os usuários do Kafka em sua VPC acessarem seus agentes do Kafka, você deverá especificar sua VPC, suas sub-redes e seu grupo de segurança da VPC. O exemplo a seguir usa o comando create-event-source-mappingmy-kafka-function em um tópico do Kafka chamado AWSKafkaTopic.
aws lambda create-event-source-mapping \ --topicsAWSKafkaTopic\ --source-access-configuration '[{"Type": "VPC_SUBNET", "URI": "subnet:subnet-0011001100"}, {"Type": "VPC_SUBNET", "URI": "subnet:subnet-0022002200"}, {"Type": "VPC_SECURITY_GROUP", "URI": "security_group:sg-0123456789"}]' \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function\ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'
Visualizar o status usando a AWS CLI
O exemplo a seguir usa o comando get-event-source-mapping
aws lambda get-event-source-mapping --uuiddh38738e-992b-343a-1077-3478934hjkfd7