View a markdown version of this page

Menggunakan pipa Ing OpenSearch estion dengan AWS Lambda - OpenSearch Layanan Amazon

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

Menggunakan pipa Ing OpenSearch estion dengan AWS Lambda

Gunakan AWS Lambda prosesor untuk memperkaya data dari sumber atau tujuan apa pun yang didukung oleh Ing OpenSearch estion menggunakan kode khusus. Dengan prosesor Lambda, Anda dapat menerapkan transformasi atau pengayaan data Anda sendiri dan kemudian mengembalikan peristiwa yang diproses kembali ke pipeline Anda untuk diproses lebih lanjut. Prosesor ini memungkinkan pemrosesan data yang disesuaikan dan memberi Anda kontrol penuh atas bagaimana data dimanipulasi sebelum bergerak melalui pipa.

catatan

Batas ukuran payload untuk satu peristiwa yang diproses oleh prosesor Lambda adalah 5 MB. Selain itu, prosesor Lambda hanya mendukung respons dalam format array JSON.

Prasyarat

Sebelum Anda membuat pipeline dengan prosesor Lambda, buat sumber daya berikut:

  • AWS Lambda Fungsi yang memperkaya dan mengubah data sumber Anda. Untuk petunjuk, lihat Membuat fungsi Lambda pertama Anda.

  • Domain OpenSearch Layanan atau koleksi OpenSearch Tanpa Server yang akan menjadi sink pipeline. Untuk informasi selengkapnya, lihat Membuat domain OpenSearch Layanan dan Membuat koleksi.

  • Peran pipeline yang menyertakan izin untuk menulis ke domain atau sink koleksi. Untuk informasi selengkapnya, lihat Peran pipa.

    Peran pipeline juga memerlukan kebijakan izin terlampir yang memungkinkannya untuk memanggil fungsi Lambda yang ditentukan dalam konfigurasi pipeline. Contoh:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "allowinvokeFunction", "Effect": "Allow", "Action": [ "lambda:invokeFunction", "lambda:InvokeAsync", "lambda:ListFunctions" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:function-name" } ] }

Membuat jalur

Untuk digunakan AWS Lambda sebagai prosesor, konfigurasikan pipeline Ing OpenSearch estion dan tent aws_lambda ukan sebagai prosesor. Anda juga dapat menggunakan cetak biru pengayaan AWS Lambda khusus untuk membuat pipeline. Untuk informasi selengkapnya, lihat Bekerja dengan cetak biru.

Contoh pipeline berikut menerima data dari sumber HTTP, memperkayanya menggunakan pengolah tanggal dan AWS Lambda prosesor, dan mencerna data yang OpenSearch diproses ke domain.

version: "2" lambda-processor-pipeline: source: http: path: "/${pipelineName}/logs" processor: - date: destination: "@timestamp" from_time_received: true - aws_lambda: function_name: "my-lambda-function" tags_on_failure: ["lambda_failure"] batch: key_name: "events" aws: region: region sink: - opensearch: hosts: [ "https://search-mydomain.us-east-1es.amazonaws.com" ] index: "table-index" aws: region: "region" serverless: false

AWS Lambda Fungsi contoh berikut mengubah data masuk dengan menambahkan pasangan kunci-nilai baru ("transformed": "true") ke setiap elemen dalam array peristiwa yang disediakan, dan kemudian mengirimkan kembali versi yang dimodifikasi.

import json def lambda_handler(event, context): input_array = event.get('events', []) output = [] for input in input_array: input["transformed"] = "true"; output.append(input) return output

Batching

Pipeline mengirim peristiwa berkelompok ke prosesor Lambda, dan secara dinamis menyesuaikan ukuran batch untuk memastikannya tetap di bawah batas 5 MB.

Berikut ini adalah contoh batch pipeline:

batch: key_name: "events" input_arrary = event.get('events', [])
catatan

Saat Anda membuat pipeline, pastikan key_name opsi dalam konfigurasi prosesor Lambda cocok dengan kunci peristiwa di handler Lambda.

Penyaringan bersyarat

Pemfilteran bersyarat memungkinkan Anda untuk mengontrol kapan AWS Lambda prosesor Anda memanggil fungsi Lambda berdasarkan kondisi tertentu dalam data peristiwa. Ini sangat berguna ketika Anda ingin secara selektif memproses jenis peristiwa tertentu sambil mengabaikan yang lain.

Contoh konfigurasi berikut menggunakan pemfilteran bersyarat:

processors: - aws_lambda: function_name: "my-lambda-function" aws: region: "region" lambda_when: "/sourceIp == 10.10.10.10"