Tutorial: Inserimento di dati in una raccolta con Amazon Ingestion OpenSearch - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Inserimento di dati in una raccolta con Amazon Ingestion OpenSearch

Questo tutorial mostra come usare Amazon OpenSearch Ingestion per configurare una pipeline semplice e inserire dati in una raccolta Amazon Serverless. OpenSearch Una pipeline è una risorsa che Ingestion fornisce e gestisce. OpenSearch È possibile utilizzare una pipeline per filtrare, arricchire, trasformare, normalizzare e aggregare i dati per l'analisi e la visualizzazione a valle in Service. OpenSearch

Per un tutorial che dimostra come inserire dati in un dominio di servizio fornito, consulta. OpenSearch Tutorial: importazione di dati in un dominio utilizzando Amazon Ingestion OpenSearch

In questo tutorial completerai le seguenti fasi:

All'interno del tutorial, creerai le seguenti risorse:

  • Una pipeline denominata ingestion-pipeline-serverless

  • Una raccolta denominata in ingestion-collection cui la pipeline scriverà

  • Un ruolo IAM denominato PipelineRole che la pipeline assumerà per scrivere nella raccolta

Autorizzazioni richieste

Per completare questo tutorial, devi disporre delle autorizzazioni IAM corrette. Il tuo utente o ruolo deve avere una policy basata sull'identità allegata con le seguenti autorizzazioni minime. Queste autorizzazioni consentono di creare un ruolo pipeline (iam:Create*), creare o modificare una raccolta () e lavorare con aoss:* pipelines (). osis:*

Inoltre, è richiesta l'iam:PassRoleautorizzazione sulla risorsa del ruolo pipeline. Questa autorizzazione consente di passare il ruolo della pipeline a OpenSearch Ingestion in modo che possa scrivere dati nella raccolta.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:*", "iam:Create*", "aoss:*" ] }, { "Resource":[ "arn:aws:iam::{your-account-id}:role/PipelineRole" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

Fase 1: Creare il ruolo della pipeline

Innanzitutto, crea un ruolo che la pipeline assumerà per accedere al sink di raccolta OpenSearch Serverless. Includerai questo ruolo nella configurazione della pipeline più avanti in questo tutorial.

Per creare il ruolo della pipeline
  1. Apri la AWS Identity and Access Management console all'indirizzo https://console.aws.amazon.com/iamv2/.

  2. Scegli Politiche, quindi scegli Crea politica.

  3. Seleziona JSON e incolla la seguente politica nell'editor.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:BatchGetCollection", "aoss:APIAccessAll" ], "Effect": "Allow", "Resource": "arn:aws:aoss:{region}:{your-account-id}:collection/{collection-id}" }, { "Action": [ "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "{collection-name}" } } } ] }
  4. Scegli Avanti, scegli Avanti e dai un nome alla tua politica collection-pipeline-policy.

  5. Scegli Crea policy.

  6. Quindi, crea un ruolo e allega la politica ad esso. Selezionare Roles (Ruoli), quindi selezionare Create role (Crea ruolo).

  7. Scegli una politica di fiducia personalizzata e incolla la seguente politica nell'editor:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"osis-pipelines.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  8. Seleziona Avanti. Quindi cerca e seleziona collection-pipeline-policy(che hai appena creato).

  9. Scegli Avanti e assegna un nome al ruolo PipelineRole.

  10. Scegli Crea ruolo.

Ricorda l'Amazon Resource Name (ARN) del ruolo (ad esempio,arn:aws:iam::{your-account-id}:role/PipelineRole). Ne avrai bisogno quando creerai la tua pipeline.

Fase 2: creazione di una raccolta

Quindi, crea una raccolta in cui inserire i dati. Daremo un nome alla raccoltaingestion-collection.

  1. Accedi alla console di Amazon OpenSearch Service all'indirizzo https://console.aws.amazon.com/aos/home.

  2. Scegli Raccolte dalla barra di navigazione a sinistra e scegli Crea raccolta.

  3. Assegna un nome alla raccolta ingestion-collection.

  4. In Impostazioni di accesso alla rete, modifica il tipo di accesso in Pubblico.

  5. Mantenere tutte le altre impostazioni come valori predefiniti e scegliere Successivo.

  6. Per il metodo di definizione, scegli JSON e incolla la seguente politica nell'editor. Questa politica fa due cose:

    • Consente al ruolo della pipeline di scrivere nella raccolta.

    • Consente di leggere i contenuti della raccolta. Successivamente, dopo aver inserito alcuni dati di esempio nella pipeline, interrogherete la raccolta per assicurarvi che i dati siano stati inseriti e scritti correttamente nell'indice.

      [ { "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/PipelineRole", "arn:aws:iam::{your-account-id}:role/Admin" ], "Description": "Rule 1" } ]
  7. Sostituisci gli elementi. Principal Il primo principale dovrebbe specificare il ruolo della pipeline che hai creato. Il secondo dovrebbe specificare un utente o un ruolo da utilizzare per interrogare la raccolta in un secondo momento.

  8. Seleziona Avanti. Assegna un nome alla politica di accesso pipeline-domain-accesse scegli nuovamente Avanti.

  9. Rivedi la configurazione della raccolta e scegli Submit (Invia).

Quando la raccolta è attiva, annota l' OpenSearch endpoint in Endpoint (ad esempio,https://{collection-id}.us-east-1.aoss.amazonaws.com). Ne avrai bisogno quando creerai la tua pipeline.

Fase 3: Creare una pipeline

Ora che disponi di una raccolta e di un ruolo con i diritti di accesso appropriati, puoi creare una pipeline.

Per creare una pipeline
  1. Nella console di Amazon OpenSearch Service, scegli Pipelines dal riquadro di navigazione a sinistra.

  2. Scegliere Create pipeline (Crea pipeline).

  3. Assegna un nome alla pipeline serverless-ingestion e mantieni le impostazioni di capacità come predefinite.

  4. In questo tutorial, creeremo una semplice sottopipeline chiamata che utilizza il plugin sorgente HTTP. log-pipeline Il plugin accetta i dati di registro in un formato di matrice JSON. Specificheremo una singola raccolta OpenSearch Serverless come sink e inseriremo tutti i dati nell'indice. my_logs

    In Configurazione Pipeline, incolla la seguente configurazione YAML nell'editor:

    version: "2" log-pipeline: source: http: path: "/${pipelineName}/test_ingestion_path" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://{collection-id}.us-east-1.aoss.amazonaws.com" ] index: "my_logs" aws: sts_role_arn: "arn:aws:iam::{your-account-id}:role/PipelineRole" region: "us-east-1" serverless: true
  5. Sostituisci l'hostsURL con l'endpoint della raccolta che hai creato nella sezione precedente. Sostituisci il sts_role_arn parametro con l'ARN di. PipelineRole Facoltativamente, modificare il. region

  6. Scegli Convalida pipeline e assicurati che la convalida abbia esito positivo.

  7. Per semplicità, in questo tutorial, configureremo l'accesso pubblico alla pipeline. In Rete, scegli Accesso pubblico.

    Per informazioni sulla configurazione dell'accesso al VPC, vedere. Configurazione dell'accesso VPC per le pipeline di Amazon Ingestion OpenSearch

  8. Mantieni abilitata la pubblicazione dei log in caso di problemi durante il completamento di questo tutorial. Per ulteriori informazioni, consulta Monaggio aggio aggio aggio aggio aggio aggio aggio aggio aggio.

    Specificate il seguente nome del gruppo di log: /aws/vendedlogs/OpenSearchIngestion/serverless-ingestion/audit-logs

  9. Seleziona Avanti. Controlla la configurazione della pipeline e scegli Crea pipeline. La pipeline impiega 5-10 minuti per diventare attiva.

Fase 4: Inserimento di alcuni dati di esempio

Quando lo stato della pipeline è impostatoActive, puoi iniziare a importare i dati al suo interno. È necessario firmare tutte le richieste HTTP alla pipeline utilizzando Signature Version 4. Utilizza uno strumento HTTP come Postman o awscurl per inviare alcuni dati alla pipeline. Come per l'indicizzazione dei dati direttamente in una raccolta, l'importazione dei dati in una pipeline richiede sempre un ruolo IAM o una chiave di accesso IAM e una chiave segreta.

Nota

Il principale che firma la richiesta deve disporre dell'autorizzazione IAM. osis:Ingest

Innanzitutto, ottieni l'URL di importazione dalla pagina delle impostazioni di Pipeline:

Quindi, inserisci alcuni dati di esempio. La seguente richiesta di esempio utilizza awscurl per inviare un singolo file di registro all'indice: my_logs

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/log-pipeline/test_ingestion_path

Dovresti vedere una 200 OK risposta.

Ora, interroga l'my_logsindice per assicurarti che la voce di registro sia stata inserita correttamente:

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

Esempio di risposta:

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

Risorse correlate

Questo tutorial ha presentato un semplice caso d'uso di assimilazione di un singolo documento tramite HTTP. Negli scenari di produzione, configurerai le tue applicazioni client (come Fluent Bit, Kubernetes o OpenTelemetry Collector) per inviare dati a una o più pipeline. Le tue pipeline saranno probabilmente più complesse del semplice esempio di questo tutorial.

Per iniziare a configurare i client e ad acquisire dati, consulta le seguenti risorse: