View a markdown version of this page

Memanggil Fungsi Acara Lambda dengan acara batch Amazon S3 - AWS Lambda

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

Memanggil Fungsi Acara Lambda dengan acara batch Amazon S3

Anda dapat menggunakan operasi batch Amazon S3 untuk menjalankan Fungsi Peristiwa Lambda pada sekumpulan besar objek Amazon S3. Amazon S3 melacak kemajuan operasi batch, mengirimkan pemberitahuan, dan menyimpan laporan penyelesaian yang menunjukkan status setiap tindakan.

Untuk menjalankan operasi batch, Anda membuat pekerjaan operasi batch Amazon S3. Saat Anda membuat pekerjaan, Anda memberikan manifest (daftar objek) dan mengonfigurasi tindakan yang akan dilakukan pada objek tersebut.

Saat pekerjaan batch dimulai, Amazon S3 memanggil Fungsi Peristiwa Lambda secara sinkron untuk setiap objek dalam manifes. Parameter kejadian mencakup nama bucket dan objek.

Contoh berikut menunjukkan peristiwa yang dikirimkan Amazon S3 ke Fungsi Peristiwa Lambda untuk objek yang diberi nama pelanggan Image1.jpg di bucket amzn-s3-demo-bucket.

contoh Kejadian permintaan batch Amazon S3
{ "invocationSchemaVersion": "1.0", "invocationId": "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", "job": { "id": "f3cc4f60-61f6-4a2b-8a21-d07600c373ce" }, "tasks": [ { "taskId": "dGFza2lkZ29lc2hlcmUK", "s3Key": "customerImage1.jpg", "s3VersionId": "1", "s3BucketArn": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }

Fungsi Peristiwa Lambda Anda harus mengembalikan objek JSON dengan bidang seperti yang ditunjukkan pada contoh berikut. Anda dapat menyalin invocationId dan taskId dari parameter kejadian. Anda dapat mengembalikan string di resultString. Amazon S3 menyimpan nilai resultString dalam laporan penyelesaian.

contoh Respons permintaan batch Amazon S3
{ "invocationSchemaVersion": "1.0", "treatMissingKeysAs" : "PermanentFailure", "invocationId" : "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", "results": [ { "taskId": "dGFza2lkZ29lc2hlcmUK", "resultCode": "Succeeded", "resultString": "[\"Alice\", \"Bob\"]" } ] }

Memanggil Fungsi Acara Lambda dari operasi batch Amazon S3

Anda dapat memanggil Fungsi Acara Lambda dengan ARN fungsi yang tidak memenuhi syarat atau memenuhi syarat. Jika Anda ingin menggunakan versi fungsi yang sama untuk seluruh pekerjaan batch, konfigurasikan versi fungsi tertentu di parameter FunctionARN saat membuat pekerjaan Anda. Jika Anda mengonfigurasi sebuah alias atau pengualifikasi $LATEST, pekerjaan batch segera mulai memanggil versi baru dari fungsi tersebut jika alias atau $LATEST diperbarui selama pelaksanaan pekerjaan.

Perhatikan bahwa Anda tidak dapat menggunakan kembali fungsi berbasis kejadian Amazon S3 yang sudah ada untuk operasi batch. Ini karena operasi batch Amazon S3 meneruskan parameter peristiwa yang berbeda ke Fungsi Peristiwa Lambda dan mengharapkan pesan balasan dengan struktur JSON tertentu.

Dalam kebijakan berbasis sumber daya yang Anda buat untuk pekerjaan batch Amazon S3, pastikan Anda menetapkan izin untuk pekerjaan tersebut untuk menjalankan Fungsi Peristiwa Lambda.

Di peran eksekusi untuk fungsi tersebut, tetapkan kebijakan kepercayaan bagi Amazon S3 untuk mengambil peran tersebut saat menjalankan fungsi Anda.

Jika fungsi Anda menggunakan AWS SDK untuk mengelola resource Amazon S3, Anda perlu menambahkan izin Amazon S3 dalam peran eksekusi.

Saat pekerjaan berjalan, Amazon S3 memulai beberapa instans fungsi untuk memproses objek Amazon S3 secara paralel, hingga mencapai batas konkurensi fungsi. Amazon S3 membatasi peningkatan instans awal guna menghindari biaya berlebih untuk pekerjaan kecil.

Jika Fungsi Peristiwa Lambda mengembalikan kode TemporaryFailure respons, Amazon S3 akan mencoba ulang operasinya.

Untuk informasi lebih lanjut tentang operasi batch Amazon S3, lihat Melakukan operasi batch dalam Panduan Developer Amazon S3.

Untuk contoh cara menggunakan Fungsi Peristiwa Lambda di operasi batch Amazon S3, lihat Memanggil fungsi Lambda dari operasi batch Amazon S3 di Panduan Pengembang Amazon S3.