

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 domain menggunakan Amazon OpenSearch Ingestion
<a name="osis-get-started"></a>

Tutorial ini menunjukkan cara menggunakan Amazon OpenSearch Ingestion untuk mengonfigurasi pipeline sederhana dan menyerap data ke dalam domain Layanan Amazon OpenSearch . *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 

Tutorial ini memandu Anda melalui langkah-langkah dasar untuk mendapatkan pipeline dan berjalan dengan cepat. Untuk instruksi yang lebih komprehensif, lihat[Membuat jaringan pipa](creating-pipeline.md#create-pipeline).

Anda akan menyelesaikan langkah-langkah berikut dalam tutorial ini:

1. [Buat domain](#osis-get-started-access).

1. [Buat pipa](#osis-get-started-pipeline).

1. [Menelan beberapa data sampel](#osis-get-started-ingest).

Dalam tutorial, Anda akan membuat sumber daya berikut:
+ Domain bernama `ingestion-domain` yang ditulis oleh pipeline
+ Sebuah pipa bernama `ingestion-pipeline`

## Izin yang diperlukan
<a name="osis-get-started-permissions"></a>

Untuk menyelesaikan tutorial ini, pengguna atau peran Anda harus memiliki [kebijakan berbasis identitas terlampir dengan izin](security-iam-serverless.md#security-iam-serverless-id-based-policies) minimum berikut. Izin ini memungkinkan Anda membuat peran pipeline dan melampirkan kebijakan (`iam:Create*`dan`iam:Attach*`), membuat atau memodifikasi domain (`es:*`), dan bekerja dengan pipelines (`osis:*`).

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

****  

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

------

## Langkah 1: Buat peran pipeline
<a name="osis-get-started-role"></a>

Pertama, buat peran yang akan diasumsikan pipeline untuk mengakses sink domain OpenSearch Service. 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/](https://console.aws.amazon.com/iamv2/ ).

1. Pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Dalam tutorial ini, Anda akan menelan data ke dalam domain yang disebut`ingestion-domain`, yang akan Anda buat di langkah berikutnya. Pilih **JSON** dan tempelkan kebijakan berikut ke editor. Ganti `{{your-account-id}}` dengan ID akun Anda, dan ubah Wilayah jika perlu.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "es:DescribeDomain",
               "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain"
           },
           {
               "Effect": "Allow",
               "Action": "es:ESHttp*",
               "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain/*"
           }
       ]
   }
   ```

------

   Jika Anda ingin menulis data ke domain yang *ada*, ganti `ingestion-domain` dengan nama domain Anda.
**catatan**  
Untuk kesederhanaan dalam tutorial ini, kami menggunakan kebijakan akses yang luas. Namun, di lingkungan produksi, kami menyarankan Anda menerapkan kebijakan akses yang lebih ketat ke peran pipeline Anda. Untuk contoh kebijakan yang memberikan izin minimum yang diperlukan, lihat[Memberikan akses saluran pipa Amazon OpenSearch Ingestion ke domain](pipeline-domain-access.md).

1. Pilih **Berikutnya**, pilih **Berikutnya**, dan beri nama kebijakan **pipeline** kebijakan Anda.

1. Pilih **Buat kebijakan**.

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

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

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"osis-pipelines.amazonaws.com"
            },
            "Action":"sts:AssumeRole"
         }
      ]
   }
   ```

------

1. Pilih **Berikutnya**. Kemudian cari dan pilih **pipeline-policy** (yang baru saja Anda buat).

1. Pilih **Berikutnya** dan beri nama peran **PipelineRole**.

1. 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 domain
<a name="osis-get-started-access"></a>

Pertama, buat domain bernama `ingestion-domain` untuk menyerap data ke dalam.

Arahkan ke konsol OpenSearch Layanan Amazon di [https://console.aws.amazon.com/aos/rumah](https://console.aws.amazon.com/aos/home) dan [buat domain](createupdatedomains.md) yang memenuhi persyaratan berikut:
+ Menjalankan OpenSearch 1.0 atau yang lebih baru, atau Elasticsearch 7.4 atau yang lebih baru
+ Menggunakan akses publik
+ Tidak menggunakan kontrol akses berbutir halus

**catatan**  
Persyaratan ini dimaksudkan untuk memastikan kesederhanaan dalam tutorial ini. Di lingkungan produksi, Anda dapat mengonfigurasi domain dengan akses VPC and/or menggunakan kontrol akses berbutir halus. Untuk menggunakan kontrol akses berbutir halus, lihat [Memetakan peran pipeline.](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-domain-access.html#pipeline-access-domain)

Domain harus memiliki kebijakan akses yang memberikan izin ke peran `OpenSearchIngestion-PipelineRole` IAM, yang akan dibuat OpenSearch Layanan untuk Anda di langkah berikutnya. Pipeline akan mengambil peran ini untuk mengirim data ke sink domain.

Pastikan domain memiliki kebijakan akses tingkat domain berikut, yang memberikan akses peran pipeline ke domain. Ganti Region dan ID akun dengan milik Anda sendiri:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:role/OpenSearchIngestion-PipelineRole"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/ingestion-domain/*"
    }
  ]
}
```

------

Untuk informasi selengkapnya tentang membuat kebijakan akses tingkat domain, lihat. [Kebijakan berbasis sumber daya](ac.md#ac-types-resource)

Jika Anda sudah memiliki domain yang dibuat, ubah kebijakan akses yang ada untuk memberikan izin di atas. `OpenSearchIngestion-PipelineRole`

## Langkah 3: Buat pipeline
<a name="osis-get-started-pipeline"></a>

Sekarang setelah Anda memiliki domain, Anda dapat membuat pipeline.

**Untuk membuat pipa**

1. Di dalam konsol OpenSearch Layanan Amazon, pilih **Pipelines** dari panel navigasi kiri.

1. Pilih **Buat pipeline**.

1. Pilih pipeline **kosong**, lalu pilih **Select blueprint**.

1. Dalam tutorial ini, kita akan membuat pipeline sederhana yang menggunakan plugin [sumber HTTP](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/http-source/). Plugin menerima data log dalam format array JSON. Kami akan menentukan satu domain OpenSearch Layanan sebagai wastafel, dan menyerap semua data ke dalam `application_logs` indeks.

   Di menu **Sumber**, pilih **HTTP**. Untuk **Path**, masukkan **/logs**.

1. Untuk kesederhanaan dalam tutorial ini, kita akan mengkonfigurasi akses publik untuk pipeline. Untuk **opsi jaringan Sumber**, pilih **Akses publik**. Untuk informasi tentang mengonfigurasi akses VPC, lihat. [Mengkonfigurasi akses VPC untuk saluran pipa Amazon Ingestion OpenSearch](pipeline-security.md)

1. Pilih **Berikutnya**.

1. Untuk **Prosesor**, masukkan **Tanggal** dan pilih **Tambah**.

1. Aktifkan **Dari waktu diterima**. Biarkan semua pengaturan lain sebagai defaultnya.

1. Pilih **Berikutnya**.

1. Konfigurasikan detail wastafel. Untuk **jenis OpenSearch sumber daya**, pilih **Kluster terkelola**. Kemudian pilih domain OpenSearch Layanan yang Anda buat di bagian sebelumnya.

   Untuk **nama Indeks**, masukkan **application\_logs.** OpenSearch Ingestion secara otomatis membuat indeks ini di domain jika belum ada.

1. Pilih **Berikutnya**.

1. Beri nama pipeline **ingestion-pipeline**. Biarkan pengaturan kapasitas sebagai defaultnya.

1. Untuk **peran Pipeline**, pilih **Buat dan gunakan peran layanan baru**. Peran pipeline memberikan izin yang diperlukan untuk pipeline untuk menulis ke sink domain dan membaca dari sumber berbasis tarik. Dengan memilih opsi ini, Anda mengizinkan OpenSearch Ingestion untuk membuat peran untuk Anda, daripada membuatnya secara manual di IAM. Untuk informasi selengkapnya, lihat [Menyiapkan peran dan pengguna di Amazon OpenSearch Ingestion](pipeline-security-overview.md).

1. Untuk **akhiran nama peran Layanan**, masukkan **PipelineRole**. Di IAM, peran akan memiliki format`arn:aws:iam::{{your-account-id}}:role/OpenSearchIngestion-PipelineRole`.

1. 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
<a name="osis-get-started-ingest"></a>

Ketika status pipeline`Active`, Anda dapat mulai menelan data ke dalamnya. Anda harus menandatangani semua permintaan HTTP ke pipeline menggunakan [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Gunakan alat HTTP seperti [Postman](https://www.getpostman.com/) atau [awscurl](https://github.com/okigan/awscurl) untuk mengirim beberapa data ke pipeline. Seperti halnya pengindeksan data langsung ke domain, menelan data ke dalam pipeline selalu memerlukan peran IAM atau [kunci akses IAM dan kunci rahasia](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html). 

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

Pertama, dapatkan URL konsumsi dari halaman **pengaturan Pipeline**:

![Halaman pengaturan saluran pipa dengan bidang URL Ingestion disorot menampilkan URL titik akhir.](http://docs.aws.amazon.com/id_id/opensearch-service/latest/developerguide/images/pipeline-endpoint.png)


Kemudian, konsumsi beberapa data sampel. Permintaan berikut menggunakan [awscurl](https://github.com/okigan/awscurl) untuk mengirim satu file log ke 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
```

Anda harus melihat `200 OK` tanggapan. Jika Anda mendapatkan kesalahan otentikasi, itu mungkin karena Anda menelan data dari akun terpisah daripada pipeline. Lihat [Memperbaiki masalah izin](#osis-get-started-troubleshoot).

Sekarang, kueri `application_logs` indeks untuk memastikan bahwa entri log Anda berhasil dicerna:

```
awscurl --service es --region {{us-east-1}} \
     -X GET \
     https://search-{{ingestion-domain}}.{{us-east-1}}.es.amazonaws.com/application_logs/_search | json_pp
```

**Sampel respon**:

```
{
   "took":984,
   "timed_out":false,
   "_shards":{
      "total":1,
      "successful":5,
      "skipped":0,
      "failed":0
   },
   "hits":{
      "total":{
         "value":1,
         "relation":"eq"
      },
      "max_score":1.0,
      "hits":[
         {
            "_index":"application_logs",
            "_type":"_doc",
            "_id":"z6VY_IMBRpceX-DU6V4O",
            "_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":"2022-10-21T21:00:25.502Z"
            }
         }
      ]
   }
}
```

## Memperbaiki masalah izin
<a name="osis-get-started-troubleshoot"></a>

Jika Anda mengikuti langkah-langkah dalam tutorial dan Anda masih melihat kesalahan otentikasi ketika Anda mencoba untuk menelan data, itu mungkin karena peran yang menulis ke pipeline berbeda Akun AWS dari pipeline itu sendiri. Dalam hal ini, Anda perlu membuat dan [mengambil peran yang](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) secara khusus memungkinkan Anda untuk menelan data. Untuk petunjuk, lihat [Menyediakan akses konsumsi lintas akun](configure-client.md#configure-client-cross-account).

## Sumber daya terkait
<a name="osis-get-started-next"></a>

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:
+ [Membuat dan mengelola jaringan pipa](creating-pipeline.md#create-pipeline)
+ [Mengkonfigurasi klien Anda untuk mengirim data ke Ingestion OpenSearch ](configure-client.md)
+ [Dokumentasi Data Prepper](https://opensearch.org/docs/latest/clients/data-prepper/index/)