Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil fungsi Lambda dengan acara batch Amazon S3
Anda dapat menggunakan operasi batch Amazon S3 untuk memanggil fungsi Lambda pada serangkaian 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 Lambda secara sinkron untuk setiap objek dalam manifest. Parameter kejadian mencakup nama bucket dan objek.
Contoh berikut menunjukkan peristiwa yang dikirimkan Amazon S3 ke fungsi Lambda untuk objek yang diberi nama customerImage1.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 Lambda Anda harus mengembalikan JSON objek 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 Lambda dari operasi batch Amazon S3
Anda dapat menjalankan fungsi Lambda dengan fungsi yang tidak memenuhi syarat atau memenuhi syarat. ARN 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 alias atau $ LATEST qualifier, pekerjaan batch segera mulai memanggil versi baru fungsi jika alias atau $ LATEST diperbarui selama eksekusi 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 Lambda dan mengharapkan pesan kembali dengan struktur tertentu. JSON
Di kebijakan berbasis sumber daya yang Anda buat untuk pekerjaan batch Amazon S3, pastikan Anda menetapkan izin untuk pekerjaan tersebut untuk memanggil fungsi Lambda Anda.
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 sumber daya 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 Lambda mengembalikan kode respons TemporaryFailure
, Amazon S3 akan mengulangi operasi.
Untuk informasi lebih lanjut tentang operasi batch Amazon S3, lihat Melakukan operasi batch dalam Panduan Developer Amazon S3.
Untuk contoh cara menggunakan fungsi Lambda di operasi batch Amazon S3, lihat Memanggil fungsi Lambda dari operasi batch Amazon S3 dalam Panduan Developer Amazon S3.