Menggunakan Fungsi Lambda sebagai Output - Panduan Pengembang Amazon Kinesis Data Analytics SQL untuk Aplikasi

Setelah mempertimbangkan dengan cermat, kami memutuskan untuk menghentikan Amazon Kinesis Data Analytics SQL untuk aplikasi dalam dua langkah:

1. Mulai 15 Oktober 2025, Anda tidak akan dapat membuat Kinesis Data Analytics SQL baru untuk aplikasi.

2. Kami akan menghapus aplikasi Anda mulai 27 Januari 2026. Anda tidak akan dapat memulai atau mengoperasikan Amazon Kinesis Data Analytics Anda SQL untuk aplikasi. Support tidak akan lagi tersedia untuk Amazon Kinesis Data Analytics SQL sejak saat itu. Untuk informasi selengkapnya, lihat Amazon Kinesis Data Analytics SQL untuk penghentian Aplikasi.

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

Menggunakan Fungsi Lambda sebagai Output

Menggunakan AWS Lambda sebagai tujuan memungkinkan Anda untuk lebih mudah melakukan pasca-pemrosesan SQL hasil Anda sebelum mengirimnya ke tujuan akhir. Tugas pasca-pemrosesan umum meliputi berikut ini:

  • Menggabungkan beberapa baris ke dalam satu catatan

  • Menggabungkan hasil saat ini dengan hasil sebelumnya untuk mengatasi data yang datang terlambat

  • Mengirimkan ke berbagai tujuan berdasarkan tipe informasi

  • Terjemahan format catatan (seperti menerjemahkan ke Protobuf)

  • Manipulasi atau transformasi string

  • Pengayaan data setelah pemrosesan analitik

  • Pemrosesan khusus untuk kasus penggunaan geospasial

  • Enkripsi data

Fungsi Lambda dapat memberikan informasi analitik ke berbagai AWS layanan dan tujuan lainnya, termasuk yang berikut:

Untuk informasi selengkapnya tentang membuat aplikasi Lambda, lihat Memulai dengan AWS Lambda.

Lambda sebagai Izin Output

Untuk menggunakan Lambda sebagai output, IAM peran keluaran Lambda aplikasi memerlukan kebijakan izin berikut:

