So veröffentlichen Sie in einem Thema - Amazon Simple Notification Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

So veröffentlichen Sie in einem Thema

Sie können eine einzelne SMS-Nachricht gleichzeitig an viele Telefonnummern veröffentlichen, indem Sie das Amazon SNS-Thema für diese Telefonnummern abonnieren. Ein SNS-Thema ist ein Kommunikationskanal, dem Sie Abonnenten hinzufügen können. Anschließend können Sie an all diese Abonnenten Nachrichten veröffentlichen. Ein Abonnent erhält alle zum Thema veröffentlichten Nachrichten, bis Sie das Abonnement kündigen, oder der Abonnent den Empfang von SMS-Nachrichten von Ihrem AWS-Konto deaktiviert.

Senden einer Nachricht an ein Thema (Konsole)

Erstellen Sie ein Thema wie folgt

Führen Sie die folgenden Schritte aus, wenn Sie noch kein Thema besitzen, an das Sie SMS-Nachrichten senden möchten.

  1. Melden Sie sich bei der Amazon SNS-Konsole an.

  2. Wählen Sie im Konsolenmenü die Option AWSRegion, die SMS-Messaging unterstützt aus.

  3. Wählen Sie im Navigationsbereich Themen aus.

  4. Klicken Sie auf der Seite Themen auf Thema erstellen.

  5. Gehen Sie auf der Seite Thema erstellen unter Details wie folgt vor:

    1. Wählen Sie unter Type (Typ) die Option Standard aus.

    2. Geben Sie für Name einen Themennamen ein.

    3. (Optional) Geben Sie unter Display name (Anzeigename) einen benutzerdefinierten Präfix für Ihre SMS-Nachrichten ein. Wenn Sie eine Nachricht an ein Thema senden, stellt Amazon SNS den Anzeigenamen voran, gefolgt von einer spitzen Klammer rechts (>) und einer Leerstelle. Anzeigenamen beachteten die Groß- und Kleinschreibung nicht und Amazon SNS konvertiert Anzeigenamen zu Großbuchstaben. Beispiel: Wenn der Anzeigename eines Themas MyTopic ist und die Nachricht lautet Hello World!, wird die Nachricht folgendermaßen angezeigt:

      MYTOPIC> Hello World!
  6. Wählen Sie Thema erstellen aus. Der Name des Themas und der Amazon-Ressourcenname (ARN) werden auf der Registerkarte Themen angezeigt.

So erstellen Sie ein SMS-Abonnement:

Anhand von Abonnements können Sie eine SMS-Nachricht an mehrere Empfänger senden, indem Sie die Nachricht nur einmal zu dem Thema veröffentlichen.

Anmerkung

Wenn Sie Amazon SNS zum Senden von SMS-Nachrichten verwenden, befindet sich Ihr AWS-Konto in der SMS-Sandbox. Die SMS-Sandbox bietet Ihnen eine sichere Umgebung, in der Sie Amazon SNS Funktionen ausprobieren können, ohne Ihren Ruf als SMS-Sender zu gefährden. Während sich Ihr Konto in der SMS-Sandbox befindet, können Sie alle Funktionen von Amazon SNS verwenden. Sie können jedoch SMS-Nachrichten nur an verifizierte Zieltelefonnummern senden. Weitere Informationen finden Sie unter SMS-Sandbox.

  1. Melden Sie sich bei der Amazon SNS-Konsole an.

  2. Wählen Sie im Navigationsbereich Subscriptions aus.

  3. Wählen Sie auf der Seite Subscriptions (Abonnements) die Option Create subscription (Abonnement erstellen)aus.

  4. Gehen Sie auf der Seite Abonnement erstellen unter Details wie folgt vor:

    1. Für Thema-ARN geben Sie ein oder wählen Sie den Amazon-Ressourcennamen (ARN) des Themas, an das Sie SMS-Nachrichten senden möchten.

    2. Wählen Sie für Protokoll SMS aus.

    3. Geben Sie für Endpunkt die Telefonnummer ein, die mit Ihrem Thema abonniert werden soll.

  5. Klicken Sie auf Create subscription (Abonnement erstellen). Die Abonnementinformationen erscheint auf der Seite Abonnements.

    Wiederholen Sie diese Schritte, um weitere Telefonnummern hinzuzufügen. Sie können auch andere Abonnementtypen, wie E-Mail, hinzufügen.

So senden Sie eine Nachricht

Wenn Sie eine Nachricht veröffentlichen, versucht Amazon SNS diese Nachricht an alle Telefonnummern zu schicken, die das Thema abonniert haben.

  1. Wählen Sie in der Amazon SNS-Konsole auf der Seite Themen den Namen des Themas, an das Sie SMS-Nachrichten senden möchten.

  2. Wählen Sie auf der Seite mit den Details des Themas Publish message (Nachricht veröffentlichen) aus.

  3. Geben Sie auf der Seite Nachricht für Thema veröffentlichen unter Nachrichtendetails wie folgt vor:

    1. Lassen Sie unter Subject (Betreff) das Feld leer, es sei denn, Ihr Thema enthält E-Mail-Abonnements und Sie möchten sowohl an E-Mail- und SMS-Abonnements Nachrichten veröffentlichen. Amazon SNS verwendet den Betreff, den Sie eingeben, als E-Mail-Betreffzeile.

    2. (Optional) Geben Sie für Time to Live (TTL) eine Anzahl an Sekunden an, in denen Amazon SNS Ihre SMS-Nachricht an Abonnenten des Mobilanwendungs-Endpunkts senden muss.

  4. Gehen Sie unter Nachrichtentext wie folgt vor:

    1. Wählen Sie für Nachrichtenstruktur Identische Nutzlast für alle Bereitstellungsprotokolle, um die gleiche Nachricht an alle Protokolltypen zu schicken, die Ihr Thema abonniert haben. Oder wählen Sie Benutzerdefinierte Nutzlast für die einzelnen Bereitstellungsprotokolle, um die Nachricht für Abonnenten verschiedener Protokolltypen anzupassen. Sie können beispielsweise eine Standardnachricht für Telefonnummernabonnenten und eine benutzerdefinierte Nachricht für E-Mail-Abonnenten eingeben.

    2. Geben Sie für Nachrichtentext zum Senden an den Endpunkt Ihre Nachricht oder Ihre benutzerdefinierten Nachrichten je Zustellungsprotokoll ein.

      Wenn Ihr Thema über einen Anzeigenamen verfügt, fügt Amazon SNS diesen der Nachricht hinzu, wodurch sich die Nachrichtenlänge verlängert. Die Länge des Anzeigenamens setzt sich aus der Anzahl der Zeichen des Namens sowie zwei Zeichen für die spitze Klammer (>) und von Amazon SNS hinzugefügte Leerzeichen zusammen.

      Weitere Informationen über das Größenkontingent für SMS-Nachrichten finden Sie unter Veröffentlichen auf einem Mobiltelefon.

  5. (Optional) Fügen Sie bei Nachrichtenattribute Nachrichtmetadaten ein, wie z. B. Zeitstempel, Signaturen und IDs.

  6. Wählen Sie Publish message (Nachricht veröffentlichen) aus. Amazon SNS sendet die SMS-Nachricht und zeigt eine Erfolgsmeldung an.

Senden einer Nachricht an ein Thema (AWS SDKs)

Zur Verwendung eines AWS-SDK müssen Sie es mit Ihren -Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter Freigegebene Konfigurations- und Anmeldeinformationsdateien im AWS Referenzhandbuch zu SDKs und Tools.

Wie das aussehen kann, sehen Sie am nachfolgenden Beispielcode:

  • Erstellen Sie ein Amazon-SNS-Thema.

  • Verknüpfen Sie Telefonnummern mit dem Thema.

  • Veröffentlichen Sie SMS-Nachrichten im Thema, damit alle abonnierten Telefonnummern die Nachricht gleichzeitig empfangen.

Java
SDK für Java 2.x
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

Erstellen Sie ein Thema und geben Sie seinen ARN zurück.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.CreateTopicRequest; import software.amazon.awssdk.services.sns.model.CreateTopicResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateTopic { public static void main(String[] args) { final String usage = """ Usage: <topicName> Where: topicName - The name of the topic to create (for example, mytopic). """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String topicName = args[0]; System.out.println("Creating a topic with name: " + topicName); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); String arnVal = createSNSTopic(snsClient, topicName); System.out.println("The topic ARN is" + arnVal); snsClient.close(); } public static String createSNSTopic(SnsClient snsClient, String topicName) { CreateTopicResponse result; try { CreateTopicRequest request = CreateTopicRequest.builder() .name(topicName) .build(); result = snsClient.createTopic(request); return result.topicArn(); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }

Abonnieren eines Endpunkts für ein Thema.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SnsException; import software.amazon.awssdk.services.sns.model.SubscribeRequest; import software.amazon.awssdk.services.sns.model.SubscribeResponse; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SubscribeTextSMS { public static void main(String[] args) { final String usage = """ Usage: <topicArn> <phoneNumber> Where: topicArn - The ARN of the topic to subscribe. phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100). """; if (args.length < 2) { System.out.println(usage); System.exit(1); } String topicArn = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); subTextSNS(snsClient, topicArn, phoneNumber); snsClient.close(); } public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) { try { SubscribeRequest request = SubscribeRequest.builder() .protocol("sms") .endpoint(phoneNumber) .returnSubscriptionArn(true) .topicArn(topicArn) .build(); SubscribeResponse result = snsClient.subscribe(request); System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Legen Sie Attribute für die Nachricht fest, z. B. die ID des Senders, den Höchstpreis und seinen Typ. Nachrichtenattribute sind optional.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest; import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse; import software.amazon.awssdk.services.sns.model.SnsException; import java.util.HashMap; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SetSMSAttributes { public static void main(String[] args) { HashMap<String, String> attributes = new HashMap<>(1); attributes.put("DefaultSMSType", "Transactional"); attributes.put("UsageReportS3Bucket", "janbucket"); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); setSNSAttributes(snsClient, attributes); snsClient.close(); } public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) { try { SetSmsAttributesRequest request = SetSmsAttributesRequest.builder() .attributes(attributes) .build(); SetSmsAttributesResponse result = snsClient.setSMSAttributes(request); System.out.println("Set default Attributes to " + attributes + ". Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Veröffentlichen einer Nachricht für ein Thema. Die Nachricht wird an jeden Teilnehmer gesendet.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.PublishRequest; import software.amazon.awssdk.services.sns.model.PublishResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class PublishTextSMS { public static void main(String[] args) { final String usage = """ Usage: <message> <phoneNumber> Where: message - The message text to send. phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s """; if (args.length != 2) { System.out.println(usage); System.exit(1); } String message = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); pubTextSMS(snsClient, message, phoneNumber); snsClient.close(); } public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) { try { PublishRequest request = PublishRequest.builder() .message(message) .phoneNumber(phoneNumber) .build(); PublishResponse result = snsClient.publish(request); System.out .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }