View a markdown version of this page

Memproses rekaman Amazon Kinesis Data Streams dengan Lambda - AWS Lambda

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

Memproses rekaman Amazon Kinesis Data Streams dengan Lambda

Untuk memproses rekaman Amazon Kinesis Data Streams dengan Lambda, buat pemetaan sumber peristiwa Lambda. Anda dapat memetakan fungsi Lambda ke iterator standar atau konsumen fan-out yang ditingkatkan. Untuk informasi selengkapnya, lihat Aliran pemungutan suara dan batching.

Membuat pemetaan sumber peristiwa Kinesis

Untuk memanggil fungsi Lambda Anda dengan catatan dari aliran data Anda, buat pemetaan sumber peristiwa. Anda dapat membuat beberapa pemetaan sumber kejadian untuk memproses data yang sama dengan beberapa fungsi Lambda, atau untuk memproses item dari beberapa aliran data dengan satu fungsi. Saat memproses item dari beberapa aliran, setiap batch berisi catatan hanya dari satu pecahan atau aliran.

Anda dapat mengonfigurasi pemetaan sumber peristiwa untuk memproses catatan dari aliran yang berbeda. Akun AWS Untuk mempelajari selengkapnya, lihat Membuat pemetaan sumber peristiwa lintas akun.

Sebelum membuat pemetaan sumber peristiwa, Anda perlu memberikan izin fungsi Lambda untuk membaca dari aliran data Kinesis. Lambda memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan aliran data Kinesis Anda:

Kebijakan ter AWS kelola AWSLambdaKinesisExecutionRole menyertakan izin ini. Tambahkan kebijakan terkelola ini ke fungsi Anda seperti yang dijelaskan dalam prosedur berikut.

catatan
  • Anda tidak memerlukan kinesis:ListStreams izin untuk membuat dan mengelola pemetaan sumber peristiwa untuk Kinesis. Namun, jika Anda membuat pemetaan sumber peristiwa di konsol dan Anda tidak memiliki izin ini, Anda tidak akan dapat memilih aliran Kinesis dari daftar dropdown dan konsol menampilkan kesalahan. Untuk membuat pemetaan sumber acara, Anda harus memasukkan Nama Sumber Daya Amazon (ARN) secara manual dari streaming Anda.

  • Lambda membuat kinesis:GetRecords dan memanggil kinesis:GetShardIterator API saat mencoba lagi pemanggilan yang gagal.

Konsol Manajemen AWS
Untuk menambahkan izin Kinesis ke fungsi Anda
  1. Buka halaman Functions pada konsol Lambda dan pilih fungsi Anda.

  2. Di tab Konfigurasi, pilih Izin.

  3. Di panel Peran eksekusi, di bawah Nama peran, pilih tautan ke peran eksekusi fungsi Anda. Tautan ini membuka halaman untuk peran tersebut di konsol IAM.

  4. Di panel Kebijakan izin, pilih Tam bah izin, lalu pilih Lamp irkan kebijakan.

  5. Di bidang pencarian, masukkanAWSLambdaKinesisExecutionRole.

  6. Pilih kotak centang di sebelah kebijakan dan pilih Tam bah izin.

AWS CLI
Untuk menambahkan izin Kinesis ke fungsi Anda
  • Jalankan perintah CLI berikut untuk menambahkan AWSLambdaKinesisExecutionRole kebijakan ke peran eksekusi fungsi Anda:

    aws iam attach-role-policy \ --role-name MyFunctionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole
AWS SAM
Untuk menambahkan izin Kinesis ke fungsi Anda
  • Dalam definisi fungsi Anda, tambahkan Policies properti seperti yang ditunjukkan pada contoh berikut:

    Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./my-function/ Handler: index.handler Runtime: nodejs24.x Policies: - AWSLambdaKinesisExecutionRole

Setelah mengonfigurasi izin yang diperlukan, buat pemetaan sumber acara.

