Berlangganan fungsi Lambda ke notifikasi acara dari bucket S3 di Wilayah AWS yang berbeda - AWS Prescriptive Guidance

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

Berlangganan fungsi Lambda ke notifikasi acara dari bucket S3 di Wilayah AWS yang berbeda

Suresh Konathala, Amazon Web Services

Andrew Preston dan Arindom Sarkar, Tidak Ada

Ringkasan

Amazon Simple Storage Service (Amazon S3) Pemberitahuan Acara menerbitkan notifikasi untuk peristiwa tertentu di bucket S3 Anda (misalnya, peristiwa yang dibuat objek, peristiwa penghapusan objek, atau memulihkan peristiwa objek). Anda dapat menggunakan fungsi AWS Lambda untuk memproses notifikasi ini sesuai dengan persyaratan aplikasi Anda. Namun, fungsi Lambda tidak dapat langsung berlangganan notifikasi dari bucket S3 yang di-host di Wilayah AWS yang berbeda.

Pendekatan pola ini menerapkan skenario fanout untuk memproses notifikasi Amazon S3 dari bucket S3 lintas wilayah dengan menggunakan topik Amazon Simple Notification Service (Amazon SNS) untuk setiap Wilayah. Topik SNS Regional ini mengirimkan notifikasi peristiwa Amazon S3 ke antrian Amazon Simple Queue Service (Amazon SQS) di Wilayah tengah yang juga berisi fungsi Lambda Anda. Fungsi Lambda berlangganan antrean SQS ini dan memproses pemberitahuan acara sesuai dengan kebutuhan organisasi Anda.

Prasyarat dan batasan

Prasyarat

  • Akun AWS aktif.

  • Bucket S3 yang ada di beberapa Wilayah, termasuk Wilayah pusat untuk meng-host antrean Amazon SQS dan fungsi Lambda.

  • AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat Menginstal, memperbarui, dan menghapus instalan AWS CLI dalam dokumentasi AWS CLI. 

  • Keakraban dengan skenario fanout di Amazon SNS. Untuk informasi selengkapnya tentang ini, lihat Skenario Amazon SNS umum di dokumentasi Amazon SNS.

Arsitektur

Diagram berikut menunjukkan arsitektur untuk pendekatan pola ini. 

Alur kerja menggunakan Amazon SNS, S3, dan SQS untuk memproses notifikasi peristiwa dari bucket S3 lintas wilayah.

Diagram menunjukkan alur kerja berikut:

  1. Amazon S3 mengirimkan pemberitahuan peristiwa tentang bucket S3 (misalnya, objek yang dibuat, objek dihapus, atau objek dipulihkan) ke topik SNS di Wilayah yang sama.

  2. Topik SNS menerbitkan acara ke antrian SQS di Wilayah tengah.

  3. Antrian SQS dikonfigurasi sebagai sumber peristiwa untuk fungsi Lambda Anda dan buffer pesan acara untuk fungsi Lambda. 

  4. Fungsi Lambda melakukan polling antrean SQS untuk pesan dan memproses notifikasi peristiwa Amazon S3 sesuai dengan kebutuhan aplikasi Anda.

Tumpukan teknologi

  • Lambda

  • Amazon SNS

  • Amazon SQS

  • Amazon S3

Alat

  • AWS CLI — AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) adalah alat sumber terbuka untuk berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda. Dengan konfigurasi minimal, Anda dapat menjalankan perintah AWS CLI yang mengimplementasikan fungsionalitas yang setara dengan yang disediakan oleh AWS Management Console berbasis browser dari prompt perintah.

  • AWS CloudFormation — AWS CloudFormation membantu Anda memodelkan dan menyiapkan sumber daya AWS Anda, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Anda dapat mengelola dan menyediakan tumpukan di beberapa akun AWS dan Wilayah AWS.

  • AWS Lambda — AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email. Pelanggan menerima semua pesan yang dipublikasikan ke topik tempat mereka berlangganan, dan semua pelanggan ke suatu topik menerima pesan yang sama.

  • Amazon SQS — Amazon Simple Queue Service (Amazon SQS) menawarkan antrian host yang aman, tahan lama, dan tersedia yang memungkinkan Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi. Amazon SQS mendukung antrian standar dan FIFO.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat antrian SQS dengan pemicu Lambda.

Masuk ke AWS Management Console dan gunakan petunjuk dari tutorial Menggunakan Lambda dengan Amazon SQS di dokumentasi AWS Lambda untuk membuat sumber daya berikut di Wilayah pusat Anda:

  • Peran eksekusi Lambda

  • Fungsi Lambda untuk memproses peristiwa Amazon S3

  • Antrian SQS

catatan

Pastikan Anda mengonfigurasi antrian SQS sebagai sumber peristiwa untuk fungsi Lambda Anda.

AWS DevOps, arsitek Cloud
TugasDeskripsiKeterampilan yang dibutuhkan

Buat topik SNS untuk menerima pemberitahuan acara Amazon S3.

Buat topik SNS di Wilayah tempat Anda ingin menerima pemberitahuan acara Amazon S3. Untuk informasi selengkapnya tentang ini, lihat Membuat topik SNS di dokumentasi Amazon SNS. 

penting

Pastikan Anda merekam Nama Sumber Daya Amazon (ARN) topik SNS Anda. 

AWS DevOps, arsitek Cloud

Berlangganan topik SNS ke antrian SQS pusat.

Berlangganan topik SNS Anda ke antrian SQS yang diselenggarakan oleh Wilayah pusat Anda. Untuk informasi selengkapnya tentang ini, lihat Berlangganan topik SNS di dokumentasi Amazon SNS.

AWS DevOps, arsitek Cloud

Perbarui kebijakan akses topik SNS.

  1. Buka konsol Amazon SNS, pilih Topik, lalu pilih topik SNS yang Anda buat sebelumnya.

  2. Pilih Edit dan kemudian perluas bagian Kebijakan akses - opsional.

  3. Lampirkan kebijakan akses berikut ke topik SNS Anda untuk mengizinkan sns:publish izin Amazon S3, lalu pilih Simpan:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "0", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-west-2::s3Events-SNSTopic-us-west-2" } ] }
AWS DevOps, arsitek Cloud

Siapkan notifikasi untuk setiap bucket S3 di Wilayah.

Siapkan notifikasi acara untuk setiap bucket S3 di Wilayah. Untuk informasi selengkapnya tentang hal ini, lihat Mengaktifkan dan mengonfigurasi pemberitahuan peristiwa menggunakan konsol Amazon S3 dalam dokumentasi Amazon S3.

catatan

Di bagian Tujuan, pilih topik SNS dan tentukan ARN dari topik SNS yang Anda buat sebelumnya.

AWS DevOps, arsitek Cloud

Ulangi epik ini untuk semua Wilayah yang diperlukan.

penting

Ulangi tugas dalam epik ini untuk setiap Wilayah tempat Anda ingin menerima pemberitahuan acara Amazon S3, termasuk Wilayah pusat Anda.

AWS DevOps, arsitek Cloud

Sumber daya terkait