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
-
Buka AWS Identity and Access Management konsol di https://console.aws.amazon.com/iamv2/
. -
Pilih Kebijakan, lalu pilih Buat kebijakan.
-
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
" } } } ] } -
Pilih Berikutnya, pilih Berikutnya, dan beri nama kebijakan Anda collection-pipeline-policy.
-
Pilih Buat kebijakan.
-
Selanjutnya, buat peran dan lampirkan kebijakan padanya. Pilih Peran, lalu pilih Buat peran.
-
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" } ] }
-
Pilih Berikutnya. Kemudian cari dan pilih collection-pipeline-policy(yang baru saja Anda buat).
-
Pilih Berikutnya dan beri nama peran PipelineRole.
-
Pilih Buat peran.
Ingat Nama Sumber Daya Amazon (ARN) dari peran (misalnya,arn:aws:iam::
). Anda akan membutuhkannya saat membuat pipeline Anda.your-account-id
:role/PipelineRole
Langkah 2: Buat koleksi
Selanjutnya, buat koleksi untuk menyerap data ke dalam. Kami akan beri nama koleksinyaingestion-collection
.
-
Arahkan ke konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/rumah
. -
Pilih Koleksi dari navigasi kiri dan pilih Buat koleksi.
-
Sebutkan koleksi koleksi ingestion-.
-
Untuk Keamanan, pilih Standard create.
-
Di bawah Pengaturan akses jaringan, ubah jenis akses ke Publik.
-
Simpan semua pengaturan lain sebagai defaultnya dan pilih Berikutnya.
-
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" } ]
-
-
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. -
Pilih Berikutnya. Beri nama kebijakan akses pipeline-domain-accessdan pilih Berikutnya lagi.
-
Tinjau konfigurasi koleksi Anda dan pilih Kirim.
Saat koleksi aktif, perhatikan OpenSearch titik akhir di bawah Endpoint (misalnya,https://
). Anda akan membutuhkannya saat membuat pipeline Anda.{collection-id}
.us-east-1.aoss.amazonaws.com
Langkah 3: Buat pipeline
Sekarang setelah Anda memiliki koleksi dan peran dengan hak akses yang sesuai, Anda dapat membuat pipeline.
Untuk membuat pipa
-
Di dalam konsol OpenSearch Layanan Amazon, pilih Pipelines dari panel navigasi kiri.
-
Pilih Buat pipeline.
-
Pilih pipeline kosong, lalu pilih Select blueprint.
-
Beri nama pipeline serverless-ingestion dan pertahankan pengaturan kapasitas sebagai defaultnya.
-
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 -
Ganti
hosts
URL dengan titik akhir koleksi yang Anda buat di bagian sebelumnya. Gantists_role_arn
parameter dengan ARN dariPipelineRole
. Secara opsional, modifikasi.region
-
Pilih Validasi pipeline dan pastikan validasi berhasil.
-
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 .
-
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
-
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
catatan
Kepala sekolah yang menandatangani permintaan harus memiliki osis:Ingest
IAM izin.
Pertama, dapatkan konsumsi URL dari halaman pengaturan Pipeline:
Kemudian, konsumsi beberapa data sampel. Permintaan contoh berikut menggunakan awscurlmy_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: