Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Menggunakan pemicu Amazon S3 untuk memanggil fungsi Lambda
Dalam tutorial ini, Anda menggunakan konsol untuk membuat fungsi Lambda dan mengonfigurasi pemicu untuk bucket Amazon Simple Storage Service (Amazon S3). Setiap kali Anda menambahkan objek ke bucket Amazon S3, fungsi Anda menjalankan dan menampilkan jenis objek ke Amazon CloudWatch Logs.
Tutorial ini menunjukkan cara:
-
Buat bucket Amazon S3.
-
Buat fungsi Lambda yang mengembalikan tipe objek objek dalam bucket Amazon S3.
-
Konfigurasikan pemicu Lambda yang memanggil fungsi Anda saat objek diunggah ke bucket Anda.
-
Uji fungsi Anda, pertama dengan peristiwa dummy, dan kemudian gunakan pemicu.
Dengan menyelesaikan langkah-langkah ini, Anda akan mempelajari cara mengonfigurasi fungsi Lambda untuk dijalankan setiap kali objek ditambahkan atau dihapus dari bucket Amazon S3. Anda dapat menyelesaikan tutorial ini hanya dengan menggunakan Konsol Manajemen AWS.
Buat bucket Amazon S3.
Untuk membuat bucket Amazon S3
-
Buka konsol Amazon S3
dan pilih halaman bucket tujuan umum. -
Pilih yang Wilayah AWS paling dekat dengan lokasi geografis Anda. Anda dapat mengubah wilayah Anda menggunakan daftar drop-down di bagian atas layar. Kemudian dalam tutorial, Anda harus membuat fungsi Lambda Anda di Wilayah yang sama.
-
Pilih Buat bucket.
-
Pada Konfigurasi umum, lakukan hal berikut:
-
Untuk tipe Bucket, pastikan tujuan umum dipilih.
-
Untuk nama Bucket, masukkan nama unik global yang memenuhi aturan penamaan Amazon S3 Bucket. Nama bucket hanya dapat berisi huruf kecil, angka, titik (.), dan tanda hubung (-).
-
-
Biarkan semua opsi lain diatur ke nilai defaultnya dan pilih Buat bucket.
Mengunggah objek uji ke bucket Anda
Untuk mengunggah objek uji
-
Buka halaman Buckets di konsol Amazon S3 dan pilih bucket yang Anda buat pada langkah sebelumnya.
-
Pilih Unggah.
-
Pilih Tambahkan file dan pilih objek yang ingin Anda unggah. Anda dapat memilih file apa pun (misalnya,
HappyFace.jpg). -
Pilih Buka, lalu pilih Unggah.
Kemudian dalam tutorial, Anda akan menguji fungsi Lambda Anda menggunakan objek ini.
Membuat kebijakan izin
Buat kebijakan izin yang memungkinkan Lambda mendapatkan objek dari bucket Amazon S3 dan menulis ke Amazon CloudWatch Log.
Untuk membuat kebijakan
-
Buka halaman Kebijakan
konsol IAM. -
Pilih Buat Kebijakan.
-
Pilih tab JSON, lalu tempel kebijakan kustom berikut ke editor JSON.
-
Pilih Berikutnya: Tanda.
-
Pilih Berikutnya: Tinjau.
-
Di bawah Kebijakan T injauan, untuk Nama kebijakan, masukkan
s3-trigger-tutorial. -
Pilih Buat kebijakan.
Membuat peran eksekusi
Peran eksekusi adalah peran AWS Identity and Access Management (IAM) yang memberikan izin fungsi Lambda untuk mengakses Layanan AWS dan sumber daya. Pada langkah ini, buat peran eksekusi menggunakan kebijakan izin yang Anda buat di langkah sebelumnya.
Untuk membuat peran eksekusi dan melampirkan kebijakan izin kustom Anda
-
Buka halaman Peran
dari konsol IAM. -
Pilih Buat peran.
-
Untuk jenis entitas tepercaya, pilih AWS layanan, lalu untuk kasus penggunaan, pilih Lambda.
-
Pilih Berikutnya.
-
Dalam kotak pencarian kebijakan, masukkan
s3-trigger-tutorial. -
Di hasil penelusuran, pilih kebijakan yang Anda buat (
s3-trigger-tutorial), lalu pilih Ber ikutnya. -
Di bawah Detail peran, untuk nama Peran, masukkan
lambda-s3-trigger-role, lalu pilih Buat peran.
Buat fungsi Lambda
Buat fungsi Lambda di konsol menggunakan runtime Python 3.14.
Untuk membuat fungsi Lambda
-
Buka halaman Fungsi
di konsol Lambda. -
Pastikan Anda bekerja di tempat yang sama dengan Wilayah AWS tempat Anda membuat bucket Amazon S3 Anda. Anda dapat mengubah Wilayah Anda menggunakan daftar drop-down di bagian atas layar.
-
Pilih Buat fungsi.
-
Pilih Penulis dari awal
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk Nama fungsi, masukkan
s3-trigger-tutorial -
Untuk Runtime, pilih Python 3.14.
-
Untuk Arsitektur, pilih x86_64.
-
-
Di tab Ubah peran eksekusi default, lakukan hal berikut:
-
Perluas tab, lalu pilih Gunakan peran yang ada.
-
Pilih yang
lambda-s3-trigger-roleAnda buat sebelumnya.
-
-
Pilih Buat fungsi.
Terapkan kode fungsi
Tutorial ini menggunakan runtime Python 3.14, tetapi kami juga telah menyediakan file kode contoh untuk runtime lainnya. Anda dapat memilih tab di kotak berikut untuk melihat kode untuk runtime yang Anda minati.
Fungsi Lambda mengambil nama kunci dari objek yang diunggah dan nama bucket dari event parameter yang diterimanya dari Amazon S3. Fungsi kemudian menggunakan metode
Untuk menerapkan kode fungsi
-
Pilih tab Python di kotak berikut dan salin kodenya.
-
Di panel sumber kode pada konsol Lambda, tempel kode ke editor kode, menggantikan kode yang dibuat Lambda.
-
Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:
Buat pemicu Amazon S3
Cara membuat pemicu Amazon S3
-
Di panel I khtisar fungsi, pilih Tam bah pemicu.
-
Pilih S3.
-
Di bawah Bucket, pilih bucket yang Anda buat sebelumnya di tutorial.
-
Di bawah Jenis peristiwa, pastikan bahwa Semua peristiwa membuat objek dipilih.
-
Di bawah Pemanggilan rekursif, pilih kotak centang untuk mengakui bahwa menggunakan bucket Amazon S3 yang sama untuk input dan output tidak disarankan.
-
Pilih Tambahkan.
catatan
Saat Anda membuat pemicu Amazon S3 untuk fungsi Lambda menggunakan konsol Lambda, Amazon S3 mengonfigurasi notifikasi peristiwa pada bucket yang Anda tentukan. Sebelum mengonfigurasi notifikasi peristiwa ini, Amazon S3 melakukan serangkaian pemeriksaan untuk mengonfirmasi bahwa tujuan acara ada dan memiliki kebijakan IAM yang diperlukan. Amazon S3 juga melakukan pengujian ini pada notifikasi peristiwa lain yang dikonfigurasi untuk bucket tersebut.
Karena pemeriksaan ini, jika bucket sebelumnya telah mengonfigurasi tujuan acara untuk sumber daya yang tidak ada lagi, atau untuk sumber daya yang tidak memiliki kebijakan izin yang diperlukan, Amazon S3 tidak akan dapat membuat notifikasi peristiwa baru. Anda akan melihat pesan kesalahan berikut yang menunjukkan bahwa pemicu Anda tidak dapat dibuat:
An error occurred when creating the trigger: Unable to validate the following destination configurations.Anda dapat melihat kesalahan ini jika sebelumnya Anda mengonfigurasi pemicu untuk fungsi Lambda lain menggunakan bucket yang sama, dan sejak itu Anda telah menghapus fungsi atau mengubah kebijakan izinnya.
Uji fungsi Lambda Anda dengan acara dummy
Untuk menguji fungsi Lambda dengan peristiwa dummy
-
Di halaman konsol Lambda untuk fungsi Anda, pilih tab Tes.
-
Untuk Nama peristiwa, masukkan
MyTestEvent. -
Di Event JSON, tempel acara pengujian berikut. Pastikan untuk mengganti nilai-nilai ini:
-
Ganti
us-east-1dengan wilayah tempat Anda membuat bucket Amazon S3 Anda. -
Ganti kedua instance
amzn-s3-demo-bucketdengan nama bucket Amazon S3 Anda sendiri. -
Ganti
test%2FKeydengan nama objek uji yang Anda unggah ke bucket Anda sebelumnya (misalnya,HappyFace.jpg).
{ "Records": [ { "eventVersion": "2.0", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "1970-01-01T00:00:00.000Z", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "responseElements": { "x-amz-request-id": "EXAMPLE123456789", "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "testConfigRule", "bucket": { "name": "amzn-s3-demo-bucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "object": { "key": "test%2Fkey", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] } -
-
Pilih Simpan.
-
Pilih Uji.
-
Jika fungsi Anda berjalan dengan sukses, Anda akan melihat output yang mirip dengan berikut ini di tab Hasil eksekusi.
Response "image/jpeg" Function Logs START RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 Version: $LATEST 2021-02-18T21:40:59.280Z 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 INFO INPUT BUCKET AND KEY: { Bucket: 'amzn-s3-demo-bucket', Key: 'HappyFace.jpg' } 2021-02-18T21:41:00.215Z 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 INFO CONTENT TYPE: image/jpeg END RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 REPORT RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 Duration: 976.25 ms Billed Duration: 977 ms Memory Size: 128 MB Max Memory Used: 90 MB Init Duration: 430.47 ms Request ID 12b3cae7-5f4e-415e-93e6-416b8f8b66e6
Uji fungsi Lambda dengan pemicu Amazon S3
Untuk menguji fungsi Anda dengan pemicu yang dikonfigurasi, unggah objek ke bucket Amazon S3 menggunakan konsol. Untuk memverifikasi bahwa fungsi Lambda berjalan seperti yang diharapkan, gunakan CloudWatch Log untuk melihat output fungsi Anda.
Untuk mengunggah objek ke bucket Amazon S3
-
Buka halaman Buckets di konsol Amazon S3 dan pilih bucket yang Anda buat sebelumnya.
-
Pilih Unggah.
-
Pilih Tambahkan file dan gunakan pemilih file untuk memilih objek yang ingin Anda unggah. Objek ini dapat berupa file apa pun yang Anda pilih.
-
Pilih Buka, lalu pilih Unggah.
Untuk memverifikasi pemanggilan fungsi menggunakan Log CloudWatch
-
Buka konsol CloudWatch
. -
Pastikan Anda bekerja di tempat yang sama dengan tempat Wilayah AWS Anda membuat fungsi Lambda Anda. Anda dapat mengubah Wilayah Anda menggunakan daftar drop-down di bagian atas layar.
-
Pilih Log, lalu pilih Grup log.
-
Pilih grup log untuk fungsi Anda (
/aws/lambda/s3-trigger-tutorial). -
Di bawah Log stream, pilih aliran log terbaru.
-
Jika fungsi Anda dipanggil dengan benar sebagai respons terhadap pemicu Amazon S3 Anda, Anda akan melihat output yang mirip dengan berikut ini. Apa yang
CONTENT TYPEAnda lihat tergantung pada jenis file yang Anda unggah ke bucket Anda.2022-05-09T23:17:28.702Z 0cae7f5a-b0af-4c73-8563-a3430333cc10 INFO CONTENT TYPE:image/jpeg
Bersihkan sumber daya Anda
Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus AWS sumber daya yang tidak lagi Anda gunakan, Anda mencegah biaya yang tidak perlu kepada Anda Akun AWS.
Untuk menghapus fungsi Lambda
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi yang Anda buat.
-
Pilih Tindakan, Hapus.
-
Ketik
confirmdi bidang input teks dan pilih H apus.
Untuk menghapus peran eksekusi
-
Buka halaman Peran
dari konsol IAM. -
Pilih peran eksekusi yang Anda buat.
-
Pilih Hapus.
-
Masukkan nama peran di bidang input teks dan pilih H apus.
Untuk menghapus bucket S3
-
Buka konsol Amazon S3
. -
Pilih bucket yang Anda buat.
-
Pilih Hapus.
-
Masukkan nama bucket di bidang input teks.
-
Pilih Hapus bucket.
Langkah selanjutnya
DiTutorial: Menggunakan pemicu Amazon S3 untuk membuat gambar thumbnail, pemicu Amazon S3 memanggil fungsi yang membuat gambar mini untuk setiap file gambar yang diunggah ke bucket. Tutorial ini membutuhkan tingkat moderat AWS dan pengetahuan domain Lambda. Ini menunjukkan cara membuat sumber daya menggunakan AWS Command Line Interface (AWS CLI) dan cara membuat paket penyebaran arsip file.zip untuk fungsi dan dependensinya.