View a markdown version of this page

Menerbitkan pesan besar dengan Amazon SNS - Amazon Simple Notification Service

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

Menerbitkan pesan besar dengan Amazon SNS

Amazon SNS mendukung payload pesan hingga 1 MiB (1.048.576 byte) saat Anda mengonfigurasi atribut topik. MaximumMessageSize Secara default, topik menerima pesan hingga 256 KiB. Topik dengan MaximumMessageSize set di atas 256 KiB mendukung Amazon Data Firehose, Amazon SQS, dan AWS Lambda langganan, dengan total langganan hingga 100 per topik.

Cara kerja penerbitan pesan besar

Anda dapat mengatur atribut MaximumMessageSize topik ke nilai integer antara 1.024 dan 1.048.576 byte. Secara default, semua topik yang ada dan yang baru dibuat memiliki MaximumMessageSize 262.144 byte (256 KiB).

Saat Anda mempublikasikan pesan, Amazon SNS memvalidasi ukuran gabungan dari badan pesan dan atribut pesan terhadap topik yang dikonfigurasi. MaximumMessageSize Jika ukuran gabungan melebihi batas, Amazon SNS mengembalikan InvalidParameter kesalahan saat dipublikasikan.

Konfigurasi yang didukung

Bila Anda mengatur MaximumMessageSize di atas 256 KiB, Amazon SNS mendukung konfigurasi berikut.

Batas langganan

Topik ini mendukung hingga 100 total langganan. Jika Anda mencoba membuat langganan tambahan, Amazon SNS mengembalikan InvalidParameter kesalahan.

Jenis titik akhir yang didukung

Topik dengan 256 KiB MaximumMessageSize di atas mendukung jenis titik akhir berikut:

  • Amazon Data Firehose

  • Amazon SQS

  • AWS Lambda

Topik dengan MaximumMessageSize 256 KiB atau di bawah juga mendukung HTTP/HTTPS, SMS, email, email-json, dan titik akhir push (aplikasi) seluler.

Meng MaximumMessageSize atur topik yang ada

Anda dapat menambah atau mengurangi topik MaximumMessageSize kapan saja. Setelah Anda mengubah nilai, Amazon SNS memvalidasi permintaan publikasi baru terhadap batas yang diperbarui.

Untuk mengatur MaximumMessageSize di atas 256 KiB, topik harus memiliki total langganan 100 atau kurang, yang semuanya harus didukung tipe titik akhir (Amazon Data Firehose, Amazon SQS, atau AWS Lambda). Jika topik memiliki tipe titik akhir yang tidak didukung atau lebih dari 100 langganan, Amazon SNS mengembalikan kesalahanInvalidParameter.

Mengkonfigurasi topik Anda untuk pesan besar

Menggunakan AWS Konsol Manajemen

Untuk mengonfigurasi topik Anda untuk menerbitkan pesan yang lebih besar
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/home.

  2. Di panel navigasi kiri, pilih Topics (Topik).

  3. Pilih topik Anda dan pilih Edit.

  4. Di bawah Ukuran pesan maksimum, tetapkan batas yang Anda inginkan (hingga 1,024 KiB).

  5. Pilih Simpan perubahan.

Menggunakan AWS CLI

Tetapkan MaximumMessageSize saat membuat topik baru:

aws sns create-topic \ --name my-large-message-topic \ --attributes MaximumMessageSize=1048576

Ganti my-large-message-topic dengan nama topik Anda dan 1048576 dengan ukuran pesan maksimum yang Anda inginkan dalam byte.

Tetapkan MaximumMessageSize pada topik yang ada:

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic \ --attribute-name MaximumMessageSize \ --attribute-value 1048576

Ganti arn:aws:sns:us-east-1:123456789012:my-topic dengan ARN topik Anda dan 1048576 dengan ukuran pesan maksimum yang Anda inginkan dalam byte.

Verifikasi topik Anda saat iniMaximumMessageSize. Jika atribut belum ditetapkan secara eksplisit, atribut tersebut tidak muncul dalam respons, dan topik menggunakan default 262.144 byte (256 KiB).

aws sns get-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic

Referensi API Amazon SNS untuk pesan besar

Dukungan pesan besar menggunakan API Amazon SNS yang ada. Anda tidak memerlukan operasi API baru.

API Ubah
CreateTopic M MaximumMessageSize enerima dalam Attributes parameter. Rentang yang valid: 1.024—1.048.576 byte.
SetTopicAttributes M MaximumMessageSize enerima sebagai nama atribut.
GetTopicAttributes Meng MaximumMessageSize embalikan jika atribut telah ditetapkan secara eksplisit. Jika tidak dikembalikan, topik menggunakan default 262.144 byte (256 KiB).
Publish Memvalidasi ukuran gabungan dari badan pesan dan atribut pesan terhadap MaximumMessageSize topik.
PublishBatch Memvalidasi ukuran gabungan semua pesan dalam batch (isi dan atribut setiap pesan) terhadap MaximumMessageSize topik.

Kompatibilitas titik akhir

Daftar berikut menjelaskan cara Amazon SNS mengirimkan pesan besar Anda ke setiap jenis titik akhir yang didukung.

  • Amazon Data Firehose — Amazon Data Firehose memuat data streaming ke penyimpanan data dan layanan analitik. Ini mendukung catatan hingga 1.000 KiB (1.024.000 byte). Pesan yang dikirim harus tetap di bawah batas ini. Batas tersebut mencakup metadata pengiriman Amazon SNS, seperti ID pesan dan stempel waktu. Pesan yang melebihi batas gagal dikirim. Sebuah topik MaximumMessageSize dapat diatur hingga 1.024 KiB (1.048.576 byte). Untuk alasan ini, kami menyarankan Anda menetapkan nilai yang lebih rendah MaximumMessageSize untuk topik dengan langganan Firehose. Untuk batas ukuran rekaman saat ini, lihat Kuota Amazon Data Firehose.

  • Amazon SQS — Amazon SNS dapat mengirimkan pesan ke antrian Amazon SQS berlangganan hingga ukuran pesan maksimum yang didukung Amazon SQS. Antrian itu sendiri MaximumMessageSize tidak berlaku untuk pesan dari Amazon SNS. Topik Amazon SNS MaximumMessageSize adalah batas ukuran efektif untuk pesan-pesan ini.

  • AWS Lambda— Amazon SNS memanggil fungsi secara asinkron. AWS Lambda AWS Lambda mendukung muatan pemanggilan asinkron hingga 1 MiB. Tidak ada konfigurasi tambahan yang diperlukan untuk AWS Lambda langganan.

Praktik terbaik

Konfigurasikan antrian surat mati

Sebaiknya konfigurasi antrean huruf mati (DLQ) pada semua langganan untuk menangani pengiriman pesan yang gagal. DLQ menangkap pesan yang tidak berhasil dikirimkan Amazon SNS ke titik akhir yang berlangganan, memungkinkan Anda untuk memeriksa dan memprosesnya kembali. Untuk informasi selengkapnya, lihat Antrian surat mati Amazon SNS.

Pantau dengan CloudWatch metrik dan alarm

Gunakan CloudWatch metrik untuk memantau pengiriman pesan dan mengatur alarm pada pengiriman yang gagal. NumberOfNotificationsFailedMetrik melacak pesan yang tidak dapat dikirimkan Amazon SNS ke titik akhir yang berlangganan. Buat CloudWatch alarm pada metrik ini untuk menerima peringatan saat kegagalan pengiriman terjadi. Untuk informasi selengkapnya, lihat Memantau topik Amazon SNS menggunakan CloudWatch.

Menerbitkan pesan yang lebih besar dari 1 MiB dengan Amazon S3

Untuk menerbitkan pesan yang lebih besar dari 1 MiB, gunakan Amazon SNS Extended Client Library untuk Java atau Amazon SNS Extended Client Library untuk Python untuk menyimpan payload di Amazon S3 dan menerbitkan referensi melalui Amazon SNS. Perpustakaan ini mendukung pesan hingga 2 GB dan kompatibel dengan topik Standar dan FIFO. Untuk petunjuk tentang peningkatan MaximumMessageSize sebelum memilih pendekatan ini, lihatMengkonfigurasi topik Anda untuk pesan besar.