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 notifikasi Amazon SNS
Anda dapat menggunakan Fungsi Peristiwa Lambda untuk memproses notifikasi Amazon Simple Notification Service (Amazon SNS). Amazon SNS mendukung Lambda Event Functions sebagai target untuk pesan yang dikirim ke topik. Anda dapat melanggankan fungsi Anda ke topik di akun yang sama atau di akun AWS lainnya. Untuk panduan terperinci, lihat. Tutorial: Menggunakan AWS Lambda dengan Layanan Pemberitahuan Sederhana Amazon
Lambda mendukung pemicu SNS untuk topik SNS standar saja. Topik FIFO tidak didukung.
Lambda memproses pesan SNS secara asinkron dengan mengantri pesan dan menangani percobaan ulang. Jika Amazon SNS tidak dapat mencapai Lambda atau pesan ditolak, Amazon SNS melakukan percobaan ulang dengan interval yang diperpanjang selama beberapa jam. Untuk perinciannya, lihat Reliabilitas
Awas
Pemanggilan asinkron Lambda memproses setiap peristiwa setidaknya sekali, dan pemrosesan duplikat catatan dapat terjadi. Untuk menghindari potensi masalah yang terkait dengan duplikat peristiwa, kami sangat menyarankan agar Anda membuat kode fungsi Anda idempoten. Untuk mempelajari lebih lanjut, lihat Bagaimana cara membuat fungsi Lambda saya idempoten
Utilitas idempotensi dari Powertools untuk AWS Lambda
Utilitas idempotensi dari Powertools untuk Lambda membuat Fungsi Acara AWS Lambda Anda idempoten. Ini tersedia untuk Python,, Java TypeScript, dan .NET. Untuk informasi lebih lanjut, lihat utilitas Idempotency dalam dokumentasi Powertools for Lambda AWS (Python), Idempotency Utility dalam dokumentasi Powertools for Lambda (), Idempotency Utility dalam dokumentasi Powertools for AWS Lambda (JavaTypeScript), dan Idempotency Utility dalam dokumentasi Powertools for AWS Lambda (.NET). AWS
Topik
Menambahkan pemicu topik Amazon SNS untuk Fungsi Peristiwa Lambda menggunakan konsol
Untuk menambahkan topik SNS sebagai pemicu Fungsi Peristiwa Lambda, cara termudah adalah dengan menggunakan konsol Lambda. Saat Anda menambahkan pemicu melalui konsol, Lambda secara otomatis mengatur izin dan langganan yang diperlukan untuk mulai menerima acara dari topik SNS.
Untuk menambahkan topik SNS sebagai pemicu Fungsi Peristiwa Lambda (konsol)
Buka halaman Fungsi Acara
konsol Lambda. -
Pilih nama fungsi yang ingin Anda tambahkan pemicunya.
-
Pilih Konfigurasi, lalu pilih Pemicu.
-
Pilih Tambahkan pemicu.
-
Di bawah konfigurasi Trigger, di menu tarik-turun, pilih SNS.
-
Untuk topik SNS, pilih topik SNS untuk berlangganan.
Menambahkan pemicu topik Amazon SNS secara manual untuk Fungsi Peristiwa Lambda
Untuk mengatur pemicu SNS untuk Fungsi Peristiwa Lambda secara manual, Anda harus menyelesaikan langkah-langkah berikut:
-
Tentukan kebijakan berbasis sumber daya untuk fungsi Anda agar SNS dapat memanggilnya.
-
Berlangganan Fungsi Acara Lambda Anda ke topik Amazon SNS.
catatan
Jika topik SNS dan Fungsi Acara Lambda Anda berada di akun AWS yang berbeda, Anda juga perlu memberikan izin tambahan untuk mengizinkan langganan lintas akun ke topik SNS. Untuk informasi selengkapnya, lihat Memberikan izin lintas akun untuk langganan Amazon SNS.
Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk menyelesaikan kedua langkah ini. Pertama, untuk menentukan kebijakan berbasis sumber daya untuk Fungsi Peristiwa Lambda yang memungkinkan pemanggilan SNS, gunakan perintah berikut. AWS CLI Pastikan untuk mengganti nilai --function-name dengan nama Lambda Event Function Anda, dan nilai --source-arn dengan topik SNS ARN Anda.
aws lambda add-permission --function-nameexample-function\ --source-arnarn:aws:sns:us-east-1:123456789012:sns-topic-for-lambda\ --statement-id function-with-sns --action "lambda:InvokeFunction" \ --principal sns.amazonaws.com
Untuk berlangganan fungsi Anda ke topik SNS, gunakan AWS CLI perintah berikut. Ganti nilai --topic-arn dengan ARN topik SNS Anda, dan nilainya dengan ARN Fungsi --notification-endpoint Acara Lambda Anda.
aws sns subscribe --protocol lambda \ --region us-east-1 \ --topic-arnarn:aws:sns:us-east-1:123456789012:sns-topic-for-lambda\ --notification-endpointarn:aws:lambda:us-east-1:123456789012:function:example-function
Contoh bentuk acara SNS
Amazon SNS memanggil fungsi Anda secara asinkron dengan kejadian yang berisi pesan dan metadata.
contoh Kejadian pesan Amazon SNS
{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-1:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-1:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }