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 OpenSearch Ingestion

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

  • IAMPeran bernama PipelineRole bahwa pipeline akan mengambil alih untuk menulis ke koleksi

Izin yang diperlukan

Untuk menyelesaikan tutorial ini, Anda harus memiliki IAM izin 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 JSONdan tempel kebijakan berikut ke editor. Ubah koleksi ARN dan nama yang sesuai.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:BatchGetCollection", "aoss:APIAccessAll" ], "Effect": "Allow", "Resource": "arn:aws:aoss:us-east-1: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 (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/rumah.

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

  3. Sebutkan koleksi koleksi ingestion-.

  4. Untuk Keamanan, pilih Standard create.

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

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

  7. Sekarang, konfigurasikan kebijakan akses data untuk koleksi. Untuk metode Definisi, pilih JSONdan 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" } ]
  8. 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.

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

  10. 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. Pilih pipeline kosong, lalu pilih Select blueprint.

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

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

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

  7. Pilih Validasi pipeline dan pastikan validasi berhasil.

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

    Untuk informasi tentang mengonfigurasi VPC akses, lihatMengkonfigurasi akses VPC untuk saluran pipa Amazon Ingestion OpenSearch .

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

  10. 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 HTTP permintaan ke pipeline menggunakan Signature Version 4. Gunakan HTTP alat seperti Postman atau awscurl untuk mengirim beberapa data ke pipeline. Seperti halnya pengindeksan data langsung ke koleksi, menelan data ke dalam pipeline selalu memerlukan IAM peran atau kunci IAM akses dan kunci rahasia.

catatan

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

Pertama, dapatkan konsumsi URL dari halaman pengaturan Pipeline:

Pipeline settings page showing ingestion URL for an active ingestion 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 untuk menelan satu dokumen. 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: