

# Criar um mapeamento da origem do evento do Lambda para uma origem de evento do Amazon MSK
<a name="msk-esm-create"></a>

Para criar um mapeamento da origem do evento, você pode usar o console do Lambda, a [AWS Command Line Interface (CLI)](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) ou um [SDK da AWS](https://aws.amazon.com/getting-started/tools-sdks/).

**nota**  
Quando você cria o mapeamento da origem do evento, o Lambda cria uma [ENI de hiperplano](configuration-vpc.md#configuration-vpc-enis) na sub-rede privada que contém o cluster do MSK, permitindo que o Lambda estabeleça uma conexão segura. Essa ENI de hiperplano permite usar a configuração de sub-rede e grupo de segurança do cluster MSK, não a função do Lambda.

As etapas do console a seguir adicionam um cluster do Amazon MSK como acionador da função do Lambda. Nos bastidores, isso cria um recurso de mapeamento da origem do evento.

**Para adicionar um acionador do Amazon MSK à sua função do Lambda (console)**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) no console do Lambda.

1. Escolha o nome da função do Lambda à qual você deseja adicionar um acionador. do Amazon MSK.

1. Em **Visão geral da função**, escolha **Adicionar gatilho**.

1. Em **Configuração do acionador**, escolha **MSK**.

1. Para especificar os detalhes do cluster do Kafka, faça o seguinte:

   1. Em **Cluster do MSK**, selecione seu cluster.

   1. Em **Nome do tópico**, insira o nome do tópico do Kafka do qual as mensagens serão consumidas.

   1. Em **ID do grupo de consumidores**, insira o ID de um grupo de consumidores do Kafka para ingressar, se aplicável. Para obter mais informações, consulte [ID de grupo de consumidores personalizável no Lambda](kafka-consumer-group-id.md).

1. Em **Autenticação de cluster**, faça as configurações necessárias. Para obter mais informações sobre autenticação de cluster, consulte [Configuração de métodos de autenticação de cluster do Amazon MSK no Lambda](msk-cluster-auth.md).
   + Ative a opção **Usar autenticação** se quiser que o Lambda realize a autenticação com o cluster MSK quando estabelecer uma conexão. A autenticação é recomendada.
   + Se você usar autenticação, em **Método de autenticação**, escolha o método de autenticação a ser usado.
   + Se você usar autenticação, em **Chave do Secrets Manager**, escolha a chave do Secrets Manager que contém as credenciais de autenticação necessárias para acessar o cluster.

1. Em **Configuração do agente de sondagem de eventos**, faça as configurações necessárias.
   + Escolha **Ativar acionador** para habilitar o acionador imediatamente após a criação.
   + Escolha se deseja **Configurar o modo provisionado** para o mapeamento da origem do evento. Para obter mais informações, consulte [Modos de escalabilidade de sondagem de eventos do Apache Kafka no Lambda](kafka-scaling-modes.md).
     + Se você configurar o modo provisionado, insira um valor para **Mínimo de agentes de sondagem de eventos**, um valor para **Máximo de agentes de sondagem de eventos** e um valor opcional para PollerGroupName para especificar o agrupamento de vários ESMs na mesma VPC de origem dos eventos.
   + Em **Posição inicial**, escolha como quer que o Lambda comece a ler o fluxo. Para obter mais informações, consulte [Posições iniciais de sondagem e fluxo do Apache Kafka no Lambda](kafka-starting-positions.md).

1. Em **Processamento em lotes**, faça as configurações necessárias. Para obter mais informações sobre processamento em lotes, consulte [Comportamento de lotes](invocation-eventsourcemapping.md#invocation-eventsourcemapping-batching).

   1. Em **Batch size** (Tamanho do lote), insira o número máximo de mensagens a serem recebidas em um único lote.

   1. Em **Janela de lotes**, insira o número máximo de segundos que o Lambda leva coletando registros antes de invocar a função.

1. Em **Filtragem**, faça as configurações necessárias. Para obter mais informações sobre filtragem, consulte [Filtrar as origens dos eventos do Amazon MSK e do Apache Kafka autogerenciado](kafka-filtering.md).
   + Em **Critérios de filtro**, adicione as definições de critérios de filtro para definir se um evento deve ou não ser processado.

1. Em **Tratamento de falhas**, faça as configurações necessárias. Para obter mais informações sobre tratamento de falhas, consulte [Capturar lotes descartados para uma origem do evento do Amazon MSK e do Apache Kafka autogerenciado](kafka-on-failure.md).
   + Em **Destino em caso de falha**, especifique o ARN do destino em caso de falha.

1. Em **Tags**, insira as tags a serem associadas a esse mapeamento da origem do evento.

1. Para criar o acionador, selecione **Add** (Adicionar).

Também é possível criar o mapeamento da origem do evento usando a AWS CLI com o comando [create-event-source-mapping](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-event-source-mapping.html). O exemplo a seguir cria um mapeamento da origem do evento para mapear a função do Lambda `my-msk-function` para o tópico `AWSKafkaTopic`, começando pela mensagem `LATEST`. Esse comando também usa o objeto [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html) para instruir o Lambda a usar a autenticação [SASL/SCRAM](msk-cluster-auth.md#msk-sasl-scram) quando se conectar ao cluster.

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
  --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
```

Se o cluster usar a [autenticação mTLS](msk-cluster-auth.md#msk-mtls), inclua um objeto [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html) que especifique a `CLIENT_CERTIFICATE_TLS_AUTH` e o ARN de uma chave do Secrets Manager. Isso é mostrado no seguinte comando:

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
  --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
```

Quando o cluster usa a [autenticação do IAM](msk-cluster-auth.md#msk-iam-auth), você não precisa de um objeto [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html). Isso é mostrado no seguinte comando:

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
```