

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: Ingerir datos en un dominio mediante Amazon OpenSearch Ingestion
<a name="osis-get-started"></a>

En este tutorial, se muestra cómo utilizar Amazon OpenSearch Ingestion para configurar una canalización sencilla e ingerir datos en un dominio de Amazon OpenSearch Service. Una *canalización* es un recurso que OpenSearch Ingestion aprovisiona y administra. Puede usar una canalización para filtrar, enriquecer, transformar, normalizar y agregar datos para el análisis y la visualización posteriores en OpenSearch Service.

Este tutorial recorre los pasos básicos para poner en marcha una canalización de forma rápida. Para obtener instrucciones más completas, consulte [Creación de canalizaciones](creating-pipeline.md#create-pipeline).

En este tutorial, deberá completar los siguientes pasos:

1. [Crear un dominio](#osis-get-started-access).

1. [Crear una canalización](#osis-get-started-pipeline).

1. [Incorporar algunos datos de muestra](#osis-get-started-ingest).

En este tutorial creará los recursos siguientes:
+ Un dominio llamado `ingestion-domain` al que la canalización escribe.
+ Una canalización llamada `ingestion-pipeline`

## Permisos necesarios
<a name="osis-get-started-permissions"></a>

Para completar este tutorial, su usuario o rol debe tener una [política basada en la identidad adjunta](security-iam-serverless.md#security-iam-serverless-id-based-policies) con los siguientes permisos mínimos. Estos permisos le permiten crear un rol de canalización y adjuntar una política (`iam:Create*` y `iam:Attach*`), crear o modificar un dominio (`es:*`) y trabajar con canalizaciones (`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"
         ]
      }
   ]
}
```

------

## Paso 1: crear el rol de canalización
<a name="osis-get-started-role"></a>

En primer lugar, cree una función que asuma la canalización para acceder al receptor del dominio OpenSearch de Service. Incluirá esta función en la configuración de la canalización más adelante en este tutorial.

**Cómo crear el rol de canalización**

1. Abre la AWS Identity and Access Management consola en [https://console.aws.amazon.com/iamv2/](https://console.aws.amazon.com/iamv2/ ).

1. Seleccione **Políticas** y, a continuación, seleccione **Crear política**.

1. En este tutorial, incorporará datos a un dominio llamado `ingestion-domain`, que creará en el siguiente paso. Seleccione **JSON** y pegue la siguiente política en el editor. Sustituya `your-account-id` por su Identificador de cuenta y modifique la región si es necesario.

------
#### [ 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/*"
           }
       ]
   }
   ```

------

   Si desea escribir datos en un dominio *existente*, sustituya `ingestion-domain` por el nombre de su dominio.
**nota**  
Para simplificar este tutorial, utilizaremos una política de acceso amplia. No obstante, en entornos de producción, se recomienda que se aplique una política de acceso más restrictiva a su rol de canalización. Para ver un ejemplo de política que proporciona los permisos mínimos necesarios, consulte [Otorgar a Amazon OpenSearch Ingestion pipelines acceso a los dominios](pipeline-domain-access.md).

1. Seleccione **Siguiente**, seleccione **Siguiente** y asigne a su política el nombre **pipeline-policy**.

1. Seleccione **Crear política**.

1. A continuación, cree un rol y añádale la política. Seleccione **Roles** y, a continuación, **Crear rol**.

1. Seleccione **Política de confianza personalizada** y pegue la siguiente política en el editor:

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

****  

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

------

1. Seleccione **Siguiente**. A continuación, busque y seleccione **pipeline-policy** (que acaba de crear).

1. Seleccione **Siguiente** y asigne un nombre al rol **PipelineRole**.

1. Elija **Crear rol**.

Recuerde el nombre de recurso de Amazon (ARN) del rol (por ejemplo, `arn:aws:iam::your-account-id:role/PipelineRole`). Lo necesitará cuando cree la canalización.

## Paso 2: crear un dominio
<a name="osis-get-started-access"></a>

Primero, cree un dominio denominado `ingestion-domain` al que desee incorporar datos.

Ve a la consola OpenSearch de Amazon Service en [https://console.aws.amazon.com/aos/casa](https://console.aws.amazon.com/aos/home) y [crea un dominio](createupdatedomains.md) que cumpla los siguientes requisitos:
+ Está ejecutando la OpenSearch versión 1.0 o posterior, o Elasticsearch 7.4 o una versión posterior
+ Utiliza el acceso público
+ No utiliza el control de acceso detallado

**nota**  
Estos requisitos están pensados para garantizar la simplicidad de este tutorial. En los entornos de producción, puede configurar un dominio con acceso a la VPC y and/or utilizar un control de acceso detallado. Para utilizar un control de acceso detallado, consulte [Map the pipeline role](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-domain-access.html#pipeline-access-domain).

El dominio debe tener una política de acceso que conceda permisos a la función de `OpenSearchIngestion-PipelineRole` IAM, que el OpenSearch Servicio creará para usted en el siguiente paso. La canalización asumirá este rol para enviar datos al receptor de dominios.

Asegúrese de que el dominio tenga la siguiente política de acceso a nivel de dominio, que otorga al rol de canalización acceso al dominio. Sustituya la Región y el ID de cuenta por los suyos:

------
#### [ 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 obtener más información sobre cómo crear políticas de acceso a nivel de dominio, consulte [Políticas basadas en recursos](ac.md#ac-types-resource).

Si ya ha creado un dominio, modifique su política de acceso actual para proporcionar los permisos anteriores a `OpenSearchIngestion-PipelineRole`.

## Paso 3: crear una canalización
<a name="osis-get-started-pipeline"></a>

Ahora que tiene un dominio, puede crear una canalización.

**Creación de una canalización**

1. En la consola de Amazon OpenSearch Service, selecciona **Pipelines** en el panel de navegación izquierdo.

1. Seleccione **Create pipeline**.

1. Seleccione la canalización en **blanco** y, a continuación, elija **Seleccionar esquema**.

1. En este tutorial, crearemos una canalización simple que utiliza el complemento de [origen HTTP](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/http-source/). El complemento acepta datos de registro en un formato de matriz JSON. Especificaremos un único dominio OpenSearch de servicio como receptor e incorporaremos todos los datos al `application_logs` índice.

   En el menú **Fuente**, seleccione **HTTP**. Para la **ruta**, ingrese **/logs**.

1. Para simplificar este tutorial, configuraremos el acceso público para la canalización. En **las opciones de red de origen**, seleccione **Acceso público**. Para obtener información acerca de la configuración del acceso a VPC, consulte [Configuración del acceso a la VPC para las canalizaciones de Amazon Ingestion OpenSearch](pipeline-security.md).

1. Elija **Siguiente**.

1. En **Procesador**, introduzca **la fecha** y seleccione **Agregar**.

1. Habilite **Desde la hora de recepción**. Deje el resto de opciones con sus valores predeterminados.

1. Elija **Siguiente**.

1. Configure los detalles del destino. Para el **tipo OpenSearch de recurso**, elija **Clúster gestionado**. A continuación, elija el dominio de OpenSearch servicio que creó en la sección anterior.

   En **Nombre de índice**, ingresa **application\$1logs**. OpenSearch La ingestión crea automáticamente este índice en el dominio si aún no existe.

1. Elija **Siguiente**.

1. Asigne a la canalización el nombre **ingestion-pipeline**. Deje la configuración de capacidad con sus valores predeterminados.

1. Para el **rol de canalización**, seleccione **Crear y usar un nuevo rol de servicio**. El rol de canalización proporciona los permisos necesarios para que una canalización escriba en el destino del dominio y lea desde orígenes basados en extracción. Al seleccionar esta opción, permite que OpenSearch Ingestion cree el rol por usted, en lugar de crearlo manualmente en IAM. Para obtener más información, consulte [Configuración de roles y usuarios en Amazon OpenSearch Ingestion](pipeline-security-overview.md).

1. En el **sufijo del nombre de la función de servicio**, introduzca. **PipelineRole** En IAM, el rol tendrá el formato `arn:aws:iam::your-account-id:role/OpenSearchIngestion-PipelineRole`.

1. Elija **Siguiente**. Revise la configuración de la canalización y elija **Crear canalización**. La canalización tarda entre 5 y 10 minutos en activarse.

## Paso 4: incorporar algunos datos de muestra
<a name="osis-get-started-ingest"></a>

Cuando el estado de la canalización sea `Active`, puede empezar a incorporarle datos. Debe firmar todas las solicitudes HTTP que se envíen a la canalización mediante la [versión 4 de Signature](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Use una herramienta HTTP como [Postman](https://www.getpostman.com/) o [awscurl](https://github.com/okigan/awscurl) para enviar algunos datos a la canalización. Al igual que ocurre con la indexación de datos directamente en un dominio, la incorporación de datos a una canalización siempre requiere un rol de IAM o una [clave de acceso y una clave secreta de IAM](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html). 

**nota**  
La entidad principal que firma la solicitud debe tener el permiso de IAM `osis:Ingest`.

Primero, obtenga la URL de incorporación en la página de **Configuración de canalización**:

![\[Pipeline settings page showing ingestion URL and other configuration details.\]](http://docs.aws.amazon.com/es_es/opensearch-service/latest/developerguide/images/pipeline-endpoint.png)


A continuación, incorpore algunos datos de muestra. La siguiente solicitud utiliza [awscurl](https://github.com/okigan/awscurl) para enviar un único archivo de registro a la canalización:

```
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
```

Debería ver una respuesta `200 OK`. Si recibe un error de autenticación, es posible que se deba a que está incorporando datos de una cuenta distinta a la de la canalización. Consulte [Solución de problemas de permisos](#osis-get-started-troubleshoot).

Ahora, consulte el índice `application_logs` para asegurarse de que la entrada de registro se haya incorporado correctamente:

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

**Respuesta de ejemplo**:

```
{
   "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"
            }
         }
      ]
   }
}
```

## Solución de problemas de permisos
<a name="osis-get-started-troubleshoot"></a>

Si has seguido los pasos del tutorial y sigues viendo errores de autenticación cuando intentas ingerir datos, puede que se deba a que la función que escribe en una canalización Cuenta de AWS no es la propia canalización. En este caso, debe crear y [asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) que le permita específicamente incorporar datos. Para obtener instrucciones, consulte [Provisión de acceso de ingesta entre cuentas](configure-client.md#configure-client-cross-account).

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

Este tutorial presenta un caso práctico sencillo de incorporación de un único documento a través de HTTP. En escenarios de producción, configurará las aplicaciones cliente (como Fluent Bit, Kubernetes o OpenTelemetry Collector) para que envíen datos a una o más canalizaciones. Es probable que sus canalizaciones sean más complejas que en el ejemplo sencillo de este tutorial.

Para empezar a configurar sus clientes e incorporar datos, consulte los siguientes recursos:
+ [Creación y administración de canalizaciones](creating-pipeline.md#create-pipeline)
+ [Configurar sus clientes para que envíen datos a Ingestion OpenSearch ](configure-client.md)
+ [Documentación de Data Prepper](https://opensearch.org/docs/latest/clients/data-prepper/index/)