Konsol Manajemen AWS
Untuk membuat pemetaan sumber peristiwa Kinesis
  1. Buka halaman Functions pada konsol Lambda dan pilih fungsi Anda.

  2. Di panel I khtisar fungsi, pilih Tam bah pemicu.

  3. Di bawah konfigurasi pemicu, untuk sumber, pilih Kinesis.

  4. Pilih aliran Kinesis yang ingin Anda buat pemetaan sumber acara dan, secara opsional, konsumen streaming Anda.

  5. (Opsional) edit ukuran Batch, Pos isi awal, dan jendela Batch untuk pemetaan sumber acara Anda.

  6. Pilih Tambahkan.

Saat membuat pemetaan sumber acara dari konsol, peran IAM Anda harus memiliki izin kinesis: ListStreams dan kinesis:. ListStreamConsumers

AWS CLI
Untuk membuat pemetaan sumber peristiwa Kinesis
  • Jalankan perintah CLI berikut untuk membuat pemetaan sumber peristiwa Kinesis. Pilih ukuran batch Anda sendiri dan posisi awal sesuai dengan kasus penggunaan Anda.

    aws lambda create-event-source-mapping \ --function-name MyFunction \ --event-source-arn arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream \ --starting-position LATEST \ --batch-size 100

Untuk menentukan jendela batching, tambahkan --maximum-batching-window-in-seconds opsi. Untuk informasi selengkapnya tentang menggunakan parameter ini dan parameter lainnya, lihat create-event-source- mapping di Referensi Perintah. AWS CLI

AWS SAM
Untuk membuat pemetaan sumber peristiwa Kinesis
  • Dalam definisi fungsi Anda, tambahkan KinesisEvent properti seperti yang ditunjukkan pada contoh berikut:

    Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./my-function/ Handler: index.handler Runtime: nodejs24.x Policies: - AWSLambdaKinesisExecutionRole Events: KinesisEvent: Type: Kinesis Properties: Stream: !GetAtt MyKinesisStream.Arn StartingPosition: LATEST BatchSize: 100 MyKinesisStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1

Untuk mempelajari selengkapnya tentang membuat pemetaan sumber peristiwa untuk Kinesis Data Streams di AWS SAM, lihat Kinesis di Panduan Peng AWS Serverless Application Model embang.

Posisi awal pemungutan suara dan streaming

Ketahuilah bahwa polling aliran selama pembuatan dan pembaruan pemetaan sumber peristiwa pada akhirnya konsisten.

  • Selama pembuatan pemetaan sumber peristiwa, mungkin diperlukan beberapa menit untuk memulai peristiwa polling dari aliran.

  • Selama pembaruan pemetaan sumber peristiwa, mungkin diperlukan beberapa menit untuk menghentikan dan memulai ulang peristiwa polling dari aliran.

Perilaku ini berarti bahwa jika Anda menentukan LATEST sebagai posisi awal untuk aliran, pemetaan sumber peristiwa dapat melewatkan peristiwa selama pembuatan atau pembaruan. Untuk memastikan tidak ada acara yang terlewatkan, tentukan posisi awal streaming sebagai TRIM_HORIZON atauAT_TIMESTAMP.

Membuat pemetaan sumber peristiwa lintas akun

Amazon Kinesis Data Streams mendukung kebijakan berbasis sumber daya. Karena itu, Anda dapat memproses data yang dicerna ke dalam aliran dalam satu Akun AWS dengan fungsi Lambda di akun lain.

Untuk membuat pemetaan sumber peristiwa untuk fungsi Lambda menggunakan aliran Kinesis yang berbeda Akun AWS, Anda harus mengonfigurasi aliran menggunakan kebijakan berbasis sumber daya untuk memberikan izin fungsi Lambda Anda untuk membaca item. Untuk mempelajari cara mengonfigurasi streaming untuk mengizinkan akses lintas akun, lihat Berbagi akses dengan AWS Lambda fungsi lintas akun di panduan Pengembang Amazon Kinesis Streams.

Setelah mengonfigurasi aliran dengan kebijakan berbasis sumber daya yang memberikan fungsi Lambda izin yang diperlukan, buat pemetaan sumber peristiwa menggunakan salah satu metode yang dijelaskan di bagian sebelumnya.

Jika Anda memilih untuk membuat pemetaan sumber acara menggunakan konsol Lambda, tempelkan ARN streaming Anda langsung ke bidang input. Jika Anda ingin menentukan konsumen untuk streaming Anda, menempelkan ARN konsumen secara otomatis mengisi bidang aliran.