{ "Sid": "UseLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "FunctionARN" }

Lambda sebagai Metrik Output

Anda menggunakan Amazon CloudWatch untuk memantau jumlah byte yang dikirim, keberhasilan dan kegagalan, dan sebagainya. Untuk informasi tentang CloudWatch metrik yang dipancarkan oleh Kinesis Data Analytics menggunakan Lambda sebagai output, lihat Metrik Amazon Kinesis Analytics.

Lambda sebagai Model Data Input Peristiwa Output dan Model Respons Catatan

Untuk mengirim catatan output Kinesis Data Analytics, fungsi Lambda Anda harus sesuai dengan data input peristiwa yang diperlukan dan model respons catatan.

Model Data Input Peristiwa

Kinesis Data Analytics terus mengirimkan catatan output dari aplikasi ke Lambda sebagai fungsi output dengan model permintaan berikut. Dalam fungsi Anda, Anda mengulangi melalui daftar dan menerapkan logika bisnis Anda untuk memenuhi persyaratan output Anda (seperti transformasi data sebelum mengirim ke tujuan akhir).

Bidang Deskripsi
invocationId ID pemanggilan Lambda (acak). GUID
applicationArn Aplikasi Kinesis Data Analytics Nama Sumber Daya Amazon ARN ().
catatan
Bidang Deskripsi
recordId rekam ID (acakGUID)
lambdaDeliveryRecordMetadata
Bidang Deskripsi
retryHint Jumlah coba lagi pengiriman
data Muatan catatan output terenkode Base64
catatan

retryHint adalah nilai yang meningkat untuk setiap kegagalan pengiriman. Nilai ini tidak bertahan lama, dan menyetel ulang jika aplikasi terganggu.

Model Respons Catatan

Setiap catatan yang dikirim ke Lambda Anda sebagai fungsi output (dengan catatanIDs) harus diakui dengan salah satu Ok atauDeliveryFailed, dan harus berisi parameter berikut. Jika tidak, Kinesis Data Analytics menganggapnya sebagai kegagalan pengiriman.

catatan
Bidang Deskripsi
recordId ID catatan diteruskan dari Kinesis Data Analytics ke Lambda selama invokasi. Ketidakcocokan apa pun antara ID catatan asli dan ID catatan yang dibenarkan dianggap sebagai kegagalan pengiriman.
result Status pengiriman catatan. Berikut adalah nilai yang mungkin:
  • Ok: Catatan berhasil diubah dan dikirim ke tujuan akhir. Kinesis Data Analytics menyerap catatan SQL untuk diproses.

  • DeliveryFailed: Catatan gagal dikirim ke tujuan akhir oleh Lambda sebagai fungsi output. Kinesis Data Analytics terus mencoba mengirimkan catatan pengiriman yang gagal ke Lambda sebagai fungsi output.

Frekuensi Invokasi Output Lambda

Aplikasi Kinesis Data Analytics menyangga catatan output dan sering memanggil fungsi tujuan AWS Lambda .

  • Jika catatan dipancarkan ke aliran dalam aplikasi tujuan dalam aplikasi analitik data sebagai jendela jatuh, fungsi AWS Lambda tujuan dipanggil per pemicu jendela jatuh. Misalnya, jika jendela tumbling senilai 60 detik digunakan untuk memancarkan catatan ke aliran dalam aplikasi tujuan, fungsi Lambda dipanggil sekali setiap 60 detik.

  • Jika catatan dipancarkan ke aliran dalam aplikasi tujuan di aplikasi sebagai kueri berkelanjutan atau jendela geser, fungsi tujuan Lambda dipanggil sekitar sekali per detik.

catatan

Fungsi per Lambda memanggil batas ukuran muatan permintaan berlaku. Melebihi batas tersebut menghasilkan catatan output yang dibagi dan dikirim di beberapa panggilan fungsi Lambda.

Menambahkan Fungsi Lambda untuk Digunakan sebagai Output

Prosedur berikut menunjukkan cara menambahkan fungsi Lambda sebagai output untuk aplikasi Kinesis Data Analytics.

  1. Masuk ke AWS Management Console dan buka Managed Service for Apache Flink console di https://console.aws.amazon.com /kinesisanalytics.

  2. Pilih aplikasi dalam daftar, lalu pilih Application details (Detail aplikasi).

  3. Di bagian Destination (Tujuan), pilih Connect new destination (Sambungkan tujuan baru).

  4. Untuk item Destination (Tujuan), pilih fungsi AWS Lambda .

  5. Di bagian Kirim catatan ke AWS Lambda, pilih fungsi atau versi Lambda yang sudah ada, atau pilih Create new (Buat baru).

  6. Jika Anda membuat fungsi Lambda baru, lakukan hal berikut:

    1. Pilih salah satu templat yang disediakan. Untuk informasi selengkapnya, lihat Membuat Fungsi Lambda untuk Tujuan Aplikasi.

    2. Halaman Buat Fungsi terbuka di tab peramban baru. Di kotak Name (Nama), beri nama yang bermakna untuk fungsi (misalnya, myLambdaFunction).

    3. Perbarui templat dengan fungsi pasca-pemrosesan untuk aplikasi Anda. Untuk informasi tentang cara membuat fungsi Lambda, lihat Memulai dalam Panduan Developer AWS Lambda .

    4. Di konsol Kinesis Data Analytics, dalam daftar Fungsi Lambda, pilih fungsi Lambda yang baru saja Anda buat. Pilih $ LATEST untuk versi fungsi Lambda.

  7. Di bagian In-application stream (Aliran dalam aplikasi), pilih Choose an existing in-application stream (Pilih aliran dalam aplikasi yang sudah ada). Untuk Nama aliran dalam aplikasi, pilih aliran output aplikasi Anda. Hasil dari aliran output yang dipilih dikirim ke fungsi output Lambda.

  8. Biarkan sisa formulir dengan nilai default, dan pilih Save and continue (Simpan dan lanjutkan).

Aplikasi Anda sekarang mengirimkan catatan dari aliran dalam aplikasi ke fungsi Lambda Anda. Anda dapat melihat hasil template default di CloudWatch konsol Amazon. Pantau metrik AWS/KinesisAnalytics/LambdaDelivery.OkRecords untuk melihat jumlah catatan yang dikirim ke fungsi Lambda.

Lambda umum sebagai Kegagalan Output

Berikut adalah alasan umum pengiriman ke fungsi Lambda dapat gagal.

  • Tidak semua catatan (dengan catatanIDs) dalam batch yang dikirim ke fungsi Lambda dikembalikan ke layanan Kinesis Data Analytics.

  • Respons kehilangan ID catatan atau bidang status.

  • Waktu habis fungsi Lambda tidak cukup untuk mencapai logika bisnis dalam fungsi Lambda.

  • Logika bisnis dalam fungsi Lambda tidak menangkap semua kesalahan, yang mengakibatkan waktu habis dan tekanan balik karena pengecualian yang tidak ditangani. Ini sering disebut sebagai pesan “pil beracun”.

Untuk kegagalan pengiriman data, Kinesis Data Analytics terus mencoba kembali invokasi Lambda pada kumpulan catatan yang sama hingga berhasil. Untuk mendapatkan wawasan tentang kegagalan, Anda dapat memantau CloudWatch metrik berikut:

  • Aplikasi Kinesis Data Analytics Lambda sebagai metrik CloudWatch Output: Menunjukkan jumlah keberhasilan dan kegagalan, di antara statistik lainnya. Untuk informasi selengkapnya, lihat Metrik Amazon Kinesis Analytics.

  • AWS Lambda CloudWatch metrik fungsi dan log.