Registro do mapeamento da origem do evento do Kafka - AWS Lambda

Registro do mapeamento da origem do evento do Kafka

Você pode configurar o registro em nível de sistema para seus mapeamentos da origem de eventos do Kafka a fim de habilitar e filtrar os logs do sistema que os agentes de sondagem de eventos Lambda enviam para o CloudWatch.

Esse recurso está disponível apenas para mapeamentos de origens de eventos do Kafka e com o Modo provisionado.

Para fazer o mapeamento da origem do evento com a configuração de registro, você também pode verificar os logs do sistema a partir de consultas de logs pré-criadas na guia Monitor da página Console Lambda > Recursos adicionais > mapeamentos da origem do evento agora.

Como funciona o registro em log

Quando você define a configuração de registro com o nível de log em seu mapeamento da origem do evento, o agente de sondagem de eventos do Lambda envia os logs correspondentes (logs do sistema de mapeamento da origem do evento).

O mapeamento da origem do evento reutiliza o mesmo destino de log com a função do Lambda. Certifique-se de que a função do Lambda tenha as permissões de registro em log necessárias.

O mapeamento da origem do evento terá seu próprio fluxo de logs, com a data e o UUID do mapeamento da origem do evento como nome do fluxo de logs, como 2020/01/01/12345678-1234-1234-1234-12345678901.

Para logs do sistema de mapeamento da origem do evento, você pode escolher entre os níveis de log a seguir.

Nível de log Usage
DEBUG (mais detalhes) Informações detalhadas sobre o progresso do processamento da origem do evento
INFORMAÇÕES Mensagens sobre a operação normal do mapeamento da origem do evento
WARN (menos detalhes) Mensagens sobre possíveis avisos e erros que podem levar a um comportamento inesperado

Quando você seleciona um nível de log, o agente de sondagem de eventos do Lambda envia logs desse nível, e de níveis inferiores. Por exemplo, se você definir o nível de log do sistema de mapeamento da origem do evento como INFO, o agente de sondagem de eventos não enviará saídas de log no nível DEBUG.

Configurar o registro em log da

É possível definir a configuração de registro em log ao criar ou atualizar um mapeamento da origem do evento do Kafka.

Configurar o registro em log (console)

Para configurar o registro em log (console)
  1. Abra a página Funções do console do Lambda.

  2. Escolha o nome da sua função.

  3. Execute um destes procedimentos:

    • Para adicionar um novo acionador do Kafka, em Visão geral da função, escolha Adicionar acionador.

    • Para modificar um acionador existente do Kafka, escolha o acionador e, em seguida, escolha Editar.

  4. Em Configuração do agente de sondagem de eventos, para o Modo provisionado, ative a caixa de seleção Configurar. A configuração do Nível de log deve aparecer.

  5. Clique na lista suspensa Nível de log e selecione um nível para o mapeamento da origem do evento.

  6. Escolha Adicionar ou Salvar na parte inferior para criar ou atualizar o mapeamento da origem do evento.

Configurar o registro em log (AWS CLI)

Criar um mapeamento da origem do evento com o registro em log

O exemplo a seguir cria um mapeamento da origem do evento do Amazon MSK com configuração de registro em log:

aws lambda create-event-source-mapping \ --function-name my-kafka-function \ --topics AWSKafkaTopic \ --event-source-arn arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster/abc123 \ --starting-position LATEST \ --provisioned-poller-config MinimumPollers=1,MaximumPollers=3 \ --logging-config '{"SystemLogLevel":"DEBUG"}'

Para o Kafka autogerenciado, use a mesma sintaxe:

aws lambda create-event-source-mapping \ --function-name my-kafka-function \ --topics AWSKafkaTopic \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc.xyz.com:9092"]}}' \ --starting-position LATEST \ --provisioned-poller-config MinimumPollers=1,MaximumPollers=3 \ --logging-config '{"SystemLogLevel":"DEBUG"}'

Atualizar a configuração do registro em log

Use o comando update-event-source-mapping para adicionar ou modificar a configuração do registro em log:

aws lambda update-event-source-mapping \ --uuid 12345678-1234-1234-1234-123456789012 \ --logging-config '{"SystemLogLevel":"WARN"}'

Formato de registro para um log do sistema de mapeamento da origem do evento do Kafka

Quando o agente de sondagem de eventos do Lambda envia o log, cada respectiva entrada contém metadados gerais de mapeamento da origem do evento e o conteúdo específico do evento.

Registro em log WARN

O registro WARN contém erros ou avisos do agente de sondagem de eventos e é emitido quando o evento ocorre. Por exemplo:

{ "eventType": "ESM_PROCESSING_EVENT", "timestamp": 1546347650000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "WARN", "error": { "errorMessage": "Timeout expired while fetching topic metadata", "errorCode": "org.apache.kafka.common.errors.TimeoutException" } }

Registro em log INFO

O registro INFO contém configurações de cliente consumidor do Kafka em cada agente de sondagem de eventos e é emitido no caso de um consumidor ser criado ou alterado. Por exemplo:

{ "eventType": "POLLER_STATUS_EVENT", "timestamp": 1546347660000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "INFO", "kafkaEventSourceConnection": { "brokerEndpoints": "boot-abcd1234.c2.kafka-serverless.us-east-1.amazonaws.com:9098", "consumerId": "12345678-1234-1234-1234-123456789012-0", "topics": [ "test" ], "consumerGroupId": "12345678-1234-1234-1234-123456789012", "securityProtocol": "SASL_SSL", "saslMechanism": "AWS_MSK_IAM", "totalPartitionCount": 2, "assignedPartitionCount": 2, "partitionsAssignmentGeneration": 5, "assignedPartitions": [ "test-0", "test-1" ], "networkConfig": { "ipAddresses": [ "10.100.141.1" ], "subnetCidrBlock": "10.100.128.0/20", "securityGroups": [ "sg-abcdefabcdefabcdef" ] } } }

Registro em log DEBUG

O log DEBUG contém as informações relacionadas aos deslocamentos do Kafka no processamento do mapeamento da origem do evento, e as informações de deslocamento são emitidas por minuto. Por exemplo:

{ "eventType": "KAFKA_STATUS_EVENT", "timestamp": 1546347670000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "DEBUG", "kafkaPartitionOffsets": { "partition": "test-1", "endOffset": 5004, "consumedOffset": 5003, "processedOffset": 5003, "committedOffset": 5004 } }