

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á.

# Tutorial: Ingestão de dados em um domínio usando o Amazon OpenSearch Ingestion
<a name="osis-get-started"></a>

Este tutorial mostra como usar o Amazon OpenSearch Ingestion para configurar um pipeline simples e ingerir dados em um domínio do Amazon OpenSearch Service. Um *pipeline* é um recurso que o OpenSearch Ingestion provisiona e gerencia. Você pode usar um pipeline para filtrar, enriquecer, transformar, normalizar e agregar dados para análises e visualizações posteriores no Service. OpenSearch 

Este tutorial orienta você pelas etapas básicas de como conseguir montar um pipeline rapidamente. Para obter instruções mais abrangentes, consulte [Como criar pipelines](creating-pipeline.md#create-pipeline).

Você concluirá as seguintes etapas neste tutorial:

1. [Crie um domínio](#osis-get-started-access).

1. [Crie um pipeline](#osis-get-started-pipeline).

1. [Ingira alguns dados de amostra](#osis-get-started-ingest).

Neste tutorial, você vai criar os recursos a seguir:
+ Um domínio denominado `ingestion-domain` no qual o pipeline grava
+ Um pipeline chamado `ingestion-pipeline`

## Permissões obrigatórias
<a name="osis-get-started-permissions"></a>

Para fazer este tutorial, o usuário ou o perfil deve ter uma [política baseada em identidade](security-iam-serverless.md#security-iam-serverless-id-based-policies) anexada com as permissões mínimas a seguir. Essas permissões autorizam você criar um perfil de pipeline e anexar uma política (`iam:Create*` e `iam:Attach*`), criar ou modificar um domínio (`es:*`) e trabalhar com pipelines (`osis:*`).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Resource":"*",
         "Action":[
            "osis:*",
            "iam:Create*",
            "iam:Attach*",
            "es:*"
         ]
      },
      {
         "Resource":[
            "arn:aws:iam::{{111122223333}}:role/OpenSearchIngestion-PipelineRole"
         ],
         "Effect":"Allow",
         "Action":[
            "iam:CreateRole",
            "iam:AttachRolePolicy",
            "iam:PassRole"
         ]
      }
   ]
}
```

------

## Etapa 1: Criar a função de pipeline
<a name="osis-get-started-role"></a>

Primeiro, crie uma função que o pipeline assumirá para acessar o coletor OpenSearch de domínio do serviço. Neste tutorial, você incluirá esse perfil posteriormente na configuração do pipeline.

**Para criar a função de pipeline**

1. Abra o AWS Identity and Access Management console em [https://console.aws.amazon.com/iamv2/](https://console.aws.amazon.com/iamv2/ ).

1. Escolha **Políticas** e, depois, **Criar política**.

1. Neste tutorial, você consumirá dados em um domínio chamado `ingestion-domain`, que você criará na próxima etapa. Selecione **JSON** e cole a política a seguir no editor. Substitua `{{your-account-id}}` pelo ID da sua conta e modifique a região, se necessário.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "es:DescribeDomain",
               "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain"
           },
           {
               "Effect": "Allow",
               "Action": "es:ESHttp*",
               "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain/*"
           }
       ]
   }
   ```

------

   Se quiser gravar dados em um domínio *existente*, `ingestion-domain` substitua pelo nome do seu domínio.
**nota**  
Para simplificar, neste tutorial, usaremos uma política de acesso ampla. Em ambientes de produção, no entanto, recomendamos que você aplique uma política de acesso mais restritiva à sua função de pipeline. Para obter um exemplo de política que fornece as permissões mínimas necessárias, consulte [Concedendo acesso aos pipelines OpenSearch do Amazon Ingestion aos domínios](pipeline-domain-access.md).

1. Escolha **Próximo**, então **Próximo**, e nomeie sua política **pipeline-policy**.

1. Escolha **Criar política**.

1. Depois, crie um perfil e anexe a política à ele. Selecione **Funções** e, depois, **Criar função**.

1. Escolha **Política de confiança personalizada** e cole a política a seguir no editor:

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

****  

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

------

1. Escolha **Próximo**. Em seguida, pesquise e selecione **pipeline-policy** (que você acabou de criar).

1. Escolha **Avançar** e nomeie a função **PipelineRole**.

1. Selecione **Criar função**.

Lembre-se do nome do recurso da Amazon (ARN) do perfil (por exemplo, `arn:aws:iam::{{your-account-id}}:role/PipelineRole`). Você precisará dele quando criar seu pipeline.

## Etapa 2: Criar um domínio
<a name="osis-get-started-access"></a>

Primeiro, crie um domínio denominado `ingestion-domain` no qual ingerir dados.

Navegue até o console do Amazon OpenSearch Service em [https://console.aws.amazon.com/aos/casa](https://console.aws.amazon.com/aos/home) e [crie um domínio](createupdatedomains.md) que atenda aos seguintes requisitos:
+ Está executando OpenSearch 1.0 ou posterior, ou Elasticsearch 7.4 ou posterior
+ Usa o acesso público
+ Não use controle de acesso detalhado.

**nota**  
Esses requisitos têm como objetivo garantir a simplicidade deste tutorial. Em ambientes de produção, você pode configurar um domínio com acesso à VPC and/or usando controle de acesso refinado. Para usar controle de acesso refinado, consulte [Mapear a função do pipeline](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-domain-access.html#pipeline-access-domain).

O domínio deve ter uma política de acesso que conceda permissão à função `OpenSearchIngestion-PipelineRole` do IAM, que o OpenSearch Serviço criará para você na próxima etapa. O pipeline assumirá esse perfil para enviar dados para o coletor de domínios.

Assegure-se de que o domínio tenha a seguinte política de acesso em nível de domínio, que concede ao perfil de pipeline acesso ao domínio. Substitua a região e a ID da conta com seus dados:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:role/OpenSearchIngestion-PipelineRole"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain/*"
    }
  ]
}
```

------

Para saber mais sobre a criação de políticas de acesso em nível de domínio, consulte [Políticas baseadas em recursos](ac.md#ac-types-resource).

Se você já tiver um domínio criado, modifique sua política de acesso existente para fornecer as permissões acima para a `OpenSearchIngestion-PipelineRole`.

## Etapa 3: Criar um pipeline
<a name="osis-get-started-pipeline"></a>

Agora que você tem um domínio, pode criar um pipeline.

**Para criar um pipeline**

1. No console do Amazon OpenSearch Service, escolha **Pipelines** no painel de navegação esquerdo.

1. Selecione **Criar pipeline**.

1. Selecione o pipeline **Em branco** e escolha **Selecionar esquema**.

1. Neste tutorial, criaremos um subpipeline simples que usa o plug-in [Origem HTTP](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/http-source/). O plug-in aceita dados de log em formato de matriz JSON. Vamos especificar um único domínio OpenSearch de serviço como coletor e ingerir todos os dados no `application_logs` índice.

   No menu **Origem**, escolha **HTTP**. Em **Caminho**, insira **/logs**.

1. Para simplificar neste tutorial, configuraremos o acesso público do pipeline. Em **Opções de rede de origem**, escolha **Acesso público**. Para saber mais sobre como configurar VPC, consulte [Configurando o acesso à VPC para pipelines de ingestão da Amazon OpenSearch](pipeline-security.md).

1. Escolha **Próximo**.

1. Em **Processador**, insira **Data** e escolha **Adicionar**.

1. Habilite **A partir da hora do recebimento**. Deixe todas as outras configurações com seus valores padrão.

1. Escolha **Próximo**.

1. Configure os detalhes do coletor. Para **tipo OpenSearch de recurso**, escolha **Cluster gerenciado**. Em seguida, escolha o domínio do OpenSearch serviço que você criou na seção anterior.

   Em **Nome do índice**, insira **application\_logs**. OpenSearch A ingestão cria automaticamente esse índice no domínio, caso ele ainda não exista.

1. Escolha **Próximo**.

1. Nomeie o pipeline de **ingestion-pipeline**. Deixe todas as configurações de capacidade com seus valores padrão.

1. Em **Perfil do pipeline**, selecione **Criar e usar um novo perfil de serviço**. O perfil do pipeline fornece as permissões necessárias para um pipeline gravar no coletor de domínios e ler em origens baseadas em pull. Ao selecionar essa opção, você permite que o OpenSearch Inestion crie a função para você, em vez de criá-la manualmente no IAM. Para obter mais informações, consulte [Configurando funções e usuários na Amazon OpenSearch Ingestion](pipeline-security-overview.md).

1. Em **Sufixo do nome da função de serviço**, insira **PipelineRole**. No IAM, o perfil terá o formato `arn:aws:iam::{{your-account-id}}:role/OpenSearchIngestion-PipelineRole`.

1. Escolha **Próximo**. Revise sua configuração do pipeline e escolha **Criar pipeline**. O pipeline leva de 5 a 10 minutos para se tornar ativo.

## Etapa 4: ingestão de dados de exemplo
<a name="osis-get-started-ingest"></a>

Quando o status do pipeline é `Active`, você pode começar a ingerir dados nele. Você deve assinar todas as solicitações HTTP no pipeline usando o [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Use uma ferramenta HTTP, como o [Postman](https://www.getpostman.com/) ou [awscurl](https://github.com/okigan/awscurl), para enviar alguns dados para o pipeline. Assim como acontece com a indexação de dados diretamente em um domínio, a ingestão de dados em um pipeline sempre exige um perfil do IAM ou uma [chave de acesso e chave secreta do IAM](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html). 

**nota**  
A entidade principal responsável pela assinatura da solicitação deve ter a permissão `osis:Ingest` do IAM.

Primeiro, obtenha o URL de ingestão na página **Configurações do Pipeline**:

![Página de configurações do pipeline com o campo URL de ingestão destacado mostrando o URL do endpoint.](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/pipeline-endpoint.png)


Em seguida, faça a ingestão de alguns dados de exemplo. A solicitação a seguir usa [awscurl](https://github.com/okigan/awscurl) para enviar um único arquivo de log para o pipeline:

```
awscurl --service osis --region {{us-east-1}} \
    -X POST \
    -H "Content-Type: application/json" \
    -d '[{"time":"2014-08-11T11:40:13+00:00","remote_addr":"122.226.223.69","status":"404","request":"GET http://www.k2proxy.com//hello.html HTTP/1.1","http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)"}]' \
    https://{{pipeline-endpoint}}.{{us-east-1}}.osis.amazonaws.com/logs
```

Você obterá uma resposta `200 OK`. Se você receber um erro de autenticação, pode ser porque está ingerindo dados de uma conta diferente daquela em que o pipeline está. Consulte [Corrigindo problemas de permissão](#osis-get-started-troubleshoot).

Agora, consulte o índice `application_logs` para garantir que sua entrada de log tenha sido ingerida com sucesso:

```
awscurl --service es --region {{us-east-1}} \
     -X GET \
     https://search-{{ingestion-domain}}.{{us-east-1}}.es.amazonaws.com/application_logs/_search | json_pp
```

**Resposta de exemplo**:

```
{
   "took":984,
   "timed_out":false,
   "_shards":{
      "total":1,
      "successful":5,
      "skipped":0,
      "failed":0
   },
   "hits":{
      "total":{
         "value":1,
         "relation":"eq"
      },
      "max_score":1.0,
      "hits":[
         {
            "_index":"application_logs",
            "_type":"_doc",
            "_id":"z6VY_IMBRpceX-DU6V4O",
            "_score":1.0,
            "_source":{
               "time":"2014-08-11T11:40:13+00:00",
               "remote_addr":"122.226.223.69",
               "status":"404",
               "request":"GET http://www.k2proxy.com//hello.html HTTP/1.1",
               "http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)",
               "@timestamp":"2022-10-21T21:00:25.502Z"
            }
         }
      ]
   }
}
```

## Corrigindo problemas de permissão
<a name="osis-get-started-troubleshoot"></a>

Se você seguiu as etapas do tutorial e ainda vê erros de autenticação ao tentar ingerir dados, talvez seja porque a função que está gravando em um pipeline é Conta da AWS diferente do próprio pipeline. Nesse caso, você precisa criar e [assumir uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) que permita especificamente a ingestão de dados. Para instruções, consulte [Concessão de acesso de ingestão entre contas](configure-client.md#configure-client-cross-account).

## Recursos relacionados
<a name="osis-get-started-next"></a>

Este tutorial apresentou um caso de uso simples de ingestão de um único documento via HTTP. Em cenários de produção, você configurará seus aplicativos cliente (como Fluent Bit, Kubernetes ou OpenTelemetry Collector) para enviar dados para um ou mais pipelines. Seus pipelines provavelmente serão mais complexos do que o exemplo simples deste tutorial.

Para começar a configurar seus clientes e ingerir dados, consulte os seguintes recursos:
+ [Criação e gerenciamento de pipelines](creating-pipeline.md#create-pipeline)
+ [Configurando seus clientes para enviar dados para OpenSearch o Inestion](configure-client.md)
+ [Documentação do Data Prepper](https://opensearch.org/docs/latest/clients/data-prepper/index/) 