

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conceitos básicos sobre o MSK Connect
<a name="msk-connect-getting-started"></a>

Este é um step-by-step tutorial que usa o Console de gerenciamento da AWS para criar um cluster MSK e um conector de coletor que envia dados do cluster para um bucket S3.

**Topics**
+ [Configurar os recursos necessários para o MSK Connect](mkc-tutorial-setup.md)
+ [Criar plug-in personalizado](mkc-create-plugin.md)
+ [Criar a máquina cliente e o tópico do Apache Kafka](mkc-create-topic.md)
+ [Criar um conector](mkc-create-connector.md)
+ [Enviar dados para o cluster do MSK](mkc-send-data.md)

# Configurar os recursos necessários para o MSK Connect
<a name="mkc-tutorial-setup"></a>

Nesta etapa, você cria os seguintes recursos necessários para esse cenário inicial:
+ Um bucket do Amazon S3 para servir como destino que recebe dados do conector.
+ Um cluster do MSK para o qual você enviará dados. Em seguida, o conector lerá os dados desse cluster e os enviará para o bucket S3 de destino.
+ Uma política do IAM que contém as permissões para gravar no bucket do S3 de destino.
+ Um perfil do IAM que permite ao conector gravar no bucket do S3 de destino. Você adicionará a política do IAM criada a esse perfil.
+ Um endpoint da Amazon VPC para possibilitar o envio de dados da Amazon VPC que tem o cluster e o conector para o Amazon S3.

**Para criar um bucket do S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Selecione **Criar bucket**.

1. Para o nome do bucket, insira um nome descritivo, como `amzn-s3-demo-bucket-mkc-tutorial`.

1. Role para baixo e escolha **Criar bucket**.

1. Na lista de buckets, escolha o bucket recém-criado.

1. Selecione **Criar pasta**.

1. Digite `tutorial` para o nome da pasta, depois role para baixo e escolha **Criar pasta**.

**Para criar um cluster**

1. Abra o console Amazon MSK em [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. No painel esquerdo, em **Clusters do MSK**, escolha **Clusters**.

1. Selecione **Criar cluster**.

1. Em **Método de criação**, escolha **Criação personalizada**.

1. Insira **mkc-tutorial-cluster** para o nome do cluster.

1. Em **Tipo de cluster**, escolha **Provisionado**.

1. Escolha **Próximo**.

1. Em **Rede**, escolha uma Amazon VPC. Em seguida, selecione as zonas de disponibilidade e as sub-redes que deseja usar. Lembre-se IDs da Amazon VPC e das sub-redes que você selecionou porque precisa delas posteriormente neste tutorial.

1. Escolha **Próximo**.

1. Em **Métodos de controle de acesso**, verifique se somente o **Acesso não autenticado** está selecionado.

1. Em **Criptografia**, certifique-se de que somente **Texto simples** esteja selecionado.

1. Continue com o assistente e escolha **Criar cluster**. Você será redirecionado para a página detalhes do cluster. Nessa página, em **Grupos de segurança aplicados**, encontre o ID do grupo de segurança. Lembre-se desse ID porque você precisará dele posteriormente neste tutorial.

**Para criar uma política do IAM com permissões para gravar no bucket do S3.**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Políticas**.

1. Selecione **Criar política**.

1. Em **Editor de política**, escolha a guia **JSON** e substitua o JSON na janela do editor pelo JSON a seguir.

   No exemplo a seguir, *<amzn-s3-demo-bucket-my-tutorial>* substitua pelo nome do seu bucket do S3.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowListBucket",
         "Effect": "Allow",
         "Action": [
           "s3:ListBucket",
           "s3:GetBucketLocation"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>"
       },
       {
         "Sid": "AllowObjectActions",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:DeleteObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts",
           "s3:ListBucketMultipartUploads"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>/*"
       }
     ]
   }
   ```

------

   Para obter instruções sobre como gravar políticas seguras, consulte [Controle de acesso do IAM](iam-access-control.md).

1. Escolha **Próximo**.

1. Na página **Revisar e criar**, faça o seguinte:

   1. Em **Nome da política**, insira um nome descritivo, como **mkc-tutorial-policy**.

   1. Em **Permissões definidas nesta política**, revise e and/or edite as permissões definidas em sua política.

   1. (Opcional) Para ajudar a identificar, organizar ou pesquisar a política, escolha **Adicionar nova tag** para adicioná-la como pares de chave-valor. Por exemplo, adicione uma tag à sua política com o par de valores-chave **Environment** e **Test**.

      Para obter mais informações sobre o uso de tags, consulte [Tags para AWS Identity and Access Management recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

1. Selecione **Criar política**.

**Para criar o perfil do IAM capaz de gravar no bucket de destino**

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Na página **Selecionar entidade confiável**, faça o seguinte:

   1. Em **Tipo de entidade confiável**, escolha **AWS service (Serviço da AWS)**.

   1. Em **Serviço ou caso de uso**, escolha **S3**.

   1. Em **Caso de uso**, escolha **S3**.

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, faça o seguinte:

   1. Na caixa de pesquisa sob **Políticas de permissão**, insira o nome da política que você criou anteriormente para este tutorial. Por exemplo, .**mkc-tutorial-policy** Depois, à esquerda do nome da política, marque a caixa de seleção.

   1. (Opcional) Defina um [limite de permissões](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Esse é um atributo avançado que está disponível para perfis de serviço, mas não para perfis vinculados ao serviço. Para obter informações sobre como definir um limite de permissões, consulte [Como criar perfis e anexar políticas (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) no *Guia do usuário do IAM*.

1. Escolha **Próximo**.

1. Na página **Nomear, revisar e criar**, faça o seguinte:

   1. Em **Nome do perfil**, insira um nome descritivo, como **mkc-tutorial-role**.
**Importante**  
Quando nomear um perfil, observe o seguinte:  
Os nomes das funções devem ser exclusivos dentro de você Conta da AWS e não podem ser diferenciados por maiúsculas e minúsculas.  
Por exemplo, não crie dois perfis denominados **PRODROLE** e **prodrole**. Quando usado em uma política ou como parte de um ARN, o nome de perfil diferencia maiúsculas de minúsculas. No entanto, quando exibido para os clientes no console, como durante o processo de login, o nome de perfil diferencia maiúsculas de minúsculas.
Não é possível editar o nome do perfil depois de criá-lo porque outras entidades podem referenciar o perfil.

   1. (Opcional) Em **Descrição**, insira uma descrição para o perfil.

   1. (Opcional) Para editar os casos de uso e as permissões do perfil, escolha **Etapa 1: Selecionar entidades confiáveis** ou **Etapa 2: Adicionar permissões**, depois **Editar**.

   1. (Opcional) Para ajudar a identificar, organizar ou pesquisar o perfil, escolha **Adicionar nova tag** para adicioná-las como pares de chave-valor. Por exemplo, adicione uma tag ao seu perfil com o par de valores-chave **ProductManager** e **John**.

      Para obter mais informações sobre o uso de tags, consulte [Tags para AWS Identity and Access Management recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

1. Reveja a função e escolha **Criar função**.

**Para permitir que o MSK Connect assuma o perfil**

1. No console do IAM, em **Gerenciamento de acesso** no painel esquerdo, escolha **Perfis**.

1. Encontre e escolha o `mkc-tutorial-role`.

1. Na página **Resumo** do perfil, escolha a guia **Relações de confiança**.

1. Selecione **Editar relação de confiança**.

1. Substitua a política de confiança existente pelo seguinte JSON.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "kafkaconnect.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Selecione **Atualizar política de confiança**.

**Para criar um endpoint da Amazon VPC da VPC do cluster para o Amazon S3**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel esquerdo, escolha **Endpoints**.

1. Escolha **Criar endpoint**.

1. Em **Nome do serviço**, escolha o serviço **com.amazonaws.us-east-1.s3** e o tipo **Gateway**.

1. Escolha a VPC do cluster e, em seguida, selecione a caixa à esquerda da tabela de rotas associada às sub-redes do cluster.

1. Escolha **Criar endpoint**.

**Próxima etapa**

[Criar plug-in personalizado](mkc-create-plugin.md)

# Criar plug-in personalizado
<a name="mkc-create-plugin"></a>

Um plug-in contém o código que define a lógica do conector. Nesta etapa, você criará um plug-in personalizado contendo o código para o Lenses Amazon S3 Sink Connector. Em uma etapa posterior, ao criar o conector do MSK, você especificará que seu código está nesse plug-in personalizado. Você pode usar o mesmo plug-in para criar vários conectores do MSK com configurações diferentes.

**Para criar o plug-in personalizado**

1. Baixe o [conector do S3](https://www.confluent.io/hub/confluentinc/kafka-connect-s3).

1. Faça upload do arquivo ZIP para um bucket do S3 ao qual você tenha acesso. Para obter informações sobre como fazer upload de arquivos para o Amazon S3, consulte [Carregar objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) no Guia do usuário do Amazon S3.

1. Abra o console do Amazon MSK em [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. No painel esquerdo, expanda **MSK Connect** e escolha **Plug-ins personalizados**.

1. Escolha **Criar plug-in personalizado**.

1. Selecione **Navegar no S3**.

1. Na lista de buckets, encontre o bucket no qual você fez o upload do arquivo ZIP e escolha-o.

1. Na lista de objetos no bucket, marque o botão de seleção à esquerda do arquivo ZIP e selecione o botão **Escolher**.

1. Insira `mkc-tutorial-plugin` para o nome do plug-in personalizado e escolha **Criar plug-in personalizado**.

Pode levar AWS alguns minutos para concluir a criação do plug-in personalizado. Quando o processo de criação estiver concluído, você verá a seguinte mensagem em um banner na parte superior da janela do navegador.

```
Custom plugin mkc-tutorial-plugin was successfully created
The custom plugin was created. You can now create a connector using this custom plugin.
```

**Próxima etapa**

[Criar a máquina cliente e o tópico do Apache Kafka](mkc-create-topic.md)

# Criar a máquina cliente e o tópico do Apache Kafka
<a name="mkc-create-topic"></a>

Nesta etapa, você vai criar uma instância do Amazon EC2 para usar como uma instância do cliente do Apache Kafka. Em seguida, você usará essa instância para criar um tópico no cluster.

**Como criar uma máquina cliente**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Selecione **Iniciar instâncias**.

1. Insira um **Nome** para sua máquina cliente, como **mkc-tutorial-client**.

1. Deixe a opção **AMI do Amazon Linux 2 (HVM) – Kernel 5.10, tipo de volume SSD** selecionada para **Tipo de imagem de máquina da Amazon (AMI)**.

1. Escolha o tipo de instância **t2.xlarge**.

1. Na seção **Par de chaves**, escolha **Criar um novo par de chaves**. Digite **mkc-tutorial-key-pair** em **Nome do par de chaves** e, em seguida, escolha **Baixar par de chaves**. Se preferir, use um par de chaves existente.

1. Escolha **Iniciar instância**.

1. Escolha **Exibir instâncias**. Na coluna **Grupos de segurança**, escolha o grupo de segurança que está associado à sua nova instância. Copie o ID do grupo de segurança e salve-o para usar posteriormente.

**Para permitir que o cliente recém-criado envie dados para o cluster**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel esquerdo, em **SEGURANÇA**, escolha **Grupos de segurança)**. Na coluna **ID do grupo de segurança**, localize o grupo de segurança do cluster. Você salvou o ID desse grupo de segurança ao criar o cluster em [Configurar os recursos necessários para o MSK Connect](mkc-tutorial-setup.md). Escolha esse grupo de segurança marcando a caixa à esquerda de sua linha. Certifique-se de que nenhum outro grupo de segurança seja selecionado simultaneamente.

1. Na metade inferior da tela, escolha a guia **Regras de entrada**.

1. Escolha **Editar regras de entrada**.

1. Na parte inferior esquerda da tela, escolha **Adicionar regra**.

1. Na nova regra, escolha **Todo o tráfego** na coluna **Tipo**. No campo à direita da coluna **Origem**, insira o ID do grupo de segurança da máquina cliente. Trata-se do ID do grupo de segurança que você salvou após criar a máquina cliente.

1. Selecione **Salvar regras**. Agora, seu cluster do MSK aceitará todo o tráfego do cliente criado no procedimento anterior.

**Para criar um tópico**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na tabela de instâncias, escolha `mkc-tutorial-client`.

1. Na parte superior da tela, escolha **Connect** e siga as instruções para se conectar à instância.

1. Instale o Java na instância do cliente executando o seguinte comando:

   ```
   sudo yum install java-1.8.0
   ```

1. Execute o comando a seguir para fazer download do Apache Kafka. 

   ```
   wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz
   ```
**nota**  
Se quiser usar um local de espelhamento diferente do usado neste comando, você poderá escolher um local diferente no site do [Apache](https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/kafka_2.11-1.1.1.tgz).

1. Execute o comando a seguir no diretório onde você fez download do arquivo TAR na etapa anterior.

   ```
   tar -xzf kafka_2.12-2.2.1.tgz
   ```

1. Acesse o diretório **kafka\$12.12-2.2.1**.

1. Abra o console Amazon MSK em [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. No painel esquerdo, escolha **Clusters** e, em seguida, escolha o nome `mkc-tutorial-cluster`.

1. Escolha **Exibir informações do cliente**.

1. Copie a string de conexão em **texto simples**.

1. Selecione **Concluído**.

1. Execute o comando a seguir na instância do cliente (`mkc-tutorial-client`), *bootstrapServerString* substituindo-o pelo valor que você salvou ao visualizar as informações do cliente do cluster.

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server bootstrapServerString --replication-factor 2 --partitions 1 --topic mkc-tutorial-topic
   ```

   Se o comando tiver êxito, a seguinte mensagem será exibida: `Created topic mkc-tutorial-topic.`

**Próxima etapa**

[Criar um conector](mkc-create-connector.md)

# Criar um conector
<a name="mkc-create-connector"></a>

Este procedimento descreve como criar um conector usando o Console de gerenciamento da AWS.

**Para criar o conector**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon MSK em [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. No painel esquerdo, expanda **MSK Connect** e escolha **Conectores**.

1. Escolha **Criar conector**.

1. Na lista de plug-ins, escolha `mkc-tutorial-plugin` e escolha **Próximo**.

1. Para o nome do conector, insira `mkc-tutorial-connector`.

1. Na lista de clusters, escolha `mkc-tutorial-cluster`.

1. Na seção **Configurações de rede do conector**, escolha uma das seguintes opções para o tipo de rede:
   + **IPv4**(padrão) - Para conectividade IPv4 somente com destinos
   + **Dual-stack** - Para conectividade com destinos em ambos IPv4 e IPv6 (disponível somente se suas sub-redes tiverem blocos IPv6 CIDR associados a IPv4 elas)

1. Copie a seguinte configuração e cole no campo de configuração do conector.

   Certifique-se de substituir a região pelo código de Região da AWS onde você está criando o conector. Além disso, substitua o nome do bucket do *<amzn-s3-demo-bucket-my-tutorial>* Amazon S3 pelo nome do seu bucket no exemplo a seguir.

   ```
   connector.class=io.confluent.connect.s3.S3SinkConnector
   s3.region=us-east-1
   format.class=io.confluent.connect.s3.format.json.JsonFormat
   flush.size=1
   schema.compatibility=NONE
   tasks.max=2
   topics=mkc-tutorial-topic
   partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
   storage.class=io.confluent.connect.s3.storage.S3Storage
   s3.bucket.name=<amzn-s3-demo-bucket-my-tutorial>
   topics.dir=tutorial
   ```

1. Em **Permissões de acesso**, escolha `mkc-tutorial-role`.

1. Escolha **Próximo**. Na página **Segurança**, escolha **Próximo** novamente.

1. Na página **Logs**, escolha **Próximo**.

1. Na página **Revisar e criar**, revise a configuração do conector e escolha **Criar conector**.

**Próxima etapa**

[Enviar dados para o cluster do MSK](mkc-send-data.md)

# Enviar dados para o cluster do MSK
<a name="mkc-send-data"></a>

Nesta etapa, você envia dados para o tópico do Apache Kafka que você criou anteriormente e, em seguida, procura esses mesmos dados no bucket do S3 de destino.

**Para enviar dados para o cluster do MSK**

1. Na pasta `bin` da instalação do Apache Kafka na instância do cliente, crie um arquivo de texto chamado `client.properties` com o conteúdo a seguir.

   ```
   security.protocol=SASL_SSL
   sasl.mechanism=AWS_MSK_IAM
   ```

1. Execute o comando a seguir para criar um produtor de console. *BootstrapBrokerString*Substitua pelo valor obtido ao executar o comando anterior.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerString --producer.config client.properties --topic mkc-tutorial-topic
   ```

1. Insira a mensagem que desejar e pressione **Enter**. Repita esta etapa duas ou três vezes. Toda vez que você inserir uma linha e pressionar **Enter**, essa linha será enviada para o cluster do Apache Kafka como uma mensagem separada.

1. Verifique o bucket do Amazon S3 de destino para encontrar as mensagens que você enviou na etapa anterior.