Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Setelah Anda membuat topik Amazon SNS dan berlangganan titik akhir ke topik tersebut, Anda dapat menerbitkan pesan ke topik. Ketika pesan diterbitkan, Amazon SNS mencoba untuk mengirimkan pesan ke titik akhir berlangganan.
Cara menerbitkan pesan ke topik Amazon SNS menggunakan AWS Management Console
Masuk ke konsol Amazon SNS
. -
Di panel navigasi kiri, pilih Topics (Topik).
-
Di halaman Topics (Topik), pilih topik, lalu pilih Publish message (Terbitkan pesan).
Konsol membuka halaman Publish message to topic (Terbitkan pesan ke topik).
-
Di bagian Message details (Detail pesan), lakukan hal berikut:
-
(Opsional) Masukkan Subjek pesan.
-
Untuk topik FIFO, masukkan ID grup pesan. Pesan-pesan dalam grup pesan yang sama akan dikirim sesuai urutan yang penerbitannya.
-
Untuk topik FIFO, masukkan ID deduplikasi pesan. ID ini bersifat opsional jika Anda mengaktifkan pengaturan Deduplikasi pesan berbasis konten untuk topik.
-
(Opsional) Untuk mobile push notifications (notifikasi push seluler), masukkan nilai Waktu untuk tayang (TTL) dalam detik. Ini adalah jumlah waktu yang dimiliki layanan notifikasi push — seperti Apple Push Notification Service (APNs) atau Firebase Cloud Messaging (FCM) —untuk mengirimkan pesan ke titik akhir.
-
-
Di bagian Message body (Isi pesan), lakukan salah satu hal berikut:
-
Pilih Identical payload for all delivery protocols (Muatan identik untuk semua protokol pengiriman), lalu masukkan pesan.
-
Pilih Custom payload for each delivery protocol (Muatan kustom untuk setiap protokol pengiriman), lalu masukkan objek JSON untuk menentukan pesan yang akan dikirim untuk setiap protokol pengiriman.
Untuk informasi selengkapnya, lihat Menerbitkan notifikasi Amazon SNS dengan muatan khusus platform.
-
-
Di bagian Message attributes (Atribut pesan), tambahkan atribut yang Anda inginkan agar Amazon SNS cocok dengan
FilterPolicy
atribut langganan untuk memutuskan apakah titik akhir langganan tertarik dengan pesan yang diterbitkan.-
Untuk Type (Jenis), pilih jenis atribut, seperti String.Array.
catatan
Untuk jenis atribut String.Array, lampirkan array dalam tanda kurung siku (
[]
). Dalam array, lampirkan nilai string dalam tanda kutip ganda. Anda tidak memerlukan tanda kutip untuk angka atau kata kuncitrue
,false
, dannull
. -
Masukkan atribut Name (Nama), seperti
customer_interests
. -
Masukkan atribut Value (Nilai), seperti
["soccer", "rugby", "hockey"]
.
Jika jenis atribut adalah String, String.Array, atau Number, Amazon SNS mengevaluasi atribut pesan terhadap kebijakan filter langganan (jika ada) sebelum mengirim pesan ke cakupan kebijakan filter yang diberikan langganan tidak disetel secara eksplisit.
MessageBody
Untuk informasi selengkapnya, lihat Atribut pesan Amazon SNS.
-
-
Pilih Publish message (Terbitkan pesan).
Pesan diterbitkan ke topik, dan konsol membuka halaman Detail topik.
Untuk memublikasikan pesan ke topik menggunakan AWS SDK
Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial bersama di Panduan Referensi Alat AWS SDKs dan Alat.
Contoh kode berikut menunjukkan cara menggunakanPublish
.
- SDK untuk .NET
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. Publikasikan pesan ke topik.
using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; /// <summary> /// This example publishes a message to an Amazon Simple Notification /// Service (Amazon SNS) topic. /// </summary> public class PublishToSNSTopic { public static async Task Main() { string topicArn = "arn:aws:sns:us-east-2:000000000000:ExampleSNSTopic"; string messageText = "This is an example message to publish to the ExampleSNSTopic."; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); await PublishToTopicAsync(client, topicArn, messageText); } /// <summary> /// Publishes a message to an Amazon SNS topic. /// </summary> /// <param name="client">The initialized client object used to publish /// to the Amazon SNS topic.</param> /// <param name="topicArn">The ARN of the topic.</param> /// <param name="messageText">The text of the message.</param> public static async Task PublishToTopicAsync( IAmazonSimpleNotificationService client, string topicArn, string messageText) { var request = new PublishRequest { TopicArn = topicArn, Message = messageText, }; var response = await client.PublishAsync(request); Console.WriteLine($"Successfully published message ID: {response.MessageId}"); } }
Publikasikan pesan ke topik dengan opsi grup, duplikasi, dan atribut.
/// <summary> /// Publish messages using user settings. /// </summary> /// <returns>Async task.</returns> public static async Task PublishMessages() { Console.WriteLine("Now we can publish messages."); var keepSendingMessages = true; string? deduplicationId = null; string? toneAttribute = null; while (keepSendingMessages) { Console.WriteLine(); var message = GetUserResponse("Enter a message to publish.", "This is a sample message"); if (_useFifoTopic) { Console.WriteLine("Because you are using a FIFO topic, you must set a message group ID." + "\r\nAll messages within the same group will be received in the order " + "they were published."); Console.WriteLine(); var messageGroupId = GetUserResponse("Enter a message group ID for this message:", "1"); if (!_useContentBasedDeduplication) { Console.WriteLine("Because you are not using content-based deduplication, " + "you must enter a deduplication ID."); Console.WriteLine("Enter a deduplication ID for this message."); deduplicationId = GetUserResponse("Enter a deduplication ID for this message.", "1"); } if (GetYesNoResponse("Add an attribute to this message?")) { Console.WriteLine("Enter a number for an attribute."); for (int i = 0; i < _tones.Length; i++) { Console.WriteLine($"\t{i + 1}. {_tones[i]}"); } var selection = GetUserResponse("", "1"); int.TryParse(selection, out var selectionNumber); if (selectionNumber > 0 && selectionNumber < _tones.Length) { toneAttribute = _tones[selectionNumber - 1]; } } var messageID = await SnsWrapper.PublishToTopicWithAttribute( _topicArn, message, "tone", toneAttribute, deduplicationId, messageGroupId); Console.WriteLine($"Message published with id {messageID}."); } keepSendingMessages = GetYesNoResponse("Send another message?", false); } }
Terapkan pilihan pengguna ke tindakan publikasi.
/// <summary> /// Publish a message to a topic with an attribute and optional deduplication and group IDs. /// </summary> /// <param name="topicArn">The ARN of the topic.</param> /// <param name="message">The message to publish.</param> /// <param name="attributeName">The optional attribute for the message.</param> /// <param name="attributeValue">The optional attribute value for the message.</param> /// <param name="deduplicationId">The optional deduplication ID for the message.</param> /// <param name="groupId">The optional group ID for the message.</param> /// <returns>The ID of the message published.</returns> public async Task<string> PublishToTopicWithAttribute( string topicArn, string message, string? attributeName = null, string? attributeValue = null, string? deduplicationId = null, string? groupId = null) { var publishRequest = new PublishRequest() { TopicArn = topicArn, Message = message, MessageDeduplicationId = deduplicationId, MessageGroupId = groupId }; if (attributeValue != null) { // Add the string attribute if it exists. publishRequest.MessageAttributes = new Dictionary<string, MessageAttributeValue> { { attributeName!, new MessageAttributeValue() { StringValue = attributeValue, DataType = "String"} } }; } var publishResponse = await _amazonSNSClient.PublishAsync(publishRequest); return publishResponse.MessageId; }
-
Untuk detail API, lihat Publikasikan di Referensi AWS SDK untuk .NET API.
-