Berlangganan beberapa titik akhir email ke topik SNS dengan menggunakan sumber daya khusus - AWS Prescriptive Guidance

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

Berlangganan beberapa titik akhir email ke topik SNS dengan menggunakan sumber daya khusus

Ricardo Morais, Amazon Web Services

Ringkasan

Catatan, Agustus 2022: AWS CloudFormation sekarang mendukung langganan beberapa sumber daya melalui AWS::SNS::Topicobjek dan atribut Langganannya.

Pola ini menjelaskan cara berlangganan beberapa alamat email untuk menerima notifikasi dari topik Amazon Simple Notification Service (Amazon SNS). Ini menggunakan fungsi AWS Lambda sebagai sumber daya khusus dalam template CloudFormation AWS. Fungsi Lambda dikaitkan dengan parameter input yang menentukan titik akhir email untuk topik SNS.

Saat ini, Anda dapat menggunakan objek CloudFormation template AWS AWS::SNS::Topicdan AWS::SNS::Subscriptionberlangganan titik akhir tunggal ke topik SNS. Untuk berlangganan beberapa titik akhir, Anda harus memanggil objek beberapa kali. Dengan menggunakan fungsi Lambda sebagai sumber daya khusus, Anda dapat berlangganan beberapa titik akhir melalui parameter input. Anda dapat menggunakan fungsi Lambda ini sebagai sumber daya khusus di template CloudFormation AWS apa pun. 

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif.

  • Profil AWS yang dikonfigurasi di lingkungan lokal Anda dengan kunci akses dan kunci rahasia.

  • Izin untuk hal berikut:

    • Peran dan kebijakan AWS Identity and Access Management (IAM)

    • Fungsi AWS Lambda

    • Amazon Simple Storage Service (Amazon S3) untuk mengunggah fungsi Lambda

    • Topik dan kebijakan Amazon SNS

    • AWS CloudFormation tumpukan

Batasan

  • Kode ini mendukung workstation Linux dan macOS.

Versi produk

  • AWS Command Line Interface (AWS CLI) versi 2 atau yang lebih baru.

Arsitektur

Tumpukan teknologi target

  • AWS CloudFormation

  • Amazon SNS

  • AWS Lambda

Alat

Alat

Kode

Lampiran mencakup file-file berikut:

  • Fungsi Lambda: lambda_function.py

  • CloudFormation Templat AWS: template.yaml

  • Dua file parameter untuk menangani beberapa atau satu langganan titik akhir email: parameters-multiple-values.json (digunakan sebagai default) dan parameters-one-value.json

Untuk menyebarkan tumpukan, Anda dapat menggunakan salah satu file parameter. Untuk menentukan beberapa titik akhir email: 

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION>

Untuk menentukan titik akhir email tunggal:

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION> -f parameters-one-value.json

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan titik akhir email untuk langganan topik SNS.

Edit file parameters-one-value.json (terlampir), dan ubah nilai pSNSNotificationsEmail parameter untuk mencerminkan alamat email yang ingin Anda gunakan, sepertisomeone@example.com.

Terapkan CloudFormation tumpukan AWS yang membuat sumber daya dan langganan.

Jalankan perintah deploy.sh dengan nama profil AWS, Wilayah AWS, dan parameters-one-value.json file.

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION> -f parameters-one-value.json
Peran IAM dengan izin yang tepat
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan titik akhir email untuk langganan topik SNS.

Edit file parameters-multiple-values.json (terlampir), dan ubah nilai pSNSNotificationsEmail parameter untuk mencerminkan alamat email yang ingin Anda gunakan, dipisahkan dengan koma, sebagai berikut:someone1@example.com, someone2@example.com.

Terapkan CloudFormation tumpukan AWS yang membuat sumber daya dan langganan.

Jalankan perintah deploy.sh dengan nama profil AWS dan Wilayah AWS Anda. Anda tidak perlu menentukan parameters-multiple-values.json file karena digunakan secara default.

./deploy.sh -p <YOUR_AWS_PROFILE_NAME> -r <YOUR_AWS_PROFILE_REGION>
Peran IAM dengan izin yang tepat
TugasDeskripsiKeterampilan yang dibutuhkan

Membuat sebuah topik SNS.

Buat topik SNS melalui CloudFormation template AWS, tanpa menentukan titik akhir langganan di objek template. AWS::SNS::Topic Anda dapat menggunakan template.yaml lampiran sebagai titik awal.

Peran IAM dengan izin yang tepat

Buat kebijakan topik SNS.

Buat kebijakan topik SNS di CloudFormation template AWS.

Peran IAM dengan izin yang tepat

Berlangganan daftar titik akhir email ke topik SNS.

Berdasarkan daftar titik akhir email (satu atau lebih), berlangganan titik akhir ke topik SNS yang Anda buat.

Peran IAM dengan izin yang tepat

Sumber daya terkait

Referensi

Alat yang dibutuhkan

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip