Tutorial: Menelan data ke dalam koleksi menggunakan Amazon OpenSearch Ingestion - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Menelan data ke dalam koleksi menggunakan Amazon OpenSearch Ingestion

Tutorial ini menunjukkan cara menggunakan Amazon OpenSearch Ingestion untuk mengonfigurasi pipeline sederhana dan menyerap data ke dalam koleksi Amazon OpenSearch Tanpa Server. Pipeline adalah sumber daya yang disediakan dan dikelola oleh OpenSearch Ingestion. Anda dapat menggunakan pipeline untuk memfilter, memperkaya, mengubah, menormalkan, dan mengumpulkan data untuk analitik dan visualisasi hilir di Layanan. OpenSearch

Untuk tutorial yang menunjukkan cara menyerap data ke dalam domain OpenSearch Layanan yang disediakan, lihat. Tutorial: Menelan data ke dalam domain menggunakan Amazon Ingestion OpenSearch

Anda akan menyelesaikan langkah-langkah berikut dalam tutorial ini:

Dalam tutorial, Anda akan membuat sumber daya berikut:

  • Sebuah pipa bernama ingestion-pipeline-serverless

  • Sebuah koleksi bernama ingestion-collection bahwa pipeline akan menulis

  • Peran IAM bernama PipelineRole bahwa pipeline akan diasumsikan untuk menulis ke koleksi

Izin yang diperlukan

Untuk menyelesaikan tutorial ini, Anda harus memiliki izin IAM yang benar. Pengguna atau peran Anda harus memiliki kebijakan berbasis identitas terlampir dengan izin minimum berikut. Izin ini memungkinkan Anda membuat peran pipeline (iam:Create*), membuat atau memodifikasi collection (aoss:*), dan bekerja dengan pipelines (osis:*).

Selain itu, iam:PassRole izin diperlukan pada sumber daya peran pipa. Izin ini memungkinkan Anda untuk meneruskan peran pipeline ke OpenSearch Ingestion sehingga dapat menulis data ke koleksi.

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

Langkah 1: Buat peran pipeline

Pertama, buat peran yang akan diasumsikan oleh pipeline untuk mengakses sink koleksi OpenSearch Tanpa Server. Anda akan menyertakan peran ini dalam konfigurasi pipeline nanti dalam tutorial ini.

Untuk membuat peran pipeline
  1. Buka AWS Identity and Access Management konsol di https://console.aws.amazon.com/iamv2/.

  2. Pilih Kebijakan, lalu pilih Buat kebijakan.

  3. Pilih JSON dan tempelkan kebijakan berikut ke 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. Pilih Berikutnya, pilih Berikutnya, dan beri nama kebijakan Anda collection-pipeline-policy.

  5. Pilih Buat kebijakan.

  6. Selanjutnya, buat peran dan lampirkan kebijakan padanya. Pilih Peran, lalu pilih Buat peran.

  7. Pilih Kebijakan kepercayaan khusus dan tempelkan kebijakan berikut ke editor:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"osis-pipelines.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  8. Pilih Berikutnya. Kemudian cari dan pilih collection-pipeline-policy(yang baru saja Anda buat).

  9. Pilih Berikutnya dan beri nama peran PipelineRole.

  10. Pilih Buat peran.

Ingat Nama Sumber Daya Amazon (ARN) dari peran tersebut (misalnya,arn:aws:iam::{your-account-id}:role/PipelineRole). Anda akan membutuhkannya saat membuat pipeline Anda.

Langkah 2: Buat koleksi

Selanjutnya, buat koleksi untuk menyerap data ke dalam. Kami akan beri nama koleksinyaingestion-collection.

  1. Arahkan ke konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/home.

  2. Pilih Koleksi dari navigasi kiri dan pilih Buat koleksi.

  3. Sebutkan koleksi koleksi ingestion-.

  4. Di bawah Pengaturan akses jaringan, ubah jenis akses ke Publik.

  5. Simpan semua pengaturan lain sebagai defaultnya dan pilih Berikutnya.

  6. Untuk metode Definisi, pilih JSON dan tempel kebijakan berikut ke editor. Kebijakan ini melakukan dua hal:

    • Memungkinkan peran pipeline untuk menulis ke koleksi.

    • Memungkinkan Anda membaca dari koleksi. Kemudian, setelah Anda memasukkan beberapa data sampel ke dalam pipeline, Anda akan menanyakan koleksi untuk memastikan bahwa data berhasil dicerna dan ditulis ke indeks.

      [ { "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. Ganti Principal elemen. Prinsipal pertama harus menentukan peran pipeline yang Anda buat. Yang kedua harus menentukan pengguna atau peran yang dapat Anda gunakan untuk menanyakan koleksi nanti.

  8. Pilih Berikutnya. Beri nama kebijakan akses pipeline-domain-accessdan pilih Berikutnya lagi.

  9. Tinjau konfigurasi koleksi Anda dan pilih Kirim.

Saat koleksi aktif, perhatikan OpenSearch titik akhir di bawah Endpoint (misalnya,https://{collection-id}.us-east-1.aoss.amazonaws.com). Anda akan membutuhkannya saat membuat pipeline Anda.

Langkah 3: Buat pipeline

Sekarang setelah Anda memiliki koleksi dan peran dengan hak akses yang sesuai, Anda dapat membuat pipeline.

Untuk membuat pipa
  1. Di dalam konsol OpenSearch Layanan Amazon, pilih Pipelines dari panel navigasi kiri.

  2. Pilih Buat pipeline.

  3. Beri nama pipeline serverless-ingestion dan pertahankan pengaturan kapasitas sebagai defaultnya.

  4. Dalam tutorial ini, kita akan membuat sub-pipeline sederhana log-pipeline yang disebut yang menggunakan plugin sumber HTTP. Plugin menerima data log dalam format array JSON. Kami akan menentukan koleksi OpenSearch Tanpa Server tunggal sebagai wastafel, dan menelan semua data ke dalam indeks. my_logs

    Di bawah konfigurasi Pipeline, tempelkan konfigurasi YAMAL berikut ke 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. Ganti hosts URL dengan titik akhir koleksi yang Anda buat di bagian sebelumnya. Ganti sts_role_arn parameter dengan ARN dari. PipelineRole Secara opsional, modifikasi. region

  6. Pilih Validasi pipeline dan pastikan validasi berhasil.

  7. Untuk kesederhanaan dalam tutorial ini, kita akan mengkonfigurasi akses publik untuk pipeline. Di bawah Jaringan, pilih Akses publik.

    Untuk informasi tentang mengonfigurasi akses VPC, lihat. Mengamankan saluran pipa Amazon OpenSearch Ingestion dalam VPC

  8. Tetap aktifkan penerbitan log jika Anda mengalami masalah saat menyelesaikan tutorial ini. Untuk informasi selengkapnya, lihat Memantau log.

    Tentukan nama grup log berikut: /aws/vendedlogs/OpenSearchIngestion/serverless-ingestion/audit-logs

  9. Pilih Berikutnya. Tinjau konfigurasi pipeline Anda dan pilih Create pipeline. Pipa membutuhkan waktu 5-10 menit untuk menjadi aktif.

Langkah 4: Menelan beberapa data sampel

Ketika status pipelineActive, Anda dapat mulai menelan data ke dalamnya. Anda harus menandatangani semua permintaan HTTP ke pipeline menggunakan Signature Version 4. Gunakan alat HTTP seperti Postman atau awscurl untuk mengirim beberapa data ke pipeline. Seperti halnya pengindeksan data langsung ke koleksi, menelan data ke dalam pipeline selalu memerlukan peran IAM atau kunci akses IAM dan kunci rahasia.

catatan

Kepala sekolah yang menandatangani permintaan harus memiliki izin osis:Ingest IAM.

Pertama, dapatkan URL konsumsi dari halaman pengaturan Pipeline:

Kemudian, konsumsi beberapa data sampel. Permintaan contoh berikut menggunakan awscurl untuk mengirim satu file log ke indeks: 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

Anda harus melihat 200 OK tanggapan.

Sekarang, kueri my_logs indeks untuk memastikan bahwa entri log berhasil dicerna:

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

Sampel respon:

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

Sumber daya terkait

Tutorial ini menyajikan kasus penggunaan sederhana menelan satu dokumen melalui HTTP. Dalam skenario produksi, Anda akan mengonfigurasi aplikasi klien Anda (seperti Fluent Bit, Kubernetes, atau OpenTelemetry Collector) untuk mengirim data ke satu atau beberapa pipeline. Saluran pipa Anda kemungkinan akan lebih kompleks daripada contoh sederhana dalam tutorial ini.

Untuk mulai mengonfigurasi klien Anda dan menelan data, lihat sumber daya berikut: