

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriel : Ingestion de données dans une collection à l'aide d'Amazon OpenSearch Ingestion
<a name="osis-serverless-get-started"></a>

Ce didacticiel explique comment utiliser Amazon OpenSearch Ingestion pour configurer un pipeline simple et intégrer des données dans une collection Amazon OpenSearch Serverless. Un *pipeline* est une ressource qu' OpenSearch Ingestion approvisionne et gère. Vous pouvez utiliser un pipeline pour filtrer, enrichir, transformer, normaliser et agréger les données à des fins d'analyse et de visualisation en aval dans OpenSearch Service.

Pour un didacticiel expliquant comment ingérer des données dans un *domaine de OpenSearch service provisionné, consultez*. [Tutoriel : Ingestion de données dans un domaine à l'aide d'Amazon OpenSearch Ingestion](osis-get-started.md)

Vous allez effectuer les étapes suivantes dans ce didacticiel :.

1. [Créez une collection](#osis-serverless-get-started-access).

1. [Créez un pipeline](#osis-serverless-get-started-pipeline).

1. [Ingérez des exemples de données](#osis-serverless-get-started-ingest).

Dans le didacticiel, vous allez créer les ressources suivantes :
+ Une collection nommée dans `ingestion-collection` laquelle le pipeline va écrire
+ Un pipeline nommé `ingestion-pipeline-serverless`

## Autorisations requises
<a name="osis-serverless-get-started-permissions"></a>

Pour terminer ce didacticiel, votre utilisateur ou votre rôle doit être associé à une [politique basée sur l'identité](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/security-iam-serverless.html#security-iam-serverless-id-based-policies) avec les autorisations minimales suivantes. Ces autorisations vous permettent de créer un rôle de pipeline et d'associer une politique (`iam:Create*`et`iam:Attach*`), de créer ou de modifier une collection (`aoss:*`) et de travailler avec des pipelines (`osis:*`).

En outre, plusieurs autorisations IAM sont requises pour créer automatiquement le rôle de pipeline et le transmettre à OpenSearch Ingestion afin qu'elle puisse écrire des données dans la collection.

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

****  

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

------

## Étape 1 : créer une collection
<a name="osis-serverless-get-started-access"></a>

Créez d'abord une collection dans laquelle ingérer des données. Nous nommerons la collection`ingestion-collection`.

1. Accédez à la console Amazon OpenSearch Service à la [https://console.aws.amazon.com/aos/maison](https://console.aws.amazon.com/aos/home).

1. Choisissez **Collections** dans le menu de navigation de gauche, puis choisissez **Créer une collection**.

1. Nommez la collection **ingestion-collection**.

1. Pour **Sécurité**, choisissez **Création standard**.

1. Sous **Paramètres d'accès au réseau**, définissez le type d'accès sur **Public**.

1. Conservez tous les autres paramètres par défaut et choisissez **Next** (Suivant).

1. Configurez maintenant une politique d'accès aux données pour la collection. Désélectionnez Faire **correspondre automatiquement les paramètres de politique d'accès**.

1. Pour **la méthode de définition**, choisissez **JSON** et collez la politique suivante dans l'éditeur. Cette politique fait deux choses :
   + Permet au rôle de pipeline d'écrire dans la collection.
   + Permet de *lire des extraits* de la collection. Plus tard, après avoir ingéré des exemples de données dans le pipeline, vous interrogerez la collection pour vous assurer que les données ont été correctement ingérées et écrites dans l'index.

     ```
     [
       {
         "Rules": [
           {
             "Resource": [
               "index/ingestion-collection/*"
             ],
             "Permission": [
               "aoss:CreateIndex",
               "aoss:UpdateIndex",
               "aoss:DescribeIndex",
               "aoss:ReadDocument",
               "aoss:WriteDocument"
             ],
             "ResourceType": "index"
           }
         ],
         "Principal": [
           "arn:aws:iam::{{your-account-id}}:role/OpenSearchIngestion-PipelineRole",
           "arn:aws:iam::{{your-account-id}}:role/{{Admin}}"
         ],
         "Description": "Rule 1"
       }
     ]
     ```

1. Modifiez les `Principal` éléments pour inclure votre Compte AWS identifiant. Pour le second principal, spécifiez un utilisateur ou un rôle que vous pourrez utiliser pour interroger la collection ultérieurement.

1. Choisissez **Suivant**. Donnez un nom à la politique d'accès **pipeline-collection-access**et sélectionnez à nouveau **Next**.

1. Vérifiez la configuration de votre collection et choisissez **Submit** (Soumettre).

## Étape 2 : Création d'un pipeline
<a name="osis-serverless-get-started-pipeline"></a>

Maintenant que vous disposez d'une collection, vous pouvez créer un pipeline.

**Pour créer un pipeline**

1. Dans la console Amazon OpenSearch Service, choisissez **Pipelines** dans le volet de navigation de gauche.

1. Choisissez **Créer un pipeline**.

1. Sélectionnez le pipeline **vide**, puis sélectionnez **Select Blueprint**.

1. Dans ce didacticiel, nous allons créer un pipeline simple qui utilise le plugin [source HTTP](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/http-source/). Le plugin accepte les données du journal dans un format de tableau JSON. Nous allons spécifier une seule collection OpenSearch Serverless comme récepteur et intégrer toutes les données dans l'`my_logs`index.

   Dans le menu **Source**, choisissez **HTTP**. Pour le **chemin**, entrez **/logs.**

1. Pour simplifier ce didacticiel, nous allons configurer l'accès public pour le pipeline. Pour les **options de réseau source**, choisissez **Accès public**. Pour plus d'informations sur la configuration de l'accès au VPC, consultez. [Configuration de l'accès VPC pour les pipelines Amazon Ingestion OpenSearch](pipeline-security.md)

1. Choisissez **Suivant**.

1. Pour **Processeur**, entrez **la date** et choisissez **Ajouter**.

1. Activez **À partir de l'heure de réception**. Conservez tous les autres paramètres par défaut.

1. Choisissez **Suivant**.

1. Configurez les détails du récepteur. Pour le **type de OpenSearch ressource**, choisissez **Collection (sans serveur).** Choisissez ensuite la collection OpenSearch de services que vous avez créée dans la section précédente.

   Laissez le nom de la politique réseau par défaut. Dans le **champ Nom de l'index**, entrez **my\_logs**. OpenSearch L'ingestion crée automatiquement cet index dans la collection s'il n'existe pas déjà.

1. Choisissez **Suivant**.

1. Nommez le pipeline **ingestion-pipeline-serverless**. Conservez les paramètres de capacité par défaut.

1. Pour **le rôle de pipeline**, sélectionnez **Créer et utiliser un nouveau rôle de service**. Le rôle de pipeline fournit les autorisations requises pour qu'un pipeline puisse écrire dans le récepteur de collection et lire à partir de sources basées sur le pull. En sélectionnant cette option, vous autorisez OpenSearch Ingestion à créer le rôle pour vous, plutôt que de le créer manuellement dans IAM. Pour de plus amples informations, veuillez consulter [Configuration des rôles et des utilisateurs dans Amazon OpenSearch Ingestion](pipeline-security-overview.md).

1. Pour le **suffixe du nom du rôle de service**, entrez **PipelineRole**. Dans IAM, le rôle aura le format`arn:aws:iam::{{your-account-id}}:role/OpenSearchIngestion-PipelineRole`.

1. Choisissez **Suivant**. Vérifiez la configuration de votre pipeline et choisissez **Create pipeline**. Le pipeline prend 5 à 10 minutes pour devenir actif.

## Étape 3 : Ingérer des exemples de données
<a name="osis-serverless-get-started-ingest"></a>

Lorsque l'état du pipeline est atteint`Active`, vous pouvez commencer à y ingérer des données. Vous devez signer toutes les requêtes HTTP adressées au pipeline à l'aide de [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Utilisez un outil HTTP tel que [Postman](https://www.getpostman.com/) ou [awscurl](https://github.com/okigan/awscurl) pour envoyer des données au pipeline. Comme pour l'indexation de données directement dans une collection, l'ingestion de données dans un pipeline nécessite toujours soit un rôle IAM, soit une clé d'[accès IAM et une clé secrète](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html). 

**Note**  
Le signataire principal de la demande doit disposer de l'autorisation `osis:Ingest` IAM.

Tout d'abord, récupérez l'URL d'ingestion sur la page des **paramètres du pipeline** :

![Page des paramètres du pipeline avec le champ URL d'ingestion surligné indiquant l'URL du point de terminaison.](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/pipeline-endpoint.png)


Envoyez ensuite des échantillons de données vers le chemin d'ingestion. L'exemple de demande suivant utilise [awscurl](https://github.com/okigan/awscurl) pour envoyer un seul fichier journal au 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
```

Vous devriez voir une `200 OK` réponse.

Maintenant, interrogez l'`my_logs`index pour vous assurer que l'entrée du journal a été correctement ingérée :

```
awscurl --service aoss --region {{us-east-1}} \
     -X GET \
     https://{{collection-id}}.{{us-east-1}}.aoss.amazonaws.com/my_logs/_search | json_pp
```

**Exemple de réponse**:

```
{
   "took":348,
   "timed_out":false,
   "_shards":{
      "total":0,
      "successful":0,
      "skipped":0,
      "failed":0
   },
   "hits":{
      "total":{
         "value":1,
         "relation":"eq"
      },
      "max_score":1.0,
      "hits":[
         {
            "_index":"my_logs",
            "_id":"1%3A0%3ARJgDvIcBTy5m12xrKE-y",
            "_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":"2023-04-26T05:22:16.204Z"
            }
         }
      ]
   }
}
```

## Ressources connexes
<a name="osis-serverless-get-started-next"></a>

Ce didacticiel a présenté un cas d'utilisation simple d'ingestion d'un seul document via HTTP. Dans les scénarios de production, vous allez configurer vos applications clientes (telles que Fluent Bit, Kubernetes ou le OpenTelemetry Collector) pour envoyer des données vers un ou plusieurs pipelines. Vos pipelines seront probablement plus complexes que le simple exemple de ce didacticiel.

Pour commencer à configurer vos clients et à ingérer des données, consultez les ressources suivantes :
+ [Création et gestion de pipelines](creating-pipeline.md#create-pipeline)
+ [Configuration de vos clients pour envoyer des données à OpenSearch Ingestion](configure-client.md)
+ [Documentation Data Prepper](https://opensearch.org/docs/latest/clients/data-prepper/index/)