

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.

# Amazon SNS für application-to-person den Nachrichtenversand verwenden
<a name="sns-user-notifications"></a>

Mit Amazon SNS application-to-person (A2P) können Sie Benachrichtigungen und Benachrichtigungen per SMS (Short Message Service) direkt an die Mobilgeräte Ihrer Kunden senden. Mit dieser Funktion können Sie Push-Benachrichtigungen an mobile Apps, Textnachrichten an Handynummern und Klartext-E-Mails an E-Mail-Adressen senden. Darüber hinaus haben Sie die Flexibilität, Nachrichten mithilfe von Themen zu verteilen, um mehrere Empfänger zu erreichen, oder Nachrichten direkt an einzelne mobile Endpunkte zu veröffentlichen, um personalisierte Kommunikation zu ermöglichen.

In diesem Thema wird erklärt, wie Amazon SNS für Benutzerbenachrichtigungen mit Abonnenten verwendet wird, z. B. für mobile Anwendungen, Handynummern und E-Mail-Adressen.

![\[Ein Überblick darüber, wie Amazon SNS application-to-person (A2P) Messaging unterstützt, indem es Publishern ermöglicht, Benachrichtigungen direkt an Kunden zu senden. Es werden zwei Hauptmethoden für die Verteilung von Nachrichten vorgestellt: die direkte Veröffentlichung an einzelnen Endpunkten (wie E-Mail-Adressen, Telefonnummern oder mobile Apps) und die themenbasierte Veröffentlichung, bei der Nachrichten an mehrere Abonnenten gleichzeitig gesendet werden. Die Abonnenten, die auf der rechten Seite dargestellt sind, können Benachrichtigungen über Push-Benachrichtigungen, Textnachrichten oder E-Mails erhalten, was Flexibilität für verschiedene Anwendungsfälle bietet.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-a2p-overview.png)


# Mobiles Textnachrichten mit Amazon SNS
<a name="sns-mobile-phone-number-as-subscriber"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Amazon SNS Mobile Text Messaging (SMS) wurde entwickelt, um die Nachrichtenzustellung an verschiedene Plattformen zu erleichtern, z. B. Web-, Mobil- und Geschäftsanwendungen, die SMS unterstützen. Benutzer können Nachrichten an eine oder mehrere Telefonnummern senden, indem sie ihnen ein Thema abonnieren, was den Verteilungsprozess vereinfacht.

Amazon SNS SNS-Nachrichten werden von zugestellt AWS End User Messaging SMS, wodurch eine zuverlässige Nachrichtenübertragung gewährleistet ist. In Amazon SNS APIs können Sie verschiedene Eigenschaften wie Nachrichtentypen (Werbe- oder Transaktionsnachrichten), [monatliche Ausgabenlimits](sms_preferences.md#sms_preferences_console), [Abmeldelisten](sms_manage.md#sms_manage_optout) und die Optimierung der [Nachrichtenzustellung](sms_preferences.md#sms_preferences_console) festlegen.

AWS End User Messaging SMS wickelt die Übertragung von Nachrichten an die Zieltelefonnummer über das globale SMS-Versorgungsnetz ab. Es verwaltet das Routing, den Lieferstatus und die erforderliche Einhaltung der regionalen Vorschriften. Informationen zum Zugriff auf zusätzliche SMS-Funktionen wie detaillierte Berechtigungen, Telefonpools, Konfigurationssätze, SMS-Simulator und Länderregeln finden Sie im [AWS End User Messaging SMS Benutzerhandbuch](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html).

![\[Eine Veranschaulichung, wie Amazon SNS integriert werden kann AWS End User Messaging SMS , um mobile Textnachrichten zuverlässig zu übermitteln. Nachrichten können direkt an einzelne Empfänger gesendet oder über Amazon SNS SNS-Themen an Gruppen verteilt werden. AWS End User Messaging SMS kümmert sich um die Weiterleitung, Zustellung und Einhaltung von Vorschriften für Nachrichten im gesamten globalen Netzwerk und gewährleistet so Skalierbarkeit und Zuverlässigkeit. Dieses Setup ermöglicht auch die Konfiguration von Nachrichteneinstellungen, die Verwaltung von Ausgabenlimits und die Nachverfolgung des Zustellungsstatus, um die AWS SMS Nachrichtenübermittlung zu optimieren.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-sms-end-user-messaging.png)


Die folgenden Hauptfunktionen helfen Ihnen beim Senden von Amazon SNS SNS-SMS-Nachrichten, die skalierbar und leicht erweiterbar sind:

**[Passen Sie die Nachrichteneinstellungen an](sms_preferences.md)**  
Passen Sie SMS-Lieferungen an Ihre Bedürfnisse an, AWS-Konto indem Sie SMS-Einstellungen einrichten, die auf Ihrem Budget und Anwendungsfall basieren. Sie können beispielsweise wählen, ob Ihre Nachrichten der Kosteneffizienz oder der zuverlässigen Zustellung Priorität einräumen.

**[Legen Sie Ausgabenquoten fest](channels-sms-awssupport-spend-threshold.md)**  
Passen Sie Ihre SMS-Lieferungen an, indem Sie Ausgabenkontingente oder für einzelne Nachrichtenzustellungen und monatliche Ausgabenkontingente für Sie angeben AWS-Konto. Sofern dies nach lokalen Gesetzen und Vorschriften (z. B. in den USA und Kanada) erforderlich ist, können sich SMS-Empfänger [abmelden](sms_manage.md#sms_manage_optout), was bedeutet, dass sie sich dafür entscheiden, keine SMS-Nachrichten mehr von Ihnen zu erhalten AWS-Konto. Nachdem sich ein Empfänger vom Empfang von Nachrichten abgemeldet hat, können Sie die Telefonnummer mit Einschränkungen erneut angeben, sodass Sie mit dem Senden von Nachrichten fortfahren können.

**[Senden Sie SMS-Nachrichten weltweit](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)**  
Amazon SNS unterstützt SMS-Nachrichten in mehreren Regionen, sodass Sie Nachrichten in über 240 Länder und Regionen senden können.

## Wie stellt Amazon SNS meine SMS-Nachrichten zu?
<a name="sns-sms-pinpoint-integration"></a>

Wenn Sie Amazon SNS bitten, in Ihrem Namen SMS zu senden, werden die Nachrichten über AWS End User Messaging SMS. Die Integration zwischen Amazon SNS und AWS End User Messaging SMS bietet die folgenden Vorteile:

**[IAM-Richtlinien](sns-mobile-phone-number-getting-started.md#sns-mobile-phone-number-prerequisites)**  
Sie können IAM- und Ressourcenrichtlinien nutzen, um den Zugriff auf Ihre SMS-Ressourcen zu kontrollieren und auf andere AWS Dienste und Regionen zu verteilen.

**[AWS End User Messaging SMS -Konfigurationen](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html)**  
Alle Konfigurationen im Zusammenhang mit der Origination ID (Erstellung, Aktualisierung der Konfiguration, Bereitstellung neuer Originationen IDs, Änderung von Registrierungsvorlagen) verwenden. AWS End User Messaging SMS

**[AWS End User Messaging SMS Abrechnung](https://aws.amazon.com/sns/sms-pricing/)**  
Die gesamte SMS-Abrechnung ist jedoch abgeschlossen AWS End User Messaging SMS. Sie können Ihre AWS Ausgaben für Ihre SMS-Workloads konsolidieren und gleichzeitig Ihre SMS-Ressourcen an einem zentralen Ort beschaffen und verwalten.

# Erste Schritte mit Amazon SNS SMS
<a name="sns-mobile-phone-number-getting-started"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Dieses Thema führt Sie durch die Verwaltung Ihrer SMS-Sandbox und die Konfiguration von IAM und ressourcenbasierten Richtlinien, um Amazon SNS die erforderlichen Berechtigungen für den Zugriff und die Nutzung von zu gewähren. AWS End User Messaging SMS APIs 

## Voraussetzungen
<a name="sns-mobile-phone-number-prerequisites"></a>

Amazon SNS empfiehlt, Ihre IAM-Richtlinie um die folgenden Maßnahmen zu aktualisieren, um eine umfassende Kontrolle und Transparenz Ihrer Amazon SNS SNS-Ressourcen zu gewährleisten:
+ [`AmazonSNSFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSFullAccess)
+ [`AmazonSNSReadOnly`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSReadOnlyAccess) 

# Verwenden der Amazon SNS SMS-Sandbox
<a name="sns-sms-sandbox"></a>

Neu erstellte Amazon SNS SNS-SMS-Konten werden automatisch in die SMS-Sandbox aufgenommen, um die Sicherheit von AWS Kunden und Empfängern zu gewährleisten, indem das Risiko von Betrug und Missbrauch minimiert wird. Diese Umgebung dient als sicherer Bereich für Test- und Entwicklungszwecke. Während Sie in der SMS-Sandbox arbeiten, haben Sie Zugriff auf alle Amazon SNS SNS-Funktionen, unterliegen jedoch bestimmten Einschränkungen:
+ Sie können SMS-Nachrichten nur an verifizierte Zieltelefonnummern senden.
+ Sie können über bis zu 10 verifizierte Zielrufnummern verfügen.
+ Sie können Ziel-Telefonnummern erst löschen, wenn seit der Überprüfung oder dem letzten Überprüfungsversuch mindestens 24 Stunden vergangen sind.

Sobald Ihr Konto die Sandbox verlassen hat, werden diese Einschränkungen aufgehoben, und Sie können SMS-Nachrichten an jeden Empfänger senden.

## Erste Schritte
<a name="sns-mobile-phone-number-getting-started-steps"></a>

Neue Amazon SNS SNS-SMS-Konten werden in einer SMS-Sandbox platziert. Gehen Sie wie folgt vor, um Telefonnummern in Ihrer Sandbox zu erstellen und zu verwalten, Ausgangsnummern und Absender zu erstellen und Ihr Unternehmen zu IDs registrieren.

1. Fügen Sie der SMS-Sandbox eine **Zieltelefonnummer** hinzu. Einzelheiten zum Hinzufügen, Verwalten und Verschieben von Telefonnummern aus der Amazon SNS SMS-Sandbox finden Sie unter. [Hinzufügen und Überprüfen von Telefonnummern in der Amazon SNS SMS-Sandbox](sns-sms-sandbox-verifying-phone-numbers.md)

1. Erstellen Sie eine **Absenderidentität**, die Ihre Empfänger auf ihren Geräten sehen, wenn Sie ihnen eine SMS-Nachricht senden. Weitere Informationen zu Herkunftsidentitäten, einschließlich der verschiedenen Typen, die Sie verwenden können, finden Sie in der Dokumentation. [Herkunftsidentitäten für Amazon SNS SNS-SMS-Nachrichten](channels-sms-originating-identities.md)

1. **Registrieren Sie** Ihr Unternehmen. In einigen Ländern müssen Sie die Identität Ihres Unternehmens registrieren, um Telefonnummern oder Absender kaufen IDs und die Nachrichten überprüfen zu können, die Sie an Empfänger in ihrem Land senden. Informationen darüber, in welchen Ländern eine Registrierung erforderlich ist, finden Sie AWS End User Messaging SMS im *AWS End User Messaging SMS Benutzerhandbuch* unter [Unterstützte Länder und Regionen für SMS-Nachrichten](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

1. **Senden** Sie Ihre Nachrichten an ein Thema oder ein Mobiltelefon. Weitere Informationen finden Sie unter [Senden von SMS-Nachrichten mit Amazon SNS](sms_sending-overview.md).

# Hinzufügen und Überprüfen von Telefonnummern in der Amazon SNS SMS-Sandbox
<a name="sns-sms-sandbox-verifying-phone-numbers"></a>

Bevor Sie mit dem Senden von SMS-Nachrichten von Ihrem Computer aus beginnen können, AWS-Konto während Sie sich in der [SMS-Sandbox](sns-sms-sandbox.md) befinden, müssen Sie die folgenden Einrichtungsschritte ausführen. Dadurch wird sichergestellt, dass Ihr Konto für SMS-Nachrichten bereit ist und dass Ihre Zieltelefonnummern ordnungsgemäß verifiziert sind.

1. Erstellen Sie eine **[Quell-ID.](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-number-types.html)** Ähnlich wie bei Konten außerhalb der SMS-Sandbox ist eine Ursprungs-ID erforderlich, bevor Sie SMS-Nachrichten an Empfänger in einigen Ländern oder Regionen senden können.

1. Fügen Sie die **Zieltelefonnummern**, an die Sie Nachrichten senden möchten, innerhalb der SMS-Sandbox hinzu.

1. Überprüfen Sie die **Telefonnummern**, um sicherzustellen, dass die Zieltelefonnummern für die Verwendung in Ihren SMS-Nachrichten gültig sind.

**Fügen Sie Ziel-Telefonnummern hinzu und überprüfen Sie sie**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Konsolenmenü eine [Region aus, die SMS-Nachrichten unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Text-Messaging (SMS)** aus.

1. Wählen Sie im Abschnitt **Sandbox-Zielrufnummern** die Option **Telefonnummer hinzufügen** aus.

1. Geben Sie unter **Zieldetails** die folgenden Informationen ein und wählen Sie dann **Telefonnummer hinzufügen** aus:
   + **Landesvorwahl** und **Telefonnummer** des Ziels.
   + Die **Sprache**, in der die Bestätigungsnachricht gesendet werden soll.

1. Nach dem Hinzufügen der Telefonnummer sendet Amazon SNS ein OTP an die angegebene Zieltelefonnummer. Dieses OTP ist für die Überprüfung erforderlich.

1. Sie erhalten das OTP als Standard-SMS-Nachricht an die von Ihnen angegebene **Zieltelefonnummer.**
   + Wenn Sie das Einmalpasswort nicht innerhalb von 15 Minuten erhalten, wählen Sie in der Amazon **SNS SNS-Konsole die Option Bestätigungscode erneut senden** aus.
   + Sie können das OTP innerhalb von 24 Stunden bis zu fünf Mal erneut senden.

1. Sobald Sie das OTP erhalten haben, geben Sie es in das Feld **Bestätigungscode** ein und wählen Sie Telefonnummer **verifizieren** aus.

1. Überprüfen Sie den **Bestätigungsstatus**.
   + Nach erfolgreicher Überprüfung der Telefonnummer werden die Telefonnummer und ihr Bestätigungsstatus im Abschnitt **Sandbox-Zieltelefonnummern** angezeigt.
   + Wenn der Status **Ausstehend** lautet, war die Überprüfung nicht erfolgreich. Dies kann beispielsweise der Fall sein, wenn Sie die Landesvorwahl nicht korrekt eingegeben haben.
   + Sie können ausstehende oder verifizierte Telefonnummern erst löschen, wenn seit dem letzten Bestätigungsversuch mindestens 24 Stunden vergangen sind.

1. Wenn Sie dieselbe Zieltelefonnummer in anderen Regionen verwenden möchten, **wiederholen Sie** die vorherigen Schritte für jede Region, in der Sie sie verwenden möchten.

## Behebung von Problemen beim Nichtempfang eines OTP-Textes
<a name="sns-sms-sandbox-troubleshooting-phone-numbers"></a>

Beheben Sie häufig auftretende Probleme, die verhindern können, dass eine Telefonnummer OTP-Texte empfängt.
+ **Amazon SNS SMS-Ausgabenlimit:** Wenn Sie das Ausgabenlimit für den Versand von SMS-Nachrichten AWS-Konto überschritten haben, werden weitere Nachrichten, einschließlich OTP-Texte, möglicherweise erst zugestellt, wenn das Limit erhöht oder das Abrechnungsproblem gelöst ist.
+ **Telefonnummer, die nicht für SMS-Benachrichtigungen aktiviert wurde:** In einigen Ländern oder Regionen müssen sich Empfänger dafür entscheiden, SMS-Nachrichten über Kurzcodes zu erhalten, die üblicherweise für OTP-Texte verwendet werden. Wenn die Telefonnummer des Empfängers nicht aktiviert ist, erhält er den OTP-Text nicht.
+ **Einschränkungen oder Filterung durch Mobilfunkanbieter:** Einige Mobilfunkanbieter verfügen möglicherweise über Einschränkungen oder Filtermechanismen, die die Zustellung bestimmter Arten von SMS-Nachrichten, einschließlich OTP-Texten, verhindern. Dies könnte auf Sicherheitsrichtlinien oder Anti-Spam-Maßnahmen des Mobilfunkanbieters zurückzuführen sein.
+ **Ungültige oder falsche Telefonnummer:** Wenn die vom Empfänger angegebene Telefonnummer falsch oder ungültig ist, wird der OTP-Text nicht zugestellt.
+ **Netzwerkprobleme:** Vorübergehende Netzwerkprobleme oder Ausfälle können die Zustellung von SMS-Nachrichten, einschließlich OTP-Texten, an das Telefon des Empfängers verhindern.
+ **Verspätete Zustellung:** In einigen Fällen kann es bei SMS-Nachrichten aufgrund von Netzwerküberlastungen oder anderen Faktoren zu Verzögerungen bei der Zustellung kommen. Der OTP-Text kann irgendwann zugestellt werden, er kann sich jedoch über den erwarteten Zeitrahmen hinaus verzögern.
+ **Sperrung oder Kündigung Ihres Kontos:** Wenn es Probleme mit Ihrem Konto gibt AWS-Konto, wie z. B. Nichtzahlung oder Verstoß gegen die AWS Nutzungsbedingungen, können die Nachrichtenfunktionen von Amazon SNS, einschließlich OTP-Texten, gesperrt oder beendet werden.

# Löschen von Telefonnummern aus der Amazon SNS SMS-Sandbox
<a name="sns-sms-sandbox-deleting-phone-numbers"></a>

Sie können sowohl ausstehende als auch verifizierte Zielrufnummern aus der [SMS-Sandbox](sns-sms-sandbox.md) löschen.

**Wichtig**  
Sie können eine Telefonnummer nur 24 Stunden nach der [Bestätigung der Telefonnummer](sns-sms-sandbox-verifying-phone-numbers.md) oder 24 Stunden nach Ihrem letzten Bestätigungsversuch löschen.

**So löschen Sie Zieltelefonnummern aus der SMS-Sandbox**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Konsolenmenü eine [Region aus, die SMS-Nachrichten unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html) und in der Sie eine Zieltelefonnummer hinzugefügt haben.

1. Wählen Sie im Navigationsbereich **Textnachrichten (SMS)** aus.

1. Navigieren Sie auf der Seite **Mobile Textnachrichten (SMS)** zum Abschnitt **Sandbox-Zieltelefonnummern**.

1. Wählen Sie die spezifische Telefonnummer aus, die Sie löschen möchten, und wählen Sie dann **Telefonnummer löschen** aus.

1. Geben Sie **delete me** ein, und wählen Sie dann **Delete (Löschen)**, um zu bestätigen, dass Sie die Telefonnummer löschen möchten.

   Stellen Sie sicher, dass mindestens 24 Stunden vergangen sind, seit Sie die Zieltelefonnummer verifiziert oder versucht haben, sie zu verifizieren, bevor Sie mit dem Löschen fortfahren.

1. Wiederholen Sie diese Schritte in jeder Region, in der Sie die Zieltelefonnummer hinzugefügt haben und nicht mehr verwenden möchten.

# Verlassen der Amazon SNS SMS-Sandbox
<a name="sns-sms-sandbox-moving-to-production"></a>

Um Sie AWS-Konto aus der [SMS-Sandbox](sns-sms-sandbox.md) zu entfernen, müssen Sie zunächst Zielrufnummern hinzufügen, verifizieren und testen. Erstellen Sie anschließend einen Fall mit AWS Support.

**Um zu beantragen, dass Ihr AWS Konto aus der SMS-Sandbox entfernt wird**

1. **Überprüfen Sie die Telefonnummern**

   1. Öffnen Sie AWS-Konto die [Amazon SNS-Konsole, während Sie sich in der SMS-Sandbox befinden](https://console.aws.amazon.com/sns/home).

   1. Wählen Sie im Navigationsbereich unter Mobil die Option **Textnachrichten (SMS)** aus.

   1. Fügen Sie im Abschnitt Sandbox-Zielrufnummern eine oder mehrere Zielrufnummern [hinzu und überprüfen Sie](sns-sms-sandbox-verifying-phone-numbers.md) sie. Diese Überprüfung stellt sicher, dass Sie erfolgreich Nachrichten senden und empfangen können.

1. **Testen Sie das Veröffentlichen von SMS**

   1. Vergewissern Sie sich, dass Sie Nachrichten an mindestens eine verifizierte Telefonnummer senden und empfangen können. Ausführlichere Anweisungen zum Veröffentlichen von SMS-Nachrichten finden Sie unter[Veröffentlichen von SMS-Nachrichten auf einem Mobiltelefon mithilfe von Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

1. **Initiieren Sie die Sandbox-Bearbeitung**

   1. Wählen Sie auf der Seite Amazon SNS-Konsole **Text-Messaging (SMS)** unter **Kontoinformationen** **SMS-Sandbox verlassen**. Diese Aktion leitet Sie zum [Amazon Support Center weiter und erstellt automatisch einen Support-Fall](https://support.console.aws.amazon.com/support/home?#/case/create?issueType=service-limit-increase), bei dem die Option zur **Erhöhung des Servicekontingents** ausgewählt ist.

1. **Füllen Sie das Formular aus**

   1. Gehen Sie im Support-Formular unter **Erhöhung der Servicequote** wie folgt vor:

     1. Wählen Sie „**SNS-Textnachrichten**“ als Dienst aus.

     1. Geben Sie die **URL der Website** oder den **Namen der App** an, von der aus Sie SMS-Nachrichten senden möchten.

     1. Geben Sie die Art der Nachrichten an, die Sie senden möchten: **Einmalpasswort**, **Werbe** - oder **Transaktionsnachricht**.

     1. Wählen Sie aus, **AWS-Region**von wo aus Sie SMS-Nachrichten senden möchten.

     1. Listen Sie die **Länder** oder **Regionen** auf, in denen Sie SMS-Nachrichten senden möchten.

     1. Beschreiben Sie, wie sich Ihre **Kunden für den Empfang von Nachrichten anmelden**.

     1. Fügen Sie alle **Nachrichtenvorlagen hinzu**, die Sie verwenden möchten.

1. **Geben Sie Kontingent und Region an**

   1. Gehen Sie unter **Requests (Anfragen)** wie folgt vor:

     1. Wählen Sie **AWS-Region**, wohin Sie Ihre verschieben möchten AWS-Konto.

     1. Wählen Sie **Allgemeine Grenzwerte** für den **Ressourcentyp**.

     1. Wählen Sie für **Quota** die Option **Exit SMS Sandbox** aus.

     1. (Optional) Um zusätzliche Erhöhungen oder andere Anpassungen anzufordern, wählen Sie „Weitere **Anfrage hinzufügen**“ und geben Sie die erforderlichen Details an.

     1. Geben Sie **unter Neuer Kontingentwert** das **Limit** in USD ein, das Sie beantragen.

1. **Zusätzliche Details**

   1. Geben Sie in der **Fallbeschreibung** alle zusätzlichen Details an, die für Ihre Anfrage relevant sind.

   1. Wählen **Sie unter Kontaktoptionen** Ihre **bevorzugte Kontaktsprache** aus.

1. **Reichen Sie die Anfrage ein**

   1. Wählen Sie **Senden**, um Ihre Anfrage an zu senden Support.

Das Support Team gibt innerhalb von 24 Stunden eine erste Antwort auf Ihre Anfrage.

Da wir verhindern möchten, dass unerwünschte oder schädliche Inhalte in unseren Systemen eingehen, müssen wir jede Anfrage sorgfältig prüfen. Nach einer Prüfung kommen wir Ihrer Anfrage innerhalb dieses 24-Stunden-Zeitraums nach. Für den Fall, dass wir weitere Informationen von Ihnen benötigen, kann die Bearbeitung Ihrer Anfrage länger dauern.

Wenn Ihr Anwendungsfall gegen unsere Richtlinien verstößt, können wir Ihrer Anfrage möglicherweise nicht nachkommen.

# Herkunftsidentitäten für Amazon SNS SNS-SMS-Nachrichten
<a name="channels-sms-originating-identities"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Herkunftsidentitäten für SMS-Nachrichten sind Identifikatoren, die zur Darstellung des Absenders einer SMS-Nachricht verwendet werden. Sie können sich gegenüber Ihren Empfängern anhand der folgenden Arten von Absenderidentitäten identifizieren:

**Ursprungsnummern**  
Eine numerische Zeichenfolge, die die Telefonnummer eines SMS-Absenders identifiziert. Es gibt verschiedene Arten von Ausgangsnummern, darunter Langcodes (Standardtelefonnummern, die normalerweise 10 oder mehr Ziffern haben), 10-stellige Langcodes (10DLC), gebührenfreie Nummern (TFN) und Kurzcodes (Telefonnummern, die zwischen vier und sieben Ziffern enthalten).  
In Ländern, in denen lokale Gesetze die Verwendung von Absendernummern IDs anstelle von Ursprungsnummern vorschreiben, ist die Support für Ursprungsnummern nicht verfügbar. Wenn Sie eine SMS-Nachricht mit einer Ursprungsnummer senden, zeigt das Gerät des Empfängers die Ursprungsnummer als Telefonnummer des Senders an. Sie können verschiedene Ursprungsnummern nach Anwendungsfall angeben.  
Weitere Informationen finden Sie im *AWS End User Messaging SMS Benutzerhandbuch* unter [Telefonnummern](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html).  
Um eine Liste aller vorhandenen Ursprungsnummern in Ihrem AWS Konto anzuzeigen, wählen Sie im Navigationsbereich der [Amazon SNS SNS-Konsole](https://console.aws.amazon.com/sns/home) **Originationsnummern** aus.

**Absender IDs**  
Ein alphabetischer Name, der den Absender einer SMS-Nachricht identifiziert. Wenn Sie eine SMS-Nachricht mit einer Absender-ID senden und sich der Empfänger in einem Bereich befindet, in dem die Absender-ID-Authentifizierung unterstützt wird, wird Ihre Absender-ID auf dem Gerät des Empfängers anstelle Ihrer Telefonnummer angezeigt. Eine Sender-ID stellt SMS-Empfängern mehr Informationen über den Sender zur Verfügung als eine Telefonnummer, Langwahl- oder Kurzwahlnummer.  
Absender IDs werden in mehreren Ländern und Regionen auf der ganzen Welt unterstützt. In einigen Regionen müssen Sie als Unternehmen, das SMS-Nachrichten an einzelne Kunden sendet, eine Absender-ID verwenden, die vorab bei einer Regulierungsbehörde oder einem Branchengremium registriert wurde. Eine vollständige Liste der Länder und Regionen, die Sender unterstützen oder erfordern IDs, finden Sie AWS End User Messaging SMS im *AWS End User Messaging SMS Benutzerhandbuch* unter [Unterstützte Länder und Regionen für SMS-Nachrichten mit](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).  
Für die Verwendung von Sender fallen keine zusätzlichen Gebühren an IDs. Die Unterstützung und die Anforderungen für die Absender-ID-Authentifizierung sind jedoch von Land zu Land unterschiedlich. Mehrere wichtige Märkte (darunter Kanada, China und die Vereinigte Staaten) unterstützen die Verwendung von Sender nicht IDs. In einigen Regionen müssen Sie als Unternehmen, das SMS-Nachrichten an einzelne Kunden sendet, eine Sender-ID verwenden, die vorab bei einer Regulierungsbehörde oder einem Branchengremium registriert wurde.  
Weitere Informationen finden Sie IDs im *AWS End User Messaging SMS Benutzerhandbuch* unter [Sender](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html).

# Konfiguration von SMS-Nachrichten in Amazon SNS
<a name="channels-sms-configurations"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Sie können die Konfigurationen in Amazon SNS SMS verwenden, um SMS-Einstellungen an Ihre Anforderungen anzupassen, wie z. B. die Anpassung von Ausgabenkontingenten und die Einrichtung der Versandstatusprotokollierung. In diesem Thema erfahren Sie auch, wie Sie mithilfe der Amazon SNS SNS-Konsole und des AWS SDK SMS-Nachrichten zu Themen veröffentlichen, Kontingente effizient verwalten und detaillierte Statistiken zu SMS-Aktivitäten abrufen können.

# Senden von SMS-Nachrichten mit Amazon SNS
<a name="sms_sending-overview"></a>

In diesem Abschnitt wird beschrieben, wie SMS-Nachrichten mithilfe von Amazon SNS gesendet werden, einschließlich der Veröffentlichung zu einem Thema, des Abonnierens von Telefonnummern für Themen, dem Festlegen von Attributen für Nachrichten und dem direkten Veröffentlichen auf Mobiltelefonen.

## Veröffentlichen von SMS-Nachrichten zu einem Amazon SNS SNS-Thema
<a name="sms_publish-to-topic"></a>

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 Nachrichten, die zu dem Thema veröffentlicht wurden, bis Sie das Abonnement kündigen oder bis der Abonnent den Empfang von SMS-Nachrichten von Ihrem AWS Konto ablehnt.

### Senden einer Nachricht zu einem Thema mithilfe der Konsole AWS
<a name="sms_publish-to-topic_console"></a>

**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](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Konsolenmenü eine [Region aus, die SMS-Nachrichten unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Themen** aus.

1. Klicken Sie auf der Seite **Themen** auf **Thema erstellen**.

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

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

   1. Geben Sie für **Name** einen Themennamen ein.

   1. (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!
      ```

1. 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 [Verwenden der Amazon SNS SMS-Sandbox](sns-sms-sandbox.md).

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich **Subscriptions** aus.

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

1. 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.

   1. Wählen Sie für **Protokoll** **SMS** aus.

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

1. Wählen Sie **Create subscription** (Abonnement erstellen) aus. 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](https://console.aws.amazon.com/sns/home) auf der Seite **Themen** den Namen des Themas, an das Sie SMS-Nachrichten senden möchten.

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

1. 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.

   1. (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.

1. 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.

   1. 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 von SMS-Nachrichten auf einem Mobiltelefon mithilfe von Amazon SNS](#sms_publish-to-phone).

1. (Optional) Fügen Sie für **Nachrichtenattribute Nachrichtenmetadaten** wie Zeitstempel, Signaturen und hinzu. IDs

1. 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 mit dem AWS SDKs
<a name="sms_publish-to-topic_sdk"></a>

Um ein AWS SDK zu verwenden, müssen Sie es mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter [Die Dateien für die gemeinsame Konfiguration und die Anmeldeinformationen](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) im *AWS SDKs Referenzhandbuch zu 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**  
 Weitere Informationen finden Sie unter GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) 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);
        }
    }
}
```

------

## Veröffentlichen von SMS-Nachrichten auf einem Mobiltelefon mithilfe von Amazon SNS
<a name="sms_publish-to-phone"></a>

Sie können Amazon SNS verwenden, um SMS-Nachrichten direkt an ein Mobiltelefon zu senden, ohne die Telefonnummer für ein Amazon SNS-Thema zu abonnieren.

**Anmerkung**  
Das Abonnieren von Telefonnummern zu einem Thema kann nach wie vor nützlich sein, wenn Sie jede Nachricht in mehreren Telefonnummern zugleich senden möchten. Weitere Anleitungen zum Veröffentlichen einer SMS-Nachricht in einem Thema finden Sie unter [Veröffentlichen von SMS-Nachrichten zu einem Amazon SNS SNS-Thema](#sms_publish-to-topic).

Wenn Sie eine Nachricht senden, können Sie überprüfen, ob der Versand in Bezug auf Kosten und Verlässlichkeit optimiert ist. Sie können auch eine [Sender-ID oder Ursprungsnummer](channels-sms-originating-identities.md) angeben. Wenn Sie die Nachricht programmgesteuert über die Amazon SNS SNS-API oder die senden AWS SDKs, können Sie einen Höchstpreis für die Nachrichtenzustellung angeben.

Eine SMS-Nachricht kann maximal 140 Byte groß sein, wobei das Zeichenkontingent vom Codierungsschema abhängig ist. Die Anzahl der Zeichen einer SMS-Nachricht ist entsprechend wie folgt begrenzt:
+ 160 GSM-Zeichen
+ 140 ASCII-Zeichen
+ 70 UCS-2-Zeichen

Wenn Sie eine Nachricht veröffentlichen, die das Größenkontingent überschreitet, sendet Amazon SNS mehrere Teilnachrichten, die jeweils dem Größenkontingent entsprechen. Nachrichten werden niemals inmitten eines Wortes geteilt, sondern immer zwischen zwei Wörtern. Für die gesamte veröffentlichte und in mehreren Teilen versendete SMS-Nachricht gilt ein Größenkontingent von 1600 Byte.

Wenn Sie eine SMS-Nachricht senden, geben Sie die Telefonnummer im E.164-Format an – eine Standardnummernstruktur für die Telefonnummerierung, die für die internationale Telekommunikation verwendet wird. Telefonnummern in diesem Format bestehen aus maximal 15 Zeichen sowie einem vorangestellten Plus-Zeichen (\$1) und der Ländervorwahl. Beispielsweise wird eine US-Telefonnummer im E.164-Format als \$11 angezeigt. XXX5550100

### Senden einer Nachricht (Konsole)
<a name="sms_publish_console"></a>

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Konsolenmenü eine [Region aus, die SMS-Nachrichten unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Text-Messaging (SMS)** aus.

1. Wählen Sie auf der Seite **Text-Messaging (SMS)** **Textnachricht veröffentlichen**.

1. Wählen Sie auf der Seite **Textnachricht veröffentlichen** für **Nachrichtentyp** eines der Folgenden:
   + **Werbenachrichten** – Unkritische Nachrichten, wie beispielsweise Marketing-Nachrichten.
   + **Transaktionsnachrichten**: Sensible Nachrichten, die Kundentransaktionen unterstützen, wie beispielsweise One-Time-Passcodes für eine Multi-Faktor-Authentifizierung (MFA).
**Anmerkung**  
Diese Einstellung auf Nachrichtenebene setzt den Standardnachrichtentyp auf Kontoebene außer Kraft. Auf der Seite **Textnachrichten (SMS)** im Abschnitt **Text-Messaging-Einstellungen** können SIe einen Standardnachrichtentyp auf Kontoebene festlegen.

   Informationen zu den Gebühren für Aktions- und Transaktionsnachrichten finden Sie unter [Weltweite SMS-Preise](https://aws.amazon.com/sns/sms-pricing/).

1. Geben Sie unter **Zieltelefonnummer** die Telefonnummer ein, an die Sie die Nachricht senden möchten.

1. Geben Sie im Feld **Message (Nachricht)** die Art der zu versendenden Nachricht ein.

1. (Optional) Legen Sie unter **Ursprungsidentitäten** fest, wie Sie sich selbst gegenüber Ihren Empfängern identifizieren möchten:
   + Geben Sie im Feld **Sender ID (Sender-ID)** eine Kunden-ID ein, die 3 bis 11 alphanumerische Zeichen enthält, einschließlich mindestens einem Buchstaben und ohne Leerzeichen. Die Sender-ID wird auf dem Empfänger-Gerät als Sender der Nachricht angezeigt. Sie können z. B. Ihre Unternehmensmarke verwenden, um die Nachrichtenquelle leichter erkennbar zu machen.

     Die Support für den Absender IDs ist je nach Land und and/or Region unterschiedlich. Beispiel: Für Nachrichten, die an eine US-Telefonnummer gesendet werden, wird keine Sender-ID angezeigt. Informationen zu den Ländern und Regionen, die Sender unterstützen IDs, finden Sie AWS End User Messaging SMS im *AWS End User Messaging SMS Benutzerhandbuch* unter [Unterstützte Länder und Regionen für SMS-Nachrichten mit](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

     Wenn Sie keine Sender-ID angeben, wird eines der folgenden Elemente als Ursprungsidentität angezeigt:
     + In Ländern, die Langwahlnummern unterstützen, wird die Langwahlnummer angezeigt.
     + In Ländern, in denen nur Absender unterstützt IDs werden, wird *NOTICE* angezeigt.

     Diese Sender-ID auf Nachrichtenebene ersetzt die standardmäßige Sender-ID, die Sie auf der Seite **Text messaging preferences (SMS-Präferenzen)** konfigurieren.
   + Um eine **Ursprungsnummer** festzulegen, geben Sie eine Zeichenfolge von 5-14 Nummern ein, die als Telefonnummer des Senders auf dem Gerät des Empfängers angezeigt werden soll. Diese Zeichenfolge muss mit einer Ausgangsnummer übereinstimmen, die in Ihrem AWS-Konto Zielland konfiguriert ist. Bei der Ausgangsnummer kann es sich um eine 10DLC-Nummer, eine gebührenfreie Nummer, einen person-to-person Langcode oder eine Kurzvorwahl handeln. Weitere Informationen finden Sie unter [Herkunftsidentitäten für Amazon SNS SNS-SMS-Nachrichten](channels-sms-originating-identities.md).

     Wenn Sie keine Ursprungsnummer angeben, wählt Amazon SNS eine Ursprungsnummer aus, die für die SMS-Textnachricht verwendet werden soll, basierend auf Ihrer AWS-Konto -Konfiguration.

1. Wenn Sie SMS-Nachrichten an Empfänger in Indien senden, erweitern Sie **Länderspezifische Attribute** und legen Sie die folgenden Attribute fest:
   + **Entity-ID** – Die Entity ID oder Principal Entity (PE) -ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige Zeichenfolge von 1 bis 50 Zeichen, die die Telecom Regulatory Authority of India (TRAI) zur Identifizierung der Entität bereitstellt, die Sie bei der TRAI registriert haben.
   + **ID der Vorlage** – Die Vorlagen-ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige, von TRAI bereitgestellte Zeichenfolge mit 1 bis 50 Zeichen, die die Vorlage identifiziert, die Sie bei TRAI registriert haben. Die Vorlagen-ID muss der Sender-ID zugeordnet sein, die Sie für die Nachricht angegeben haben.

   Weitere Informationen zum Senden von SMS-Nachrichten an Empfänger in Indien, [Indien, Indien,](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html) finden Sie im *AWS End User Messaging SMS Benutzerhandbuch*.

1. Wählen Sie **Publish message (Nachricht veröffentlichen)** aus.

**Tipp**  
Um SMS-Nachrichten von einer Ursprungsnummer zu senden, können Sie auch **Ursprungsnummern** im Navigationsbereich in der Amazon SNS-Konsole eingeben. Wählen Sie eine Ursprungsnummer, die in der Spalte **Funktionen** **SMS** enthält und wählen Sie dann **Textnachricht veröffentlichen**.

### Eine Nachricht senden (AWS SDKs)
<a name="sms_publish_sdk"></a>

Um eine SMS-Nachricht mit einem der zu senden AWS SDKs, verwenden Sie den API-Vorgang in diesem SDK, der der `Publish` Anfrage in der Amazon SNS SNS-API entspricht. Mit dieser Anfrage können Sie eine SMS-Nachricht direkt an eine Telefonnummer senden. Sie können auch den `MessageAttributes`-Parameter verwenden, um Werte für die folgenden Attributnamen zu definieren:

**`AWS.SNS.SMS.SenderID`**  
Eine benutzerdefinierte ID, die 3 bis 11 alphanumerische Zeichen oder Bindestriche (-) enthält, einschließlich mindestens einem Buchstaben und ohne Leerzeichen. Die Sender-ID wird auf dem Empfänger-Gerät als Sender der Nachricht angezeigt. Sie können z. B. Ihre Unternehmensmarke verwenden, um die Nachrichtenquelle leichter erkennbar zu machen.  
Die Support für den Absender IDs ist je nach Land oder Region unterschiedlich. Beispiel: Für Nachrichten, die an eine US-Telefonnummer gesendet werden, wird keine Sender-ID angezeigt. Eine Liste der Länder oder Regionen, die Absender unterstützen IDs, finden Sie AWS End User Messaging SMS im *AWS End User Messaging SMS Benutzerhandbuch* unter [Unterstützte Länder und Regionen für SMS-Nachrichten mit](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).  
Wenn Sie keine Sender-ID angeben, erscheint eine [Langwahlnummer](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-long-code.html) als Sender-ID in den unterstützten Ländern oder Regionen. Für Länder oder Regionen, die eine alphabetische Sender-ID erfordern, wird *NOTICE* als Sender-ID angezeigt.  
Dieses Attribut auf Nachrichtenebene ersetzt das `DefaultSenderID`-Attribut auf Kontoebene, das Sie bei der Nutzung der `SetSMSAttributes`-Anfrage festlegen.

**`AWS.MM.SMS.OriginationNumber`**  
Eine benutzerdefinierte Zeichenfolge von 5 bis 14 Zahlen, die ein optionales vorzeitiges Pluszeichen (`+`) enthalten. Diese Zahlenfolge wird als Telefonnummer des Senders auf dem empfangenden Gerät angezeigt. Die Zeichenfolge muss mit einer Ausgangsnummer übereinstimmen, die in Ihrem AWS Konto für das Zielland konfiguriert ist. Bei der Ausgangsnummer kann es sich um eine 10DLC-Nummer, eine gebührenfreie Nummer, einen person-to-person (P2P) -Langcode oder einen Kurzcode handeln. *Weitere Informationen finden Sie im Benutzerhandbuch unter [Telefonnummern](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html).AWS End User Messaging SMS *  
Wenn Sie keine Ursprungsnummer angeben, wählt Amazon SNS auf der Grundlage Ihrer AWS Kontokonfiguration eine Ursprungsnummer aus.

**`AWS.SNS.SMS.MaxPrice`**  
Höchstpreis in USD, den Sie zu zahlen bereit sind, um die SMS-Nachricht zu senden. Wenn Amazon SNS festlegt, dass das Senden der Nachricht zu Kosten führen würde, die Ihren Maximalpreis übersteigen, wird die Nachricht nicht gesendet.  
Dieses Attribut hat keine Auswirkung, wenn Ihre month-to-date SMS-Kosten das für das Attribut festgelegte Kontingent bereits überschritten haben. `MonthlySpendLimit` Sie können das `MonthlySpendLimit`-Attribut mit der `SetSMSAttributes`-Anfrage festlegen.  
Wenn Sie die Nachricht an ein Amazon SNS-Thema senden, gilt bei jeder Nachrichtenübertragung an alle Telefonnummern, die das Thema abonniert haben, der Höchstpreis.

**`AWS.SNS.SMS.SMSType`**  
Der Typ der gesendeten Nachricht:  
+ **`Promotional`** (Standard): Unkritische Nachrichten, wie beispielsweise Marketing-Nachrichten. 
+ **`Transactional`** – Sensible Nachrichten, die Kundentransaktionen unterstützen, wie beispielsweise One-Time-Passcodes für eine Multi-Faktor-Authentifizierung. 
Dieses Attribut auf Nachrichtenebene ersetzt das `DefaultSMSType`-Attribut auf Kontoebene, das Sie bei der Nutzung der `SetSMSAttributes`-Anfrage festlegen.

**`AWS.MM.SMS.EntityId`**  
Dieses Attribut ist nur für das Senden von SMS-Nachrichten an Empfänger in Indien erforderlich.  
Das ist Ihre Entity ID oder Principal Entity (PE) -ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige Zeichenfolge von 1 bis 50 Zeichen, die die Telecom Regulatory Authority of India (TRAI) zur Identifizierung der Entität bereitstellt, die Sie bei der TRAI registriert haben.

**`AWS.MM.SMS.TemplateId`**  
Dieses Attribut ist nur für das Senden von SMS-Nachrichten an Empfänger in Indien erforderlich.  
Dies ist Ihre Vorlage für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige, von TRAI bereitgestellte Zeichenfolge mit 1 bis 50 Zeichen, die die Vorlage identifiziert, die Sie bei TRAI registriert haben. Die Vorlagen-ID muss der Sender-ID zugeordnet sein, die Sie für die Nachricht angegeben haben.

#### Senden einer Nachricht
<a name="sms_publish_sdks"></a>

In den folgenden Codebeispielen wird veranschaulicht, wie Sie SMS-Nachrichten über Amazon SNS veröffentlichen.

------
#### [ .NET ]

**SDK für .NET**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples) einrichten und ausführen. 

```
namespace SNSMessageExample
{
    using System;
    using System.Threading.Tasks;
    using Amazon;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    public class SNSMessage
    {
        private AmazonSimpleNotificationServiceClient snsClient;

        /// <summary>
        /// Initializes a new instance of the <see cref="SNSMessage"/> class.
        /// Constructs a new SNSMessage object initializing the Amazon Simple
        /// Notification Service (Amazon SNS) client using the supplied
        /// Region endpoint.
        /// </summary>
        /// <param name="regionEndpoint">The Amazon Region endpoint to use in
        /// sending test messages with this object.</param>
        public SNSMessage(RegionEndpoint regionEndpoint)
        {
            snsClient = new AmazonSimpleNotificationServiceClient(regionEndpoint);
        }

        /// <summary>
        /// Sends the SMS message passed in the text parameter to the phone number
        /// in phoneNum.
        /// </summary>
        /// <param name="phoneNum">The ten-digit phone number to which the text
        /// message will be sent.</param>
        /// <param name="text">The text of the message to send.</param>
        /// <returns>Async task.</returns>
        public async Task SendTextMessageAsync(string phoneNum, string text)
        {
            if (string.IsNullOrEmpty(phoneNum) || string.IsNullOrEmpty(text))
            {
                return;
            }

            // Now actually send the message.
            var request = new PublishRequest
            {
                Message = text,
                PhoneNumber = phoneNum,
            };

            try
            {
                var response = await snsClient.PublishAsync(request);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error sending message: {ex}");
            }
        }
    }
}
```
+  Weitere API-Informationen finden Sie unter [Publish](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Publish) in der *AWS SDK für .NET -API-Referenz*. 

------
#### [ C\$1\$1 ]

**SDK für C\$1\$1**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples) einrichten und ausführen. 

```
/**
 * Publish SMS: use Amazon Simple Notification Service (Amazon SNS) to send an SMS text message to a phone number.
 * Note: This requires additional AWS configuration prior to running example. 
 * 
 *  NOTE: When you start using Amazon SNS to send SMS messages, your AWS account is in the SMS sandbox and you can only
 *  use verified destination phone numbers. See https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html.
 *  NOTE: If destination is in the US, you also have an additional restriction that you have use a dedicated
 *  origination ID (phone number). You can request an origination number using Amazon Pinpoint for a fee.
 *  See https://aws.amazon.com/blogs/compute/provisioning-and-using-10dlc-origination-numbers-with-amazon-sns/ 
 *  for more information. 
 * 
 *  <phone_number_value> input parameter uses E.164 format. 
 *  For example, in United States, this input value should be of the form: +12223334444
 */

//! Send an SMS text message to a phone number.
/*!
  \param message: The message to publish.
  \param phoneNumber: The phone number of the recipient in E.164 format.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::publishSms(const Aws::String &message,
                             const Aws::String &phoneNumber,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::PublishRequest request;
    request.SetMessage(message);
    request.SetPhoneNumber(phoneNumber);

    const Aws::SNS::Model::PublishOutcome outcome = snsClient.Publish(request);

    if (outcome.IsSuccess()) {
        std::cout << "Message published successfully with message id, '"
                  << outcome.GetResult().GetMessageId() << "'."
                  << std::endl;
    }
    else {
        std::cerr << "Error while publishing message "
                  << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Weitere API-Informationen finden Sie unter [Publish](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Publish) in der *AWS SDK für C\$1\$1 -API-Referenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
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);
        }
    }
}
```
+  Weitere API-Informationen finden Sie unter [Publish](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Publish) in der *AWS SDK for Java 2.x -API-Referenz*. 

------
#### [ Kotlin ]

**SDK für Kotlin**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples) einrichten und ausführen. 

```
suspend fun pubTextSMS(
    messageVal: String?,
    phoneNumberVal: String?,
) {
    val request =
        PublishRequest {
            message = messageVal
            phoneNumber = phoneNumberVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.publish(request)
        println("${result.messageId} message sent.")
    }
}
```
+  Weitere API-Informationen finden Sie unter [Publish](https://sdk.amazonaws.com/kotlin/api/latest/index.html) in der *API-Referenz zum AWS  SDK für Kotlin*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Sends a text message (SMS message) directly to a phone number using Amazon SNS.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere Informationen finden Sie im [AWS SDK für PHP -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#publish-to-a-text-message-sms-message). 
+  Weitere API-Informationen finden Sie unter [Publish](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Publish) in der *AWS SDK für PHP -API-Referenz*. 

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples) einrichten und ausführen. 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    def publish_text_message(self, phone_number, message):
        """
        Publishes a text message directly to a phone number without need for a
        subscription.

        :param phone_number: The phone number that receives the message. This must be
                             in E.164 format. For example, a United States phone
                             number might be +12065550101.
        :param message: The message to send.
        :return: The ID of the message.
        """
        try:
            response = self.sns_resource.meta.client.publish(
                PhoneNumber=phone_number, Message=message
            )
            message_id = response["MessageId"]
            logger.info("Published message to %s.", phone_number)
        except ClientError:
            logger.exception("Couldn't publish message to %s.", phone_number)
            raise
        else:
            return message_id
```
+  Weitere API-Informationen finden Sie unter [Publish](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Publish) in der *API-Referenz zu AWS  SDK für Python (Boto3)*. 

------
#### [ SAP ABAP ]

**SDK für SAP ABAP**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples) einrichten und ausführen. 

```
    " iv_phone_number = '+12065550101' - Phone number in E.164 format
    TRY.
        oo_result = lo_sns->publish(              " oo_result is returned for testing purposes. "
          iv_phonenumber = iv_phone_number
          iv_message = iv_message ).
        MESSAGE 'Message published to phone number.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Phone number does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Details zu API finden Sie unter [Publish](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) (Veröffentlichen) in der *API-Referenz für das AWS SDK für SAP ABAP*. 

------

# Einstellungen für SMS-Nachrichten in Amazon SNS einrichten
<a name="sms_preferences"></a>

Verwenden Sie Amazon SNS, um Einstellungen für SMS-Messaging anzugeben. Sie können beispielsweise festlegen, ob Zustellung zu Kosten oder zur Zuverlässigkeit optimiert werden, Ihr monatliches Ausgabelimit, wie Zustellungen protokolliert werden und ob Sie tägliche SMS-Nutzungsberichte erhalten möchten.

Diese Einstellungen gelten für jede SMS-Nachricht, die Sie von Ihrem Konto senden. Sie können jedoch auch beim Senden einer einzelnen Nachricht überschrieben werden. Weitere Informationen finden Sie unter [Veröffentlichen von SMS-Nachrichten auf einem Mobiltelefon mithilfe von Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Einstellung der Einstellungen für SMS-Nachrichten mithilfe der AWS-Managementkonsole
<a name="sms_preferences_console"></a>

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie eine [Region aus, die SMS-Messaging unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Mobil** und dann **Textnachrichten (SMS)** aus.

1. Wählen Sie auf der Seite **Mobile text messaging (SMS) (Mobile Texttnachrichten (SMS))** im Abschnitt **Text messaging preferences (Textnachrichteneinstellungen)** die Option **Edit (Bearbeiten)** aus.

1. Führen Sie auf der Seite **Edit text messaging preferences (SMS-Einstellungen bearbeiten)** im Abschnitt **Details** Folgendes durch:

   1. Wählen Sie für **Default message type (Standardnachrichtentyp)** eine der folgenden Optionen aus:
      + **Werbenachrichten** – Nicht kritische Nachrichten (zum Beispiel Marketing). Amazon SNS optimiert die Übertragung von Nachrichten im Hinblick auf möglichst niedrige Kosten.
      + **Transaktionsnachrichten** (Standard) – Kritische Nachrichten, die Kundentransaktionen unterstützen, wie beispielsweise One-Time-Passcodes für eine Multi-Faktor-Authentifizierung (MFA). Amazon SNS optimiert die Übertragung von Nachrichten im Hinblick auf höchste Zuverlässigkeit.

      Informationen zu den Gebühren für Aktions- und Transaktionsnachrichten finden Sie unter [Global SMS Pricing](https://aws.amazon.com/sns/sms-pricing/).

   1. (Optional) Geben Sie für **Account spend limit (Kontoausgabenlimit)** den Betrag in US-Dollar ein, den Sie pro Kalendermonat für SMS-Nachrichten ausgeben möchten.
**Wichtig**  
Standardmäßig ist das Ausgabenkontingent auf 1,00 US-Dollar festgelegt. Wenn Sie das Service-Kontingent erhöhen möchten, [senden Sie eine Anfrage](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Wenn die in der Konsole festgelegte Menge Ihr Service-Kontingent überschreitet, stoppt Amazon SNS die Veröffentlichung von SMS-Nachrichten.
Da Amazon SNS ein verteiltes System ist, beendet es das Senden von SMS-Nachrichten innerhalb von einigen Minuten nach der Überschreitung des Ausgabenkontingents. Wenn Sie während dieses Zeitraums weiter SMS-Nachrichten senden, können Kosten entstehen, die Ihr Kontingent überschreiten.

1. (Optional) Geben Sie im Feld **Default sender ID (Standard-Sender-ID)** eine benutzerdefinierte ID ein, wie z. B. Ihr Unternehmen, die als Sender des Empfängergeräts angezeigt wird.
**Anmerkung**  
Die Support für den Absender IDs ist je nach Land unterschiedlich.

1. (Optional) Geben Sie den Namen des **Amazon S3 Bucket Namen für Nutzungsberichte ein.**
**Anmerkung**  
Die Amazon S3 S3-Bucket-Richtlinie muss Schreibzugriff auf Amazon SNS gewähren.

1. Wählen Sie **Änderungen speichern ** aus.

## Einstellungen festlegen ()AWS SDKs
<a name="sms_preferences_sdk"></a>

Um Ihre SMS-Einstellungen mithilfe einer der festzulegen AWS SDKs, verwenden Sie die Aktion in diesem SDK, die der `SetSMSAttributes` Anfrage in der Amazon SNS SNS-API entspricht. Mit dieser Anforderung können Sie Werte zu den verschiedenen SMS-Attributen zuweisen – beispielsweise das monatliche Ausgabenkontingent und Ihren Standard-SMS-Typ (Werbung oder Transaktionen). Informationen zu allen SMS-Attributen finden Sie unter [Set SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) in der *Amazon Simple Notification Service API-Referenz*.

Die folgenden Code-Beispiele zeigen, wie `SetSMSAttributes` verwendet wird.

------
#### [ C\$1\$1 ]

**SDK für C\$1\$1**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples) einrichten und ausführen. 
So verwenden Sie Amazon SNS, um das SMSType Standardattribut festzulegen.  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Einzelheiten zur API finden Sie unter [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) in der *AWS SDK für C\$1\$1 API-Referenz.* 

------
#### [ CLI ]

**AWS CLI**  
**So legen Sie SMS-Nachrichtenattribute fest**  
Im folgenden Beispiel für `set-sms-attributes` wird die standardmäßige Absender-ID für SMS-Nachrichten auf `MyName` festgelegt.  

```
aws sns set-sms-attributes \
    --attributes DefaultSenderID=MyName
```
Mit diesem Befehl wird keine Ausgabe zurückgegeben.  
+  Einzelheiten zur API finden Sie unter [Set SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) in der *AWS CLI Befehlsreferenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
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);
        }
    }
}
```
+  Einzelheiten zur API finden Sie unter [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) in der *AWS SDK for Java 2.x API-Referenz*. 

------
#### [ JavaScript ]

**SDK für JavaScript (v3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples) einrichten und ausführen. 
Erstellen Sie den Client in einem separaten Modul und exportieren Sie ihn.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importieren Sie das SDK- und Client-Module und rufen Sie die API auf.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Weitere Informationen finden Sie im [AWS SDK für JavaScript -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Einzelheiten zur API finden Sie unter [Set SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) in der *AWS SDK für JavaScript API-Referenz*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere Informationen finden Sie im [AWS SDK für PHP -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#set-sms-attributes). 
+  Einzelheiten zur API finden Sie unter [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) in der *AWS SDK für PHP API-Referenz*. 

------

## Einstellung der SMS-Nachrichteneinstellungen für die länderspezifische Zustellung
<a name="sms_preferences_country_specific"></a>

Sie können Ihren SMS-Verkehr verwalten und kontrollieren, indem Sie Nachrichten nur an bestimmte Zielländer senden. Dadurch wird sichergestellt, dass Ihre Nachrichten nur in zugelassene Länder gesendet werden, wodurch unerwünschte SMS-Gebühren vermieden werden. Die folgenden Anweisungen verwenden die Protect-Konfiguration von Amazon Pinpoint, um die Länder anzugeben, die Sie zulassen oder blockieren möchten.

1. Öffnen Sie die AWS SMS Konsole unter. [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/)

1. Wählen Sie im Navigationsbereich unter **Übersicht** im Abschnitt **Schnellstart** die Option **Create a protect configuration** aus.

1. Geben Sie unter **Protect-Konfigurationsdetails** einen **unternehmensfreundlichen Namen** für Ihre Protect-Konfiguration ein (z. B. Allow-Only-AU).

1. Wählen Sie unter **SMS-Länderregeln** das Kontrollkästchen **Region/Land** aus, um das Senden von Nachrichten in alle unterstützten Länder zu blockieren.

1. Deaktivieren Sie die Kontrollkästchen für die Länder, in die Sie Nachrichten senden möchten. Um beispielsweise nur Nachrichten nach Australien zuzulassen, deaktivieren Sie das Kontrollkästchen für **Australien**.

1. Wählen **Sie im Abschnitt Konfigurationszuordnungen schützen** unter **Zuordnungstyp** die Option **Kontostandard** aus. Dadurch wird sichergestellt, dass sich die AWS End User Messaging SMS Protect-Konfiguration auf alle Nachrichten auswirkt, die über Amazon SNS, [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) und den Amazon Pinpoint [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)API-Aufruf gesendet werden.

1. Wählen Sie **Create Protect configuration aus, um Ihre Einstellungen** zu speichern.

   Die folgende Bestätigungsmeldung wird angezeigt:

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. [**Veröffentlichen Sie eine Nachricht**](sns-publishing.md) in einem der blockierten Länder, z. B. Indien.

   Die Nachricht wird nicht zugestellt. Sie können dies in den Zustellungsfehlerprotokollen mit überprüfen [CloudWatch](sms_stats_cloudwatch.md). Suchen Sie nach einer Protokollgruppe **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**für eine Antwort, die dem folgenden Beispiel ähnelt:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```

# Verwaltung von Amazon SNS SNS-Telefonnummern und Abonnements
<a name="sms_manage"></a>

Amazon SNS bietet mehrere Optionen, mit denen Sie verwalten können, wer von Ihrem Konto SMS-Nachrichten erhält. Unter Berücksichtigung einer begrenzten Häufigkeit können Sie Telefonnummern, die den Empfang von SMS-Nachrichten von Ihrem Konto deaktiviert haben, hinzufügen. Um Nachrichten nicht länger an SMS-Abonnements zu senden, können Sie die Abonnements oder die Themen, die an diese Abonnements veröffentlichen, entfernen.

## Deaktivieren des Empfangs von SMS-Nachrichten
<a name="sms_manage_optout"></a>

Sofern dies nach lokalen Gesetzen und Vorschriften (z. B. in den USA und Kanada) erforderlich ist, können SMS-Empfänger ihre Geräte verwenden, um sich abzumelden, indem sie auf die Nachricht mit einer der folgenden Antworten antworten: 
+ ARRET (Französisch)
+ CANCEL
+ END
+ OPT-OUT
+ OPTOUT
+ QUIT
+ REMOVE
+ STOP
+ TD
+ UNSUBSCRIBE

Um sich abzumelden, muss der Empfänger auf dieselbe [Absendernummer](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) antworten, die Amazon SNS für die Zustellung der Nachricht verwendet hat. Nach der Abmeldung erhält der Empfänger keine SMS-Nachrichten mehr von Ihnen, AWS-Konto es sei denn, Sie geben die Telefonnummer an.

Wenn die Telefonnummer ein Amazon SNS SNS-Thema abonniert hat, wird das Abonnement durch die Abmeldung nicht entfernt, aber SMS-Nachrichten können dieses Abonnement nicht zugestellt werden, es sei denn, Sie haben die Telefonnummer aktiviert.

## Verwaltung von Telefonnummern und Abonnements mit der Amazon SNS SNS-Konsole
<a name="sms_manage_console"></a>

Sie können über die Amazon SNS-Konsole steuern, welche Telefonnummern SMS-Nachrichten von Ihrem Konto empfangen.

### Anmeldung einer Telefonnummer, für die die Amazon SNS-Konsole deaktiviert wurde
<a name="sms_manage_optout_console"></a>

Sie können sehen, welche Telefonnummern für den Empfang von SMS-Nachrichten von Ihrem Konto deaktiviert wurden, und Sie können diese Telefonnummern aktivieren, um weiterhin Nachrichten an diese Personen zu senden.

Sie können sich nur einmal alle 30 Tage für eine Telefonnummer anmelden.

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Legen Sie im Konsolenmenü unter der Regionsauswahl eine [-Region fest, die SMS-Messaging unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Text messaging (SMS) (Textnachrichten (SMS))** aus.

1. Auf der Seite **SMS (Mobile Textnachrichten)** werden **im Abschnitt Abgemeldete Telefonnummern** angezeigt.

1. **Aktivieren Sie das Kontrollkästchen für die Telefonnummer, für die Sie sich anmelden möchten, und wählen Sie Anmelden.** Die Telefonnummer ist nicht mehr deaktiviert und empfängt SMS-Nachrichten, die Sie an sie senden.

#### Löschen eines SMS-Abonnements: Die Amazon SNS SNS-Konsole
<a name="sms_manage_subscriptions_console"></a>

Löschen Sie ein SMS-Abonnement, um nicht länger SMS-Nachrichten über Veröffentlichungen zu Ihren Themen an diese Telefonnummer zu senden.

1. Wählen Sie im Navigationsbereich **Subscriptions** (Abonnements) aus.

1. Aktivieren Sie die Kontrollkästchen für die Abonnements, die Sie löschen möchten. Wählen Sie anschließend **Actions (Aktionen)** und **Delete Subscriptions (Abonnements löschen)** aus.

1. Wählen Sie im Fenster **Löschen** **Löschen** aus. Amazon SNS löscht das Abonnement und zeigt eine Erfolgsmeldung an.

#### Löschen eines Themas in der Amazon SNS SNS-Konsole
<a name="sms_manage_topic_console"></a>

Löschen Sie ein Thema, wenn Sie nicht länger Nachrichten an die Endpunkte veröffentlichen möchten, die dieses Thema abonniert haben.

1. Wählen Sie im Navigationsbereich **Topics** (Themen) aus.

1. Aktivieren Sie die Kontrollkästchen der Themen, die Sie löschen möchten. Wählen Sie anschließend **Actions (Aktionen)** und **Delete Topics (Themen löschen)** aus.

1. Wählen Sie im Fenster **Löschen** **Löschen** aus. Amazon SNS löscht das Thema und zeigt eine Erfolgsmeldung an.

### Verwaltung von Telefonnummern und Abonnements mithilfe des SDK AWS
<a name="sms_manage_sdk"></a>

Sie können den verwenden AWS SDKs , um programmatische Anfragen an Amazon SNS zu stellen und zu verwalten, welche Telefonnummern SMS-Nachrichten von Ihrem Konto empfangen können.

Um ein AWS SDK verwenden zu können, müssen Sie es mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter [Gemeinsam genutzte Konfigurations- und Anmeldeinformationsdateien](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) im Referenzhandbuch *AWS SDKs und im Tools-Referenzhandbuch*.

#### Alle Telefonnummern, für die Sie sich abgemeldet haben, mithilfe des SDK anzeigen AWS
<a name="sms_view_optout_sdk"></a>

Um alle abgemeldeten Telefonnummern einzusehen, reichen Sie eine `ListPhoneNumbersOptedOut` Anfrage mit der Amazon SNS SNS-API ein.

Die folgenden Code-Beispiele zeigen, wie `ListPhoneNumbersOptedOut` verwendet wird.

------
#### [ CLI ]

**AWS CLI**  
**So führen Sie Abmeldungen für SMS-Nachrichten auf**  
Das folgende `list-phone-numbers-opted-out`-Beispiel listet die Telefonnummern auf, bei denen der Empfang von SMS-Nachrichten abbestellt wurde.  

```
aws sns list-phone-numbers-opted-out
```
Ausgabe:  

```
{
    "phoneNumbers": [
        "+15555550100"
    ]
}
```
+  *Einzelheiten zur API finden Sie in der Befehlsreferenz [ListPhoneNumbersOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-phone-numbers-opted-out.html).AWS CLI * 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutRequest;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutResponse;
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 ListOptOut {
    public static void main(String[] args) {
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        listOpts(snsClient);
        snsClient.close();
    }

    public static void listOpts(SnsClient snsClient) {
        try {
            ListPhoneNumbersOptedOutRequest request = ListPhoneNumbersOptedOutRequest.builder().build();
            ListPhoneNumbersOptedOutResponse result = snsClient.listPhoneNumbersOptedOut(request);
            System.out.println("Status is " + result.sdkHttpResponse().statusCode() + "\n\nPhone Numbers: \n\n"
                    + result.phoneNumbers());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Einzelheiten zur API finden Sie [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/ListPhoneNumbersOptedOut)in der *AWS SDK for Java 2.x API-Referenz*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Returns a list of phone numbers that are opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->listPhoneNumbersOptedOut();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere Informationen finden Sie im [AWS SDK für PHP -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#list-opted-out-phone-numbers). 
+  Einzelheiten zur API finden Sie [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/ListPhoneNumbersOptedOut)in der *AWS SDK für PHP API-Referenz*. 

------

#### Mithilfe des SDK wird überprüft, ob eine Telefonnummer deaktiviert wurde AWS
<a name="sms_check_optout_sdk"></a>

Um zu überprüfen, ob eine Telefonnummer deaktiviert ist, reichen Sie eine `CheckIfPhoneNumberIsOptedOut` Anfrage mit der Amazon SNS SNS-API ein.

Die folgenden Code-Beispiele zeigen, wie `CheckIfPhoneNumberIsOptedOut` verwendet wird.

------
#### [ .NET ]

**SDK für .NET**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples) einrichten und ausführen. 

```
    using System;
    using System.Threading.Tasks;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    /// <summary>
    /// This example shows how to use the Amazon Simple Notification Service
    /// (Amazon SNS) to check whether a phone number has been opted out.
    /// </summary>
    public class IsPhoneNumOptedOut
    {
        public static async Task Main()
        {
            string phoneNumber = "+15551112222";

            IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient();

            await CheckIfOptedOutAsync(client, phoneNumber);
        }

        /// <summary>
        /// Checks to see if the supplied phone number has been opted out.
        /// </summary>
        /// <param name="client">The initialized Amazon SNS Client object used
        /// to check if the phone number has been opted out.</param>
        /// <param name="phoneNumber">A string representing the phone number
        /// to check.</param>
        public static async Task CheckIfOptedOutAsync(IAmazonSimpleNotificationService client, string phoneNumber)
        {
            var request = new CheckIfPhoneNumberIsOptedOutRequest
            {
                PhoneNumber = phoneNumber,
            };

            try
            {
                var response = await client.CheckIfPhoneNumberIsOptedOutAsync(request);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    string optOutStatus = response.IsOptedOut ? "opted out" : "not opted out.";
                    Console.WriteLine($"The phone number: {phoneNumber} is {optOutStatus}");
                }
            }
            catch (AuthorizationErrorException ex)
            {
                Console.WriteLine($"{ex.Message}");
            }
        }
    }
```
+  Einzelheiten zur API finden Sie [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)in der *AWS SDK für .NET API-Referenz*. 

------
#### [ CLI ]

**AWS CLI**  
**So überprüfen Sie SMS-Nachrichten-Abmeldungen für eine Telefonnummer**  
Im folgenden `check-if-phone-number-is-opted-out` Beispiel wird geprüft, ob die angegebene Telefonnummer den Empfang von SMS-Nachrichten vom AWS Girokonto deaktiviert hat.  

```
aws sns check-if-phone-number-is-opted-out \
    --phone-number +1555550100
```
Ausgabe:  

```
{
    "isOptedOut": false
}
```
+  Einzelheiten zur API finden Sie [CheckIfPhoneNumberIsOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/check-if-phone-number-is-opted-out.html)unter *AWS CLI Befehlsreferenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutRequest;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutResponse;
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 CheckOptOut {
    public static void main(String[] args) {

        final String usage = """

                Usage:    <phoneNumber>

                Where:
                   phoneNumber - The mobile phone number to look up (for example, +1XXX5550100).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String phoneNumber = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        checkPhone(snsClient, phoneNumber);
        snsClient.close();
    }

    public static void checkPhone(SnsClient snsClient, String phoneNumber) {
        try {
            CheckIfPhoneNumberIsOptedOutRequest request = CheckIfPhoneNumberIsOptedOutRequest.builder()
                    .phoneNumber(phoneNumber)
                    .build();

            CheckIfPhoneNumberIsOptedOutResponse result = snsClient.checkIfPhoneNumberIsOptedOut(request);
            System.out.println(
                    result.isOptedOut() + "Phone Number " + phoneNumber + " has Opted Out of receiving sns messages." +
                            "\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Einzelheiten zur API finden Sie [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)in der *AWS SDK for Java 2.x API-Referenz*. 

------
#### [ JavaScript ]

**SDK für JavaScript (v3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples) einrichten und ausführen. 
Erstellen Sie den Client in einem separaten Modul und exportieren Sie ihn.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importieren Sie das SDK- und Client-Module und rufen Sie die API auf.  

```
import { CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns";

import { snsClient } from "../libs/snsClient.js";

export const checkIfPhoneNumberIsOptedOut = async (
  phoneNumber = "5555555555",
) => {
  const command = new CheckIfPhoneNumberIsOptedOutCommand({
    phoneNumber,
  });

  const response = await snsClient.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '3341c28a-cdc8-5b39-a3ee-9fb0ee125732',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   isOptedOut: false
  // }
  return response;
};
```
+  Weitere Informationen finden Sie im [AWS SDK für JavaScript -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-checkifphonenumberisoptedout). 
+  Einzelheiten zur API finden Sie [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/CheckIfPhoneNumberIsOptedOutCommand)in der *AWS SDK für JavaScript API-Referenz*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Indicates whether the phone number owner has opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$phone = '+1XXX5550100';

try {
    $result = $SnSclient->checkIfPhoneNumberIsOptedOut([
        'phoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere Informationen finden Sie im [AWS SDK für PHP -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#check-if-a-phone-number-has-opted-out). 
+  Einzelheiten zur API finden Sie [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)in der *AWS SDK für PHP API-Referenz*. 

------

#### Anmeldung einer Telefonnummer, die über die Amazon SNS-API deaktiviert wurde
<a name="sms_manage_optin_sdk"></a>

Um sich für eine Telefonnummer anzumelden, reichen Sie eine `OptInPhoneNumber` Anfrage mit der Amazon SNS SNS-API ein.

Sie können sich nur einmal alle 30 Tage für eine Telefonnummer anmelden.

#### Löschen eines SMS-Abonnements mithilfe des SDK AWS
<a name="sms_manage_subscriptions_sdk"></a>

Um ein SMS-Abonnement von einem Amazon SNS-Thema zu löschen, müssen Sie zunächst anhand einer `ListSubscriptions`-Anfrage über das Amazon SNS-API den ARN des Abonnements abrufen und anschließend den ARN einer `Unsubscribe`-Anfrage übergeben.

Die folgenden Code-Beispiele zeigen, wie `Unsubscribe` verwendet wird.

------
#### [ .NET ]

**SDK für .NET**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples) einrichten und ausführen. 
Melden Sie sich mit einem Abonnement-ARN von einem Thema ab.  

```
    /// <summary>
    /// Unsubscribe from a topic by a subscription ARN.
    /// </summary>
    /// <param name="subscriptionArn">The ARN of the subscription.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> UnsubscribeByArn(string subscriptionArn)
    {
        var unsubscribeResponse = await _amazonSNSClient.UnsubscribeAsync(
            new UnsubscribeRequest()
            {
                SubscriptionArn = subscriptionArn
            });
        return unsubscribeResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Unsubscribe) in der *AWS SDK für .NET -API-Referenz*. 

------
#### [ C\$1\$1 ]

**SDK für C\$1\$1**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples) einrichten und ausführen. 

```
//! Delete a subscription to an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param subscriptionARN: The Amazon Resource Name (ARN) for an Amazon SNS topic subscription.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::unsubscribe(const Aws::String &subscriptionARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::UnsubscribeRequest request;
    request.SetSubscriptionArn(subscriptionARN);

    const Aws::SNS::Model::UnsubscribeOutcome outcome = snsClient.Unsubscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Unsubscribed successfully " << std::endl;
    }
    else {
        std::cerr << "Error while unsubscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Unsubscribe) in der *AWS SDK für C\$1\$1 -API-Referenz*. 

------
#### [ CLI ]

**AWS CLI**  
**So melden Sie sich von einem Thema ab**  
Im folgenden Beispiel für `unsubscribe` wird das angegebene Abonnement aus einem Thema gelöscht.  

```
aws sns unsubscribe \
    --subscription-arn arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f
```
Mit diesem Befehl wird keine Ausgabe zurückgegeben.  
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/unsubscribe.html) in der *AWS CLI -Befehlsreferenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
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.UnsubscribeRequest;
import software.amazon.awssdk.services.sns.model.UnsubscribeResponse;

/**
 * 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 Unsubscribe {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <subscriptionArn>

                Where:
                   subscriptionArn - The ARN of the subscription to delete.
                """;

        if (args.length < 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String subscriptionArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        unSub(snsClient, subscriptionArn);
        snsClient.close();
    }

    public static void unSub(SnsClient snsClient, String subscriptionArn) {
        try {
            UnsubscribeRequest request = UnsubscribeRequest.builder()
                    .subscriptionArn(subscriptionArn)
                    .build();

            UnsubscribeResponse result = snsClient.unsubscribe(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()
                    + "\n\nSubscription was removed for " + request.subscriptionArn());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Unsubscribe) in der *AWS SDK for Java 2.x -API-Referenz*. 

------
#### [ JavaScript ]

**SDK für JavaScript (v3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples) einrichten und ausführen. 
Erstellen Sie den Client in einem separaten Modul und exportieren Sie ihn.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importieren Sie das SDK- und Client-Module und rufen Sie die API auf.  

```
import { UnsubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} subscriptionArn - The ARN of the subscription to cancel.
 */
const unsubscribe = async (
  subscriptionArn = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
) => {
  const response = await snsClient.send(
    new UnsubscribeCommand({
      SubscriptionArn: subscriptionArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '0178259a-9204-507c-b620-78a7570a44c6',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Weitere Informationen finden Sie im [AWS SDK für JavaScript -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-unsubscribing). 
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/UnsubscribeCommand) in der *AWS SDK für JavaScript -API-Referenz*. 

------
#### [ Kotlin ]

**SDK für Kotlin**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples) einrichten und ausführen. 

```
suspend fun unSub(subscriptionArnVal: String) {
    val request =
        UnsubscribeRequest {
            subscriptionArn = subscriptionArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.unsubscribe(request)
        println("Subscription was removed for ${request.subscriptionArn}")
    }
}
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://sdk.amazonaws.com/kotlin/api/latest/index.html) in der *API-Referenz zum AWS  SDK für Kotlin*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes a subscription to an Amazon SNS topic.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription';

try {
    $result = $SnSclient->unsubscribe([
        'SubscriptionArn' => $subscription,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere Informationen finden Sie im [AWS SDK für PHP -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-subscribing-unsubscribing-topics.html#unsubscribe-from-a-topic). 
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Unsubscribe) in der *AWS SDK für PHP -API-Referenz*. 

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples) einrichten und ausführen. 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_subscription(subscription):
        """
        Unsubscribes and deletes a subscription.
        """
        try:
            subscription.delete()
            logger.info("Deleted subscription %s.", subscription.arn)
        except ClientError:
            logger.exception("Couldn't delete subscription %s.", subscription.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def unsubscribe(self, subscription_arn: str) -> bool:
        """
        Unsubscribe from an SNS topic.

        :param subscription_arn: The ARN of the subscription to remove.
        :return: True if successful.
        :raises ClientError: If the unsubscribe operation fails.
        """
        try:
            self.sns_client.unsubscribe(SubscriptionArn=subscription_arn)
            
            logger.info(f"Unsubscribed: {subscription_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Subscription not found: {subscription_arn}")
                return True  # Already unsubscribed
            else:
                logger.error(f"Error unsubscribing: {error_code} - {e}")
                raise
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Unsubscribe) in der *API-Referenz zu AWS  SDK für Python (Boto3)*. 

------
#### [ SAP ABAP ]

**SDK für SAP ABAP**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples) einrichten und ausführen. 

```
    TRY.
        lo_sns->unsubscribe( iv_subscriptionarn = iv_subscription_arn ).
        MESSAGE 'Subscription deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Subscription does not exist.' TYPE 'E'.
      CATCH /aws1/cx_snsinvalidparameterex.
        MESSAGE 'Subscription with "PendingConfirmation" status cannot be deleted/unsubscribed. Confirm subscription before performing unsubscribe operation.' TYPE 'E'.
    ENDTRY.
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) in der *API-Referenz zum AWS SDK für SAP ABAP*. 

------
#### [ Swift ]

**SDK für Swift**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples) einrichten und ausführen. 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.unsubscribe(
            input: UnsubscribeInput(
                subscriptionArn: arn
            )
        )

        print("Unsubscribed.")
```
+  Weitere API-Informationen finden Sie unter [Unsubscribe](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/unsubscribe(input:)) in der *API-Referenz zum AWS -SDK für Swift*. 

------

#### Löschen eines Themas mithilfe des AWS SDK
<a name="sms_manage_topic_sdk"></a>

Um ein Thema und alle seine Abonnements zu löschen, müssen Sie zunächst anhand einer `ListTopics`-Anfrage über die Amazon SNS-API den ARN des Abonnements einholen und anschließend den ARN einer `DeleteTopic`-Anfrage übergeben.

Die folgenden Code-Beispiele zeigen, wie `DeleteTopic` verwendet wird.

------
#### [ .NET ]

**SDK für .NET**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples) einrichten und ausführen. 
Löschen Sie ein Thema mit seinem Themen-ARN.  

```
    /// <summary>
    /// Delete a topic by its topic ARN.
    /// </summary>
    /// <param name="topicArn">The ARN of the topic.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> DeleteTopicByArn(string topicArn)
    {
        var deleteResponse = await _amazonSNSClient.DeleteTopicAsync(
            new DeleteTopicRequest()
            {
                TopicArn = topicArn
            });
        return deleteResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/DeleteTopic)in der *AWS SDK für .NET API-Referenz*. 

------
#### [ C\$1\$1 ]

**SDK für C\$1\$1**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples) einrichten und ausführen. 

```
//! Delete an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param topicARN: The Amazon Resource Name (ARN) for an Amazon SNS topic.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::deleteTopic(const Aws::String &topicARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::DeleteTopicRequest request;
    request.SetTopicArn(topicARN);

    const Aws::SNS::Model::DeleteTopicOutcome outcome = snsClient.DeleteTopic(request);

    if (outcome.IsSuccess()) {
        std::cout << "Successfully deleted the Amazon SNS topic " << topicARN << std::endl;
    }
    else {
        std::cerr << "Error deleting topic " << topicARN << ":" <<
                  outcome.GetError().GetMessage() << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/DeleteTopic)in der *AWS SDK für C\$1\$1 API-Referenz*. 

------
#### [ CLI ]

**AWS CLI**  
**So löschen Sie das SNS-Thema**  
Das folgende `delete-topic`-Beispiel löscht die angegebene SNS-Thema.  

```
aws sns delete-topic \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
Mit diesem Befehl wird keine Ausgabe zurückgegeben.  
+  Einzelheiten zur API finden Sie [DeleteTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-topic.html)in der *AWS CLI Befehlsreferenz*. 

------
#### [ Go ]

**SDK für Go V2**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/topics_and_queues#code-examples) einrichten und ausführen. 

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/sns"
	"github.com/aws/aws-sdk-go-v2/service/sns/types"
)

// SnsActions encapsulates the Amazon Simple Notification Service (Amazon SNS) actions
// used in the examples.
type SnsActions struct {
	SnsClient *sns.Client
}



// DeleteTopic delete an Amazon SNS topic.
func (actor SnsActions) DeleteTopic(ctx context.Context, topicArn string) error {
	_, err := actor.SnsClient.DeleteTopic(ctx, &sns.DeleteTopicInput{
		TopicArn: aws.String(topicArn)})
	if err != nil {
		log.Printf("Couldn't delete topic %v. Here's why: %v\n", topicArn, err)
	}
	return err
}
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/sns#Client.DeleteTopic)in der *AWS SDK für Go API-Referenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.DeleteTopicRequest;
import software.amazon.awssdk.services.sns.model.DeleteTopicResponse;
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 DeleteTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:     <topicArn>

                Where:
                   topicArn - The ARN of the topic to delete.
                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        System.out.println("Deleting a topic with name: " + topicArn);
        deleteSNSTopic(snsClient, topicArn);
        snsClient.close();
    }

    public static void deleteSNSTopic(SnsClient snsClient, String topicArn) {
        try {
            DeleteTopicRequest request = DeleteTopicRequest.builder()
                    .topicArn(topicArn)
                    .build();

            DeleteTopicResponse result = snsClient.deleteTopic(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/DeleteTopic)in der *AWS SDK for Java 2.x API-Referenz*. 

------
#### [ JavaScript ]

**SDK für JavaScript (v3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples) einrichten und ausführen. 
Erstellen Sie den Client in einem separaten Modul und exportieren Sie ihn.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importieren Sie das SDK- und Client-Module und rufen Sie die API auf.  

```
import { DeleteTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic to delete.
 */
export const deleteTopic = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new DeleteTopicCommand({ TopicArn: topicArn }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'a10e2886-5a8f-5114-af36-75bd39498332',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
};
```
+  Weitere Informationen finden Sie im [AWS SDK für JavaScript -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-managing-topics-deletetopic). 
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/DeleteTopicCommand)in der *AWS SDK für JavaScript API-Referenz*. 

------
#### [ Kotlin ]

**SDK für Kotlin**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples) einrichten und ausführen. 

```
suspend fun deleteSNSTopic(topicArnVal: String) {
    val request =
        DeleteTopicRequest {
            topicArn = topicArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.deleteTopic(request)
        println("$topicArnVal was successfully deleted.")
    }
}
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://sdk.amazonaws.com/kotlin/api/latest/index.html)in der *API-Referenz zum AWS SDK für Kotlin*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes an SNS topic and all its subscriptions.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->deleteTopic([
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/DeleteTopic)in der *AWS SDK für PHP API-Referenz*. 

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples) einrichten und ausführen. 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_topic(topic):
        """
        Deletes a topic. All subscriptions to the topic are also deleted.
        """
        try:
            topic.delete()
            logger.info("Deleted topic %s.", topic.arn)
        except ClientError:
            logger.exception("Couldn't delete topic %s.", topic.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def delete_topic(self, topic_arn: str) -> bool:
        """
        Delete an SNS topic.

        :param topic_arn: The ARN of the topic to delete.
        :return: True if successful.
        :raises ClientError: If the topic deletion fails.
        """
        try:
            self.sns_client.delete_topic(TopicArn=topic_arn)
            
            logger.info(f"Deleted topic: {topic_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Topic not found: {topic_arn}")
                return True  # Already deleted
            else:
                logger.error(f"Error deleting topic: {error_code} - {e}")
                raise
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/DeleteTopic)in *AWS SDK for Python (Boto3) API* Reference. 

------
#### [ SAP ABAP ]

**SDK für SAP ABAP**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples) einrichten und ausführen. 

```
    TRY.
        lo_sns->deletetopic( iv_topicarn = iv_topic_arn ).
        MESSAGE 'SNS topic deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Topic does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)in der *API-Referenz zum AWS SDK für SAP ABAP*. 

------
#### [ Swift ]

**SDK für Swift**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples) einrichten und ausführen. 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.deleteTopic(
            input: DeleteTopicInput(topicArn: arn)
        )
```
+  Einzelheiten zur API finden Sie [DeleteTopic](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/deletetopic(input:))in der *API-Referenz zum AWS SDK für Swift*. 

------

# Überwachung der SMS-Aktivitäten von Amazon SNS
<a name="sms_stats"></a>

Durch die Überwachung der SMS-Aktivitäten behalten Sie Zieltelefonnummern, erfolgreiche oder fehlgeschlagene Zustellungen, Gründe für Ausfälle, Kosten und andere Informationen im Auge. Amazon SNS hilft, indem es Statistiken in der Konsole zusammenfasst, Informationen an Amazon CloudWatch sendet und tägliche SMS-Nutzungsberichte an einen von Ihnen angegebenen Amazon S3 S3-Bucket sendet.

# Amazon SNS SNS-SMS-Versandstatistiken anzeigen
<a name="sms_stats_console"></a>

Sie können Statistiken zu Ihren aktuellen SMS-Zustellungen über die Amazon SNS-Konsole anzeigen.

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Legen Sie im Konsolenmenü unter der Regionsauswahl eine [-Region fest, die SMS-Messaging unterstützt](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

1. Wählen Sie im Navigationsbereich **Text messaging (SMS) (Textnachrichten (SMS))** aus.

1. Zeigen Sie auf der Seite **Text messaging (SMS)** im Abschnitt **Account stats (Kontostatistik)** die Diagramme zu den Zustellungen Ihrer transaktions- und werbebezogenen SMS-Nachrichten an. Jedes Diagramm zeigt die folgenden Daten für die letzten 15 Tage:
   + Zustellungsrate (Prozentsatz der erfolgreichen Zustellungen)
   + Gesendet (Anzahl der Zustellversuche)
   + Fehlgeschlagen (Anzahl der fehlgeschlagenen Zustellungen)

Auf dieser Seite können Sie auch die Schaltfläche **Usage (Nutzung)** wählen, um zum Amazon S3-Bucket zu wechseln, in dem Ihre täglichen Nutzungsberichte gespeichert sind. Weitere Informationen finden Sie unter [Abonnieren der täglichen SMS-Nutzungsberichte von Amazon SNS](sms_stats_usage.md).

# Amazon SNS SMS-Versandüberwachung mit CloudWatch Amazon-Metriken und Protokollen
<a name="sms_stats_cloudwatch"></a>

Sie können Amazon CloudWatch und Amazon CloudWatch Logs verwenden, um Ihre SMS-Nachrichtenzustellungen zu überwachen.

## CloudWatch Amazon-Metriken anzeigen
<a name="sms_stats_cloudwatch_metrics"></a>

Amazon SNS sammelt automatisch Messwerte über Ihre SMS-Nachrichtenzustellungen und leitet sie an Amazon weiter. CloudWatch Sie können diese Messwerte überwachen und Alarme einrichten, CloudWatch um Sie zu benachrichtigen, wenn eine Metrik einen Schwellenwert überschreitet. Sie können beispielsweise CloudWatch Messwerte überwachen, um Ihre SMS-Zustellrate und Ihre month-to-date SMS-Gebühren zu ermitteln.

Informationen zur Überwachung von CloudWatch Messwerten, zur Einstellung von CloudWatch Alarmen und zu den verfügbaren Messwerttypen finden Sie unter[Überwachung von Amazon SNS SNS-Themen mit CloudWatch](sns-monitoring-using-cloudwatch.md).

## CloudWatch Protokolle anzeigen
<a name="sns-viewing-cloudwatch-logs"></a>

Sie können Informationen über erfolgreiche und erfolglose SMS-Nachrichtenzustellungen sammeln, indem Sie Amazon SNS aktivieren, in Amazon CloudWatch Logs zu schreiben. Für jede SMS-Nachricht, die Sie senden, schreibt Amazon SNS ein Protokoll, das die Kosten für die Nachricht, den Erfolgs- oder Fehlerstatus, den Grund für das Fehlschlagen (wenn die Nachricht fehlgeschlagen ist), die Leerlaufzeit für die Nachricht und andere Informationen enthält.

**Um CloudWatch Protokolle für Ihre SMS-Nachrichten zu aktivieren und anzuzeigen**

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Legen Sie im Konsolenmenü unter der Regionsauswahl eine [-Region fest, die SMS-Messaging unterstützt](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Wählen Sie im Navigationsbereich **Text messaging (SMS) (Textnachrichten (SMS))** aus.

1. Wählen Sie auf der Seite **Mobile text messaging (SMS) (Mobile Texttnachrichten (SMS))** im Abschnitt **Text messaging preferences (Textnachrichteneinstellungen)** die Option **Edit (Bearbeiten)** aus.

1. Erweitern Sie auf der nächsten Seite den Abschnitt **Protokollierung des Zustellungsstatus**.

1. Geben Sie für **Success sample rate** den Prozentsatz der erfolgreichen SMS-Lieferungen an, für die Amazon SNS CloudWatch Protokolle in Logs schreibt. Beispiel:
   + Um nur Protokolle für fehlgeschlagene Zustellungen zu schreiben, setzen Sie diesen Wert auf 0.
   + Um Protokolle für 10 % der erfolgreichen Zustellungen zu schreiben, setzen Sie den Wert auf 10.

   Wenn Sie keinen Prozentsatz angeben, schreibt Amazon SNS Protokolle für alle erfolgreichen Zustellungen.

1. Gehen Sie wie folgt vor, um die angeforderten Genehmigungen bereitzustellen:
   + Zum Erstellen einer neuen Servicerolle wählen Sie **Neue Servicerolle erstellen** und dann **Neue Rollen erstellen**. Wählen Sie auf der nächsten Seite **Erlauben**, um Amazon SNS Schreibzugriff auf die Ressourcen Ihres Kontos zu geben.
   + Um eine bestehende Servicerolle zu verwenden, wählen Sie **Vorhandene Servicerolle verwenden** und fügen Sie dann den ARN-Namen im Feld **IAM-Rolle für erfolgreiche und fehlgeschlagene Übermittlungen**.

     Die angegebene Servicerolle muss Schreibzugriff auf die Ressourcen Ihres Kontos ermöglichen. Weitere Informationen zum Erstellen von IAM-Rollen finden Sie unter [Erstellen einer Rolle für einen AWS Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) im *IAM-Benutzerhandbuch*. 

1. Wählen Sie **Änderungen speichern ** aus.

1. Zurück auf der Seite **Text-Messaging (SMS)** gehen Sie zum Abschnitt **Zustellungsstatusprotokolle**, um verfügbare Protokolle anzuzeigen.
**Anmerkung**  
Je nach Carrier der Zieltelefonnummer kann es bis zu 72 Stunden dauern, bis Zustellungsprotokolle in der Amazon-SNS-Konsole angezeigt werden. 

## Beispielprotokoll für eine erfolgreiche SMS-Zustellung
<a name="example-log-successful-sms-delivery"></a>

Das Zustellungsstatusprotokoll für eine erfolgreiche SMS-Zustellung ähnelt dem folgenden Beispiel:

```
{
    "notification": {
        "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
        "timestamp": "2016-06-28 00:40:34.558"
    },
    "delivery": {
        "phoneCarrier": "My Phone Carrier",
        "mnc": 270,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 310,
        "providerResponse": "Message has been accepted by phone carrier",
        "dwellTimeMs": 599,
        "dwellTimeMsUntilDeviceAck": 1344
    },
    "status": "SUCCESS"
}
```

## Beispielprotokoll für eine fehlgeschlagene SMS-Zustellung
<a name="example-log-failed-sms-delivery"></a>

Das Zustellungsstatusprotokoll für eine fehlgeschlagene SMS-Zustellung ähnelt dem folgenden Beispiel:

```
{
    "notification": {
        "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
        "timestamp": "2016-06-28 00:40:34.559"
    },
    "delivery": {
        "mnc": 0,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 0,
        "providerResponse": "Unknown error attempting to reach phone",
        "dwellTimeMs": 1420,
        "dwellTimeMsUntilDeviceAck": 1692
    },
    "status": "FAILURE"
}
```

## Gründe für das Fehlschlagen der SMS-Zustellung
<a name="sms_stats_delivery_fail_reasons"></a>

Der Grund für das Fehlschlagen wird mit dem `providerResponse`-Attribut angegeben. SMS-Nachrichten können aus den folgenden Gründen fehlschlagen:
+ Telefonnetzbetreiber hat die Nachricht als Spam blockiert
+ Ziel befindet sich auf einer blockierten Liste
+ Telefonnummer ist ungültig
+ Nachrichtentext ist ungültig
+ Telefonnentzbetreiber hat die Nachricht blockiert
+ Telefonnetzbetreiber ist derzeit nicht erreichbar/nicht verfügbar
+ Telefon blockiert SMS
+ Telefon befindet sich auf einer blockierten Liste
+ Telefon ist derzeit nicht erreichbar/nicht verfügbar
+ Telefonnummer lehnt Empfang ab
+ Zustellung würde den Maximalpreis überschreiten
+ Unbekannter Fehler versucht das Telefon zu erreichen

# Abonnieren der täglichen SMS-Nutzungsberichte von Amazon SNS
<a name="sms_stats_usage"></a>

Sie können Ihre SMS-Zustellungen überwachen, indem Sie tägliche Nutzungsberichte von Amazon SNS abonnieren. Für jeden Tag, an dem Sie mindestens eine SMS-Nachricht senden, sendet Amazon SNS einen Nutzungsbericht als CSV-Datei an den angegebenen Amazon S3-Bucket. Es dauert 24 Stunden, bis der SMS-Nutzungsbericht im Amazon S3 S3-Bucket verfügbar ist. 

## Informationen im täglichen Nutzungsbericht
<a name="daily_usage_info"></a>

Der Nutzungsbericht umfasst die folgenden Informationen für jede SMS-Nachricht, die Sie von Ihrem Konto senden.

 Beachten Sie, dass der Bericht keine Nachrichten enthält, die an Empfänger gesendet werden, die sich vom Nachrichtenempfang abgemeldet haben.
+ Zeitpunkt der Veröffentlichung für die Nachricht (in UTC)
+ Nachrichten-ID
+ Zieltelefonnummer
+ Nachrichtentyp
+ Zustellungsstatus
+ Kosten für die Nachricht (in US-Dollar)
+ Segmentnummer (eine Nachricht wird in mehrere Segmente aufgeteilt, wenn sie für eine einzelne Nachricht zu lang ist)
+ Gesamtanzahl der Segmente

**Anmerkung**  
Wenn Amazon SNS die Segmentnummer nicht erhalten hat, setzen wir deren Wert auf Null.

## Abonnieren der täglichen Nutzungsberichte
<a name="subscribe-to-daily-usage-reports"></a>

Um tägliche Nutzungsberichte zu abonnieren, müssen Sie einen Amazon S3-Bucket mit den entsprechenden Berechtigungen erstellen.

**So erstellen Sie einen Amazon-S3-Bucket für Ihre täglichen Nutzungsberichte**

1. Melden Sie sich über den AWS-Konto , der SMS-Nachrichten sendet, [bei der Amazon S3-Konsole](https://console.aws.amazon.com/s3/) an.

1. Wählen Sie **Create Bucket (Bucket erstellen)** aus.

1. Unter **Bucket Name (Bucket-Name)** empfiehlt es sich, einen für Ihr Konto und Ihre Organisation eindeutigen Namen einzugeben. Verwenden Sie zum Beispiel das Muster `<my-bucket-prefix>-<account_id>-<org-id>`. 

   Weitere Informationen über Konventionen und Einschränkungen für Bucket-Namen finden Sie unter [Regeln für die Bucket-Benennung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) im *Benutzerhandbuch zu Amazon Simple Storage Service*.

1. Wählen Sie **Erstellen** aus.

1. Wählen Sie in der Tabelle **Alle Buckets** den Bucket aus.

1. Wählen Sie in der Registerkarte **Genehmigungen** **Bucket-Richtlinie**.

1. Geben Sie im Fenster **Bucket Policy Editor (Bucket-Richtlinieneditor)** eine Richtlinie ein, die den Amazon SNS-Serviceprinzipal berechtigt, in Ihren Bucket zu schreiben. Ein Beispiel finden Sie unter [Beispiel einer Bucket-Richtlinie](#example_bucket_policy).

   Wenn Sie die Beispielrichtlinie verwenden, denken Sie daran, sie durch den Bucket-Namen zu *my-s3-bucket* ersetzen, den Sie in Schritt 3 ausgewählt haben.

1. Wählen Sie **Speichern**.

**So abonnieren Sie tägliche Nutzungsberichte**

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/) an.

1. Wählen Sie im Navigationsbereich **Text messaging (SMS) (Textnachrichten (SMS))** aus.

1. Wählen Sie auf der Seite **Text messaging (SMS) (Textnachrichten (SMS))** im Abschnitt **Text messaging preferences (Textnachrichteneinstellungen)** die Option **Edit (Bearbeiten)** aus.  
![\[Bereich „Einstellungen für Textnachrichten“ in der Amazon SNS SNS-Konsole\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/daily-usage-report1.png)

1. Geben Sie auf der Seite **Edit text messaging preferences (Textnachrichteneinstellungen bearbeiten)** im Abschnitt **Details** **Amazon S3 bucket name for usage reports (Amazon S3-Bucket-Name für Nutzungsberichte)** an.  
![\[Abschnitt „Details“ auf der Seite „Einstellungen für Textnachrichten bearbeiten“ in der Amazon SNS SNS-Konsole\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/daily-usage-report2.png)

1. Wählen Sie **Änderungen speichern ** aus.

### Beispiel einer Bucket-Richtlinie
<a name="example_bucket_policy"></a>

Die folgende Richtlinie berechtigt den Amazon SNS-Service, die Aktionen `s3:PutObject`, `s3:GetBucketLocation` und `s3:ListBucket` durchzuführen.

AWS bietet Tools für alle Dienste mit Service Principals, denen Zugriff auf Ressourcen in Ihrem Konto gewährt wurde. Wenn der Principal in einer Amazon S3 S3-Bucket-Richtlinienerklärung ein [verwirrtes stellvertretendes Problem](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) ist. Um zu begrenzen, welche Region und welches Konto der Bucket tägliche Nutzungsberichte erhalten kann, verwenden Sie `aws:SourceArn`, wie im folgenden Beispiel gezeigt. Wenn Sie die Regionen, die diese Berichte genieren können, nicht einschränken wollen, können Sie mit `aws:SourceAccount` einschränken, welche Konten die Berichte generieren. Wenn Sie den ARN der Ressource nicht kennen, verwenden Sie `aws:SourceAccount`.

Verwenden Sie das folgende Beispiel, das einen Schutz vor dem Problem des verwirrten Stellvertreters enthält, um eine Amazon-S3-Bucket für den Empfang von täglichen SMS-Nutzungsberichten von Amazon SNS zu erstellen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**Anmerkung**  
Sie können Nutzungsberichte in Amazon-S3-Buckets veröffentlichen, die sich im Besitz von AWS-Konto befinden, die in der Amazon S3-Richtlinie im `Condition`-Element festgelegt sind. Informationen zum Veröffentlichen von Nutzungsberichten in einem Amazon S3 S3-Bucket, der einem anderen AWS-Konto gehört, finden Sie unter [Wie kann ich Amazon S3 S3-Objekte von einem anderen kopieren AWS-Konto?](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/) . 

### Beispiel eines täglichen Nutzungsberichts
<a name="example_report"></a>

Nachdem Sie die täglichen Nutzungsberichte abonniert haben, speichert Amazon SNS jeden Tag eine CSV-Datei mit Nutzungsdaten am folgenden Speicherort:

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

Jede Datei kann bis zu 50.000 Datensätze enthalten. Wenn die Berichte für einen Tag dieses Kontingent übersteigen, fügt Amazon SNS mehrere Dateien hinzu. Nachstehend finden Sie einen Beispielbericht:

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```

# Unterstützung für Amazon SNS SMS-Messaging anfordern
<a name="channels-sms-awssupport"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Bestimmte SMS-Optionen mit Amazon SNS sind für Ihr AWS Konto erst verfügbar, wenn Sie Kontakt aufnehmen Support. Erstellen Sie einen Fall im [AWS Support Center](https://console.aws.amazon.com/support/home#/), um eine der folgenden Optionen anzufordern:
+ Eine Erhöhung Ihres monatlichen Ausgabenschwellenwerts für SMS

  Standardmäßig liegt der monatliche Ausgabenschwellenwert bei 1,00 USD. Ihr Ausgabenschwellenwert bestimmt die Anzahl der Nachrichten, die Sie mit Amazon SNS senden können. Sie können einen Ausgabenschwellenwert anfordern, der der erwarteten monatlichen Menge an Nachrichten für Ihren SMS-Anwendungsfall entspricht.
+ Eine Verschiebung aus der [SMS-Sandbox](sns-sms-sandbox.md), damit Sie SMS-Nachrichten ohne Einschränkungen versenden können. Weitere Informationen finden Sie unter [Verlassen der Amazon SNS SMS-Sandbox](sns-sms-sandbox-moving-to-production.md).
+ Eine engagierte [Ursprungsnummer](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html)
+ Eine spezielle [Absender-ID.](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html) Eine Sender-ID ist eine benutzerdefinierte ID, die auf dem Gerät des Empfängers als Sender angezeigt wird. Sie können z. B. Ihre Unternehmensmarke verwenden, um die Nachrichtenquelle leichter erkennbar zu machen. Die Support für den Absender IDs ist je nach Land oder Region unterschiedlich. Weitere Informationen finden Sie AWS End User Messaging SMS im *AWS End User Messaging SMS Benutzerhandbuch* unter [Unterstützte Länder und Regionen für SMS-Nachrichten mit](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

# Erhöhung Ihres monatlichen Amazon SNS SMS-Ausgabenkontingents beantragen
<a name="channels-sms-awssupport-spend-threshold"></a>

Amazon SNS stellt Ausgabenkontingente zur Verfügung, mit denen Sie die maximalen Kosten pro Monat verwalten können, die durch das Senden von SMS über Ihr Konto entstehen. Das Ausgabenkontingent begrenzt Ihr Risiko im Falle eines böswilligen Angriffs und verhindert, dass Ihre Upstream-Anwendung mehr Nachrichten sendet als erwartet. Sie können Amazon SNS so konfigurieren, dass die Veröffentlichung von SMS-Nachrichten eingestellt wird, wenn festgestellt wird, dass beim Senden einer SMS-Nachricht Kosten anfallen, die Ihr Ausgabenkontingent für den aktuellen Monat übersteigen. 

Um sicherzustellen, dass Ihr Betrieb nicht beeinträchtigt wird, empfehlen wir, eine Ausgabenquote anzufordern, die hoch genug ist, um Ihre Produktions-Workloads zu unterstützen. Weitere Informationen finden Sie unter [Schritt 1: Öffnen eines Amazon-SNS-SMS-Falls](#channels-sms-awssupport-spend-threshold-open). Sobald Sie das Kontingent erhalten haben, können Sie Ihr Risiko verwalten, indem Sie das volle Kontingent oder einen kleineren Wert anwenden, wie unter [Schritt 2: Aktualisieren Ihrer SMS-Einstellungen](#channels-sms-awssupport-spend-threshold-settings) beschrieben. Wenn Sie einen kleineren Wert anwenden, können Sie Ihre monatlichen Ausgaben mit der Option steuern, bei Bedarf hochzuskalieren.

**Wichtig**  
Da Amazon SNS ein verteiltes System ist, beendet es das Senden von SMS-Nachrichten innerhalb von einigen Minuten, falls das Ausgabenkontingent überschritten wurde. Wenn Sie in diesem Zeitraum weiter SMS-Nachrichten senden, können Kosten entstehen, die Ihr Kontingent überschreiten.

Wir setzen das Ausgabenkontingent für alle neuen Konten auf 1,00 USD pro Monat fest. Dieses Kontingent soll Ihnen erlauben, die Möglichkeiten des Nachrichtenversands von Amazon SNS zu testen. Um eine Erhöhung des SMS-Ausgabenkontingents für Ihr Konto zu beantragen, öffnen Sie im AWS Support Center einen Fall zur Erhöhung des Kontingents.

**Topics**
+ [Schritt 1: Öffnen eines Amazon SNS SMS-Falls](#channels-sms-awssupport-spend-threshold-open)
+ [Schritt 2: Aktualisieren Ihrer SMS-Einstellungen in der Amazon SNS-Konsole](#channels-sms-awssupport-spend-threshold-settings)

## Schritt 1: Öffnen eines Amazon SNS SMS-Falls
<a name="channels-sms-awssupport-spend-threshold-open"></a>

Sie können eine Erhöhung Ihres monatlichen Ausgabenkontingents beantragen, indem Sie im AWS Support Center einen Fall zur Erhöhung des Kontingents eröffnen.

**Anmerkung**  
Einige der Felder im Antragsformular sind als „optional“ markiert. Allerdings benötigt Support alle Informationen, die in den folgenden Schritten aufgeführt sind, um Ihre Anfrage zu bearbeiten. Wenn Sie nicht alle erforderlichen Informationen bereitstellen, kann es bei der Bearbeitung Ihrer Anfrage zu Verzögerungen kommen.

1. Melden Sie sich unter [https://console.aws.amazon.com/ AWS-Managementkonsole](https://console.aws.amazon.com/)an.

1. Klicken Sie im Menü **Support** (Support) auf **Support Center** (Support-Center).

1. Wählen Sie auf der Registerkarte **Offene Support-Fälle** die Option **Fall erstellen** aus.

1. Wählen Sie den Link **Erhöhung des Servicelimits?** und gehen Sie dann wie folgt vor:
   + Wählen Sie für **Grenzwerttyp** die Option **SNSSMS** aus.
   + (Optional) Geben Sie unter **Link zur Website oder App angeben, die die SMS-Nachrichten senden wird** Informationen über die Website, die Anwendung oder den Service an, die bzw. der SMS-Nachrichten senden wird.
   + (Optional) Wählen Sie für **Art der Nachrichten, die gesendet werden sollen** die Art der Nachrichten aus, die Sie mit Ihren Langwahlnummern senden möchten:
     + **One-time Password (Einmaliges Passwort)** – Nachrichten, die für Ihre Kunden Passwörter zur Authentifizierung bei Ihrer Website oder Anwendung bereitstellen.
     + **Promotional (Werbung)** – Nicht kritische Nachrichten, die Ihr Unternehmen oder Ihren Service bewerben, wie beispielsweise Sonderangebote oder Ankündigungen.
     + **Transactional (Transaktionsnachrichten)** – Wichtige Informationsmeldung, die Kundentransaktionen unterstützen, wie beispielsweise Bestellbestätigungen oder Kontowarnungen. Transaktionsnachrichten dürfen keine Werbeaktionen oder Marketinginhalte enthalten.
   + (Optional) Wählen Sie für **welche AWS Region Sie Nachrichten senden möchten, die Region aus**, aus der Sie Nachrichten senden möchten.
   + (Optional) Geben Sie für **In welche Länder möchten Sie Nachrichten senden** das Land oder die Region ein, in dem bzw. der Sie Kurzwahlnummern erwerben möchten.
   + (Optional) Geben Sie unter **Wie entscheiden sich Ihre Kunden dafür, Nachrichten von Ihnen zu erhalten** Einzelheiten zu Ihrem Anmeldeverfahren an.
   + (Optional) Geben Sie im Feld **Bitte geben Sie die Nachrichtenvorlage an, die Sie verwenden möchten, um Nachrichten an Ihre Kunden zu senden** die Vorlage ein, die Sie verwenden werden.

1. Führen Sie unter **Requests** (Anforderungen) die folgenden Abschnitte aus:
   + Wählen Sie für die **Region** die Region aus, aus der Sie Nachrichten senden möchten. 
**Anmerkung**  
Die Region ist im Abschnitt **Anforderungen** erforderlich. Auch wenn Sie diese Informationen im Abschnitt **Falldetails** angegeben haben, müssen Sie sie auch hier angeben.
   + Wählen Sie für **Resource Type (Ressourcentyp)** die Option **General Limits (Allgemeine Limits)** aus.
   + Wählen Sie für **Limit** **Account Spend Threshold Increase (Erhöhung des Ausgabenschwellenwerts)** aus.

1. Geben Sie für den Neuen Grenzwert den Höchstbetrag in USD ein, den Sie pro Kalendermonat für SMS-Nachrichten ausgeben möchten.

1. Machen Sie unter **Case description (Fallbeschreibung)** für **Use case description (Anwendungsfall-Beschreibung)** die folgenden Angaben:
   + Die Website oder App des Unternehmens oder Services, das/der SMS-Nachrichten sendet.
   + Den Service, der von Ihrer Website oder App bereitgestellt wird, und wie Ihre SMS-Nachrichten zu diesem Service beitragen.
   + Wie sich Benutzer bei Ihrer Website, App oder an einem anderen Ort anmelden, um Ihre SMS-Nachrichten freiwillig zu erhalten.

   Wenn Ihr angefordertes Ausgabenkontingent (der Wert, den Sie unter **New quota value (Neuer Kontingentwert)** angegeben haben), 10.000 USD überschreitet, geben Sie für jedes Zielland Ihrer Nachrichten die folgenden zusätzlichen Einzelheiten an:
   + Ob Sie eine Sender-ID oder eine Kurzwahlnummer verwenden. Wenn Sie eine Sender-ID verwenden, geben Sie an:
     + Die Sender-ID.
     + Ob die Sender-ID bei Mobilnetzanbietern in dem betreffenden Land registriert ist.
   + Das erwartete Maximum transactions-per-second (TPS) für Ihre Nachrichten.
   + Die durchschnittliche Nachrichtengröße.
   + Die Vorlage für die in das betreffende Land gesendeten Nachrichten.
   + (Optional) Eventuelle Zeichenverschlüsselungsanforderungen.

1. (Optional) Wenn Sie weitere Anforderungen einreichen möchten, wählen Sie **Weitere Anforderung hinzufügen**. Wenn Sie mehrere Anfragen durchführen, geben Sie für jede davon die erforderlichen Informationen an. Die erforderlichen Informationen finden Sie in den anderen Abschnitten von [Unterstützung für Amazon SNS SMS-Messaging anfordern](channels-sms-awssupport.md).

1. Wählen Sie unter **Kontaktoptionen** für **Bevorzugte Kontaktsprache** die Sprache aus, in der Sie Mitteilungen zu diesem Fall erhalten möchten.

1. Wenn Sie fertig sind, klicken Sie auf **Submit** (Absenden).

Das Support Team gibt innerhalb von 24 Stunden eine erste Antwort auf Ihre Anfrage.

Da wir verhindern möchten, dass unerwünschte oder schädliche Inhalte in unseren Systemen eingehen, müssen wir jede Anfrage sorgfältig prüfen. Nach einer Prüfung kommen wir Ihrer Anfrage innerhalb dieses 24-Stunden-Zeitraums nach. Für den Fall, dass wir weitere Informationen von Ihnen benötigen, kann die Bearbeitung Ihrer Anfrage länger dauern.

Wenn Ihr Anwendungsfall gegen unsere Richtlinien verstößt, können wir Ihrer Anfrage möglicherweise nicht nachkommen.

## Schritt 2: Aktualisieren Ihrer SMS-Einstellungen in der Amazon SNS-Konsole
<a name="channels-sms-awssupport-spend-threshold-settings"></a>

Nachdem wir Sie darüber informiert haben, dass Ihr monatliches Ausgabenkontingent erhöht wurde, müssen Sie das Ausgabenkontingent für Ihr Konto in der Amazon SNS-Konsole anpassen.

**Wichtig**  
Sie müssen die folgenden Schritte ausführen, sonst wird Ihr SMS-Ausgabenlimit nicht erhöht.

**So passen Sie Ihr Ausgabenkontingent in der Konsole an**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Öffnen Sie das linke Navigationsmenü, erweitern Sie **Mobil** und wählen Sie dann **SMS**.

1. Wählen Sie auf der Seite **Mobile text messaging (SMS) (Mobile Texttnachrichten (SMS))** im Abschnitt **Text messaging preferences (Textnachrichteneinstellungen)** die Option **Edit (Bearbeiten)** aus.

1. Geben Sie auf der Seite **SMS-Voreinstellungen bearbeiten** unter **Details** Ihr neues SMS-Ausgabenlimit unter **Kontoausgabenlimit** ein.
**Anmerkung**  
Möglicherweise erhalten Sie eine Warnung, dass der eingegebene Wert größer als das Standardausgabenlimit ist. Sie können dies ignorieren. 

1. Wählen Sie **Änderungen speichern ** aus.
**Anmerkung**  
Wenn der Fehler „Invalid Parameter (Ungültiger Parameter)” angezeigt wird, überprüfen Sie den Kontakt beim AWS Support, und prüfen Sie, ob Sie das richtige neue SMS-Ausgabenlimit eingegeben haben. Wenn Sie immer noch ein Problem haben, öffnen Sie einen Fall im AWS Support Center. 

Wenn Sie Ihren Fall im Support Center erstellen, achten Sie darauf, dass Sie alle erforderlichen Informationen für die Art der Anfrage angeben, die Sie einreichen. Andernfalls Support müssen Sie sich mit Ihnen in Verbindung setzen, um diese Informationen zu erhalten, bevor Sie fortfahren. Indem Sie einen detaillierten Fall übermitteln, tragen Sie dazu bei, dass Ihr Fall ohne Verzögerungen gelöst werden kann. Informationen zu den Details, die für bestimmte Arten von SMS-Anfragen benötigt werden, finden Sie in den folgenden Themen.

 Weitere Informationen zum Absender IDs finden Sie in der folgenden Dokumentation im *AWS End User Messaging SMS Benutzerhandbuch*:


| AWS End User Messaging SMS Thema | Beschreibung | 
| --- | --- | 
|  [Eine Erhöhung der Ausgabenquote beantragen](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html)  |  Ihr Ausgabenkontingent bestimmt, wie viel Geld Sie AWS End User Messaging SMS jeden Monat für den Versand von SMS-Nachrichten ausgeben können.  | 
|  [Eröffnen Sie im Support Center einen Fall für eine Absender-ID](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-sender-id.html)  |  Wenn Sie beabsichtigen, Nachrichten an Empfänger in einem Land zu senden, in dem Absender erforderlich IDs sind, können Sie eine Absender-ID anfordern, indem Sie im Support Center einen neuen Fall erstellen.  | 

# Bewährte Methoden für Amazon SNS SMS-Messaging
<a name="channels-sms-best-practices"></a>

**Wichtig**  
Der Amazon SNS SMS Developer Guide wurde aktualisiert. Amazon SNS hat sich [AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)für die Zustellung von SMS-Nachrichten integriert. Dieses Handbuch enthält die neuesten Informationen zur Erstellung, Konfiguration und Verwaltung Ihrer Amazon SNS SNS-SMS-Nachrichten.

Mobiltelefonbenutzer neigen zu einer sehr geringen Toleranz für unerwünschte SMS-Nachrichten. Die Antwortraten für unaufgeforderte SMS-Kampagnen sind fast immer sehr niedrig, was gleichzeitig auch eine schlechte Investitionsrendite bedeutet.

Außerdem überwachen Mobilfunkanbieter Massen-SMS-Sender kontinuierlich. Nummern, die offenbar unerwünschte Nachrichten senden, werden gedrosselt oder gesperrt. 

Das Senden von unerwünschten Inhalten stellt auch einen Verstoß gegen die [AWS Acceptable Use Policy](https://aws.amazon.com/aup/#No_E-Mail_or_Other_Message_Abuse) dar. Das Amazon SNS-Team überprüft SMS-Kampagnen regelmäßig und kann Ihre Möglichkeiten zum Senden von Nachrichten drosseln oder sperren, wenn Sie offensichtlich unerwünschte Nachrichten senden.

Schließlich gelten in vielen Ländern, Regionen und Rechtsbereichen empfindliche Strafen für das Senden unerwünschter SMS-Nachrichten. So bestimmt beispielsweise in den USA der Telephone Consumer Protection Act (TCPA), dass Verbraucher einen Anspruch auf eine (vom Sender zu leistende) Zahlung von 500 bis 1.500 USD für jede unerwünschte Nachricht haben, die sie erhalten.

Dieser Abschnitt beschreibt verschiedene bewährte Methoden, die Ihnen dabei helfen können, die Einbeziehung Ihrer Kunden zu verbessern und hohe Strafzahlungen zu vermeiden. Beachten Sie jedoch, dass diesem Abschnitt keine Rechtsberatung darstellt. Wenden Sie sich immer an einen Rechtsanwalt, um juristischen Rat einzuholen.

## Einhaltung von Gesetzen, Vorschriften und Anforderungen der Anbieter
<a name="channels-sms-best-practices-understand-laws"></a>

Für Verstöße gegen die Gesetze und Bestimmungen der Länder, in denen sich Ihre Kunden befinden, drohen erhebliche Geldbußen und Strafen. Daher müssen Sie die Gesetze kennen, die SMS-Messaging in den Ländern und Regionen regeln, in denen Sie geschäftlich tätig sind.

Die folgende Liste enthält Links auf die wichtigsten Gesetze zu SMS-Kommunikation in den größten Märkten der Welt.
+ **USA**: Der Telephone Consumer Protection Act (TCPA) von 1991 gilt für bestimmte Arten von SMS-Nachrichten. Weitere Informationen finden Sie unter [Rules and Regulations (Regeln und Vorschriften)](https://www.fcc.gov/document/telephone-consumer-protection-act-1991) auf der Website der Federal Communication Commission.
+ **Großbritannien und Nordirland**: Die Privacy and Electronic Communications (EG-Richtlinie) (PECR) von 2003 gilt für bestimmte Arten von SMS-Nachrichten. Weitere Informationen finden Sie unter [What are PECR? (Was sind PECR?)](https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/what-are-pecr/) auf der Website des UK Information Commissioner's Office.
+ **Europäische Union**: Die Datenschutzrichtlinie für elektronische Kommunikation von 2002 (auch ePrivacy-Richtlinie) gilt für einige Typen von SMS-Nachrichten. Weitere Informationen finden Sie im [vollständigen Gesetzestext](http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0058) auf der Website Europa.eu.
+ **Kanada**: Der Fighting Internet and Wireless Spam Act, auch als kanadisches Antispamgesetz (CASL) bekannt, gilt für bestimmte Arten von SMS-Nachrichten. Weitere Informationen finden Sie im [vollständigen Gesetzestext](http://www.parl.ca/DocumentViewer/en/40-3/bill/C-28/first-reading) auf der Website des kanadischen Parlaments.
+ **Japan**: Das Gesetz zur Regulierung der Übermittlung von bestimmten elektronischen Mails kann für bestimmte Arten von SMS-Nachrichten gelten. Weitere Informationen finden Sie unter [Japan's Countermeasures Against Spam](https://www.japaneselawtranslation.go.jp/en/laws/view/3767/en) auf der Website des japanischen Ministeriums für innere Angelegenheiten und Kommunikation.

Diese Gesetze können für Sie als Absender auch dann gelten, wenn Ihr Unternehmen oder Ihre Organisation nicht in einem dieser Länder ansässig ist. Einige der Gesetze in dieser Liste wurden ursprünglich für unerwünschte E-Mails oder Anrufe erlassen, wurden seither jedoch auch auf SMS-Nachrichten erweitert. In anderen Ländern und Regionen können andere Gesetze für die Übermittlung von SMS-Nachrichten gelten. Fragen Sie einen Anwalt in einem Land oder einer Region, in der sich Ihre Kunden befinden, um sich entsprechend beraten zu lassen.

In vielen Ländern haben die lokalen Netzbetreiber letztendlich die Befugnis, zu bestimmen, welche Art von Datenverkehr ihre Netze passiert. Dies bedeutet, dass die Netzbetreiber möglicherweise Beschränkungen für SMS-Inhalte auferlegen, die über die Mindestanforderungen der örtlichen Gesetzgebung hinausgehen.

## Einholen von Berechtigungen
<a name="channels-sms-best-practices-obtain-permission"></a>

Senden Sie niemals Nachrichten an Empfänger, die nicht ausdrücklich darum gebeten haben, die Arten von Nachrichten zu erhalten, die Sie senden möchten. Teilen Sie keine Opt-in-Listen, auch nicht in Organisationen innerhalb desselben Unternehmens. 

Wenn Empfänger über ein Onlineformular angeben können, dass sie Ihre Nachrichten erhalten möchten, fügen Sie dem Formular Systeme hinzu, die verhindern, dass automatisierte Scripts ohne Wissen der Benutzer Abonnements für sie abschließen. Sie sollten auch die Häufigkeit begrenzen, mit der ein Benutzer in einer einzelnen Sitzung eine Telefonnummer angeben kann.

Wenn Sie eine SMS-Opt-in-Anfrage erhalten, senden Sie dem Empfänger eine Nachricht mit der Bitte, zu bestätigen, dass er Nachrichten von Ihnen erhalten möchte. Senden Sie diesem Empfänger keine weiteren Nachrichten, bis er sein Abonnement bestätigt hat. Eine Bestätigungsnachricht für ein Abonnement kann wie folgt aussehen:

`Text YES to join ExampleCorp alerts. 2 msgs/month. Msg & data rates may apply. Reply HELP for help, STOP to cancel.`

Führen Sie Unterlagen mit Datum, Uhrzeit und Quelle der einzelnen Opt-in-Anfragen und Bestätigungen. Dies kann hilfreich sein, wenn ein Anbieter oder eine Regulierungsbehörde danach fragt, oder auch für Routineprüfungen Ihrer Kundenliste.

### Opt-in-Workflow
<a name="channels-sms-best-practices-obtain-permission-optin"></a>

In einigen Fällen (wie bei der gebührenfreien Registrierung in den USA oder der Kurzwahl-Registrierung) verlangen Mobilfunkanbieter, dass Sie Mockups oder Screenshots Ihres gesamten Opt-in-Workflows zur Verfügung stellen. Die Mockups oder Screenshots müssen dem Opt-in-Workflow, den Ihre Empfänger ausführen werden, sehr ähnlich sein. 

Ihre Mockups oder Screenshots sollten alle unten aufgeführten erforderlichen Angaben enthalten, um ein Höchstmaß an Compliance zu gewährleisten. 

**Erforderliche Angaben**
+ Eine Beschreibung des Messaging-Anwendungsfalls, den Sie über Ihr Programm senden.
+ Der Satz „Es können Gebühren für Nachrichten und Daten anfallen“.
+ Ein Hinweis darauf, wie oft Empfänger Nachrichten von Ihnen erhalten. Beispielsweise könnte die Angabe für ein wiederkehrendes Messaging-Programm „eine Nachricht pro Woche“ lauten. Ein Anwendungsfall für ein Einmalpasswort oder eine Multi-Faktor-Authentifizierung könnte lauten: „Nachrichtenfrequenz variiert“ oder „eine Nachricht pro Anmeldeversuch“.
+ Links zu Ihren Allgemeinen Geschäftsbedingungen und Datenschutzrichtlinien. 

**Häufige Ablehnungsgründe für nicht konforme Opt-ins**
+ Wenn der angegebene Firmenname nicht mit dem übereinstimmt, was im Mockup oder Screenshot angegeben ist. Alle nicht offensichtlichen Zusammenhänge sollten in der Beschreibung des Opt-in-Workflows erklärt werden.
+ Wenn es den Anschein hat, dass eine Nachricht an den Empfänger gesendet wird, zuvor jedoch keine ausdrückliche Zustimmung eingeholt wurde. Die ausdrückliche Zustimmung ist eine Voraussetzung für alle Nachrichten.
+ Wenn es den Anschein hat, dass der Empfang einer Textnachricht erforderlich ist, um sich für einen Service anzumelden. Dies ist nicht konform, wenn der Workflow keine Alternative zum Empfang einer Opt-in-Nachricht in anderer Form wie E-Mail oder Sprachanruf bietet. 
+ Wenn die Opt-in-Formulierungen vollständig in den Nutzungsbedingungen angegeben ist. Die Angaben sollten dem Empfänger immer zum Opt-in-Zeitpunkt vorgelegt werden und nicht in einem verknüpften Richtliniendokument enthalten sein. 
+ Wenn ein Kunde zugestimmt hat, eine bestimmte Art von Nachricht von Ihnen zu erhalten, und Sie ihm andere Arten von Textnachrichten senden. Der Kunde stimmt beispielsweise zu, Einmalpasswörter zu erhalten, erhält aber auch Umfragenachrichten.
+ Wenn die erforderlichen Angaben (siehe oben) den Empfängern nicht vorgelegt werden.

Das folgende Beispiel erfüllt die Anforderungen der Mobilfunkanbieter für einen Anwendungsfall mit Multi-Faktor-Authentifizierung.

![\[Ein step-by-step Modell des Opt-In-Workflows zur Aktivierung der Multi-Faktor-Authentifizierung (MFA) für ein Benutzerkonto mit. ExampleCorp Der Vorgang beginnt damit, dass der Benutzer grundlegende Kontoinformationen wie Name und E-Mail-Adresse angibt. Als Nächstes entscheidet der Benutzer, ob MFA für zusätzliche Sicherheit aktiviert werden soll. Wenn MFA aktiviert ist, wählt der Benutzer aus, wie er das MFA-Token erhalten möchte, mit Optionen wie Textnachricht oder Telefonanruf. Wenn der Benutzer Textnachricht auswählt, erhält er eine SMS mit einem Bestätigungscode. Im letzten Schritt muss der Benutzer den erhaltenen Code eingeben, um seine Telefonnummer zu bestätigen und den Anmeldevorgang abzuschließen. Dieses Modell stellt sicher, dass alle zur Einhaltung der SMS-Vorschriften erforderlichen Angaben gemacht werden.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/best-practices-usecase.png)


Es enthält finalisierten Text und Bilder und zeigt den gesamten Opt-in-Workflow mit Anmerkungen. Im Opt-in-Workflow muss der Kunde eindeutige, absichtliche Maßnahmen ergreifen, um seine Zustimmung zum Erhalt von Textnachrichten zu erteilen. Der Workflow enthält außerdem alle erforderlichen Angaben.

### Andere Opt-in-Workflowtypen
<a name="channels-sms-best-practices-obtain-permission-other"></a>

Mobilfunkanbieter akzeptieren auch Opt-in-Workflows außerhalb von Anwendungen und Websites wie mündliches oder schriftliches Opt-in, wenn dies den oben genannten Anforderungen entspricht. Ein konformer Opt-in-Workflow und ein mündliches oder schriftliches Skript holen die ausdrückliche Zustimmung des Empfängers ein, einen bestimmten Nachrichtentyp zu erhalten. Beispiele hierfür sind das mündliche Skript, das ein Kundendienstmitarbeiter verwendet, um die Zustimmung einzuholen, bevor er die Daten in eine Servicedatenbank aufnimmt, oder eine Telefonnummer, die auf einem Werbeflyer aufgeführt ist. Um ein Modell dieser Arten von Opt-in-Workflows zu erstellen, können Sie einen Screenshot Ihres Anmeldeskripts, Marketingmaterials oder Ihrer Datenbank, in der Zahlen gesammelt werden, bereitstellen. Mobilfunkanbieter haben möglicherweise zusätzliche Fragen zu diesen Anwendungsfällen, wenn ein Opt-in nicht klar ist oder der Anwendungsfall bestimmte Volumina überschreitet.

## Nicht an alte Listen senden
<a name="channels-sms-best-practices-old-lists"></a>

Empfänger ändern ihre Telefonnummer häufig. Eine Telefonnummer, für die Sie vor zwei Jahren eine Zustimmung zur Kontaktaufnahme eingeholt haben, könnte heute jemand anderem gehören. Verwenden Sie keine alte Liste von Telefonnummern für ein neues Messaging-Programm. Andernfalls werden wahrscheinlich einige Nachrichten ihren Empfänger nicht erreichen, weil die Nummer nicht mehr vergeben ist, und einige Personen werden sich abmelden, weil sie sich nicht erinnern können, Ihnen ihre Zustimmung gegeben zu haben.

## Prüfung Ihrer Kundenlisten
<a name="channels-sms-best-practices-audit-lists"></a>

Wenn Sie wiederkehrende SMS-Kampagnen versenden, sollten Sie Ihre Kundenlisten regelmäßig überprüfen. Dadurch stellen Sie sicher, dass nur Kunden, die an Ihren Nachrichten interessiert sind, diese auch erhalten. 

Senden Sie bei der Prüfung Ihrer Liste jedem angemeldeten Kunden eine Nachricht, die diesen an sein Abonnement erinnert, begleitet von Anleitungen zum eventuellen Abbestellen der Nachrichten. Eine solche Erinnerungsnachricht kann wie folgt aussehen:

`You're subscribed to ExampleCorp alerts. Msg & data rates may apply. Reply HELP for help, STOP to unsubscribe.`

## Aufbewahren von Aufzeichnungen
<a name="channels-sms-best-practices-keep-records"></a>

Führen Sie Aufzeichnungen, aus denen hervorgeht, wann ein Kunde den Erhalt von SMS-Nachrichten von Ihnen angefordert hat und welche Nachrichten Sie an welche Kunden senden. Viele Ländern und Regionen auf der Welt fordern Sender von SMS-Nachrichten auf, dieses so aufzubewahren, dass Sie problemlos abgerufen werden können. Auch Mobilfunkanbieter können diese Informationen jederzeit von Ihnen anfordern. Die genauen Informationen, die Sie bereitstellen müssen, variieren je nach Land oder Region. Weitere Informationen über Aufbewahrungsanforderungen finden Sie in den Bestimmungen zu kommerziellem SMS Messaging in den Ländern oder Regionen, in denen Ihre Kunden ansässig sind.

Es kann vorkommen, dass ein Anbieter oder eine Regulierungsbehörde von uns verlangt, dass wir nachweisen, dass Kunden sich dafür entschieden haben, Nachrichten von Ihnen zu empfangen. Support Kontaktiert Sie in diesen Situationen mit einer Liste der Informationen, die der Transporteur oder die Agentur benötigt. Wenn Sie die notwendigen Informationen nicht bereitstellen können, schränken wir Ihre Möglichkeit, weitere SMS-Nachrichten zu senden, möglicherweise ein.

## Formulieren Sie Ihre Nachrichten klar, ehrlich und präzise
<a name="channels-sms-best-practices-appropriate-content"></a>

SMS ist ein einzigartiges Medium. Das character-per-message 160-Limit bedeutet, dass Ihre Nachrichten präzise sein müssen. Techniken, die Sie möglicherweise in anderen Kommunikationskanälen wie E-Mail verwenden, gelten möglicherweise nicht für den SMS-Kanal und wirken möglicherweise sogar unehrlich oder irreführend, wenn sie mit SMS-Nachrichten verwendet werden. Wenn der Inhalt Ihrer Nachrichten nicht mit bewährten Methoden übereinstimmt, ignorieren die Empfänger Ihre Nachrichten möglicherweise. Im schlimmsten Fall identifizieren die Mobilfunkanbieter Ihre Nachrichten möglicherweise als Spam und blockieren künftige Nachrichten von Ihrer Telefonnummer.

Dieser Abschnitt enthält einige Tipps und Anregungen zum Erstellen eines effektiven SMS-Nachrichtentexts.

### Identifizieren Sie sich als Absender
<a name="channels-sms-best-practices-appropriate-content-identify"></a>

Ihre Empfänger sollten sofort erkennen können, dass eine Nachricht von Ihnen stammt. Absender, die diese bewährte Methode befolgen, geben am Anfang jeder Nachricht einen identifizierenden Namen („Programmname“) an.

**Vermeiden Sie Folgendes:**  
`Your account has been accessed from a new device. Reply Y to confirm.`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Financial Alerts: You have logged in to your account from a new device. Reply Y to confirm, or STOP to opt-out.`

### Versuchen Sie nicht, Ihre Nachricht wie eine Nachricht aussehen zu person-to-person lassen
<a name="channels-sms-best-practices-appropriate-content-p2p"></a>

Einige Vermarkter sind versucht, ihren SMS-Nachrichten eine persönliche Note zu verleihen, indem sie den Eindruck erwecken, dass ihre Nachrichten von einer Person stammen. Diese Strategie kann jedoch dazu führen, dass Ihre Nachricht wie ein Phishing-Versuch erscheint.

**Vermeiden Sie Folgendes:**  
`Hi, this is Jane. Did you know that you can save up to 50% at Example.com? Click here for more info: https://www.example.com.`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Offers: Save 25-50% on sale items at Example.com. Click here to browse the sale: https://www.example.com. Text STOP to opt-out.`

### Seien Sie vorsichtig, wenn Sie über Geld sprechen.
<a name="channels-sms-best-practices-appropriate-content-money"></a>

Betrüger machen sich oft den Wunsch der Menschen zunutze, Geld zu sparen und zu erhalten. Lassen Sie Angebote nicht so erscheinen, als seien sie zu gut, um wahr zu sein. Nutzen Sie die Verlockung des Geldes nicht, um Menschen zu täuschen. Verwenden Sie keine Währungssymbole, um Geldbeträge anzugeben.

**Vermeiden Sie Folgendes:**  
`Save big $$$ on your next car repair by going to https://www.example.com.`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Offers: Your ExampleCorp insurance policy gets you discounts at 2300+ repair shops nationwide. More info at https://www.example.com. Text STOP to opt-out.`

### Verwenden Sie nur die notwendigen Zeichen
<a name="channels-sms-best-practices-appropriate-content-characters"></a>

Unternehmen neigen oft dazu, ihre eingetragenen Marken zu schützen, indem sie Markensymbole wie ™ oder ® in ihre Nachrichten aufnehmen. Diese Symbole sind jedoch nicht Teil des Standardzeichensatzes (bekannt als GSM-Alphabet), der in einer SMS-Nachricht mit 160 Zeichen enthalten sein kann. Wenn Sie eine Nachricht senden, die eines dieser Zeichen enthält, wird Ihre Nachricht automatisch mit einem anderen Zeichencodierungssystem gesendet, das nur 70 Zeichen pro Nachricht unterstützt. Infolgedessen könnte Ihre Nachricht in mehrere Teile zerlegt werden. Da Ihnen jeder gesendete Nachrichtenteil in Rechnung gestellt wird, kann die Nachricht Sie mehr kosten als erwartet. Darüber hinaus erhalten Ihre Empfänger statt einer einzigen Nachricht möglicherweise mehrere aufeinanderfolgende Nachrichten von Ihnen. Weitere Informationen zur SMS-Zeichencodierung erhalten Sie unter [SMS-Zeichenbeschränkungen in Amazon SNS](#channels-sms-limitations-characters).

**Vermeiden Sie Folgendes:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget® at example.com and use the promo code WIDGET.`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget(R) at example.com and use the promo code WIDGET.`

**Anmerkung**  
Die beiden vorherigen Beispiele sind fast identisch. Das erste Beispiel enthält jedoch ein Symbol für eine eingetragene Marke (®), das nicht Bestandteil des GSM-Alphabets ist. Dadurch wird das erste Beispiel in zwei Nachrichtenteilen gesendet, während das zweite Beispiel als ein Nachrichtenteil seinen Empfänger erreicht.

### Verwenden gültiger, sicherer Links
<a name="channels-sms-best-practices-appropriate-content-links"></a>

Wenn Ihre Nachricht Links enthält, überprüfen Sie die Links, um sicherzustellen, dass sie funktionieren. Testen Sie Ihre Links auf einem Gerät außerhalb Ihres Unternehmensnetzwerks, um sicherzustellen, dass sie ordnungsgemäß aufgelöst werden. Aufgrund der Beschränkung von 160 Zeichen für SMS-Nachrichten URLs kann sehr lange Nachrichten auf mehrere Nachrichten aufgeteilt werden. Sie sollten Umleitungsdomänen verwenden, um verkürzte Inhalte bereitzustellen. URLs Sie sollten jedoch keine kostenlosen Linkverkürzungsdienste, wie tinyurl.com oder bitly.com, verwenden, da Netzbetreiber dazu neigen, Nachrichten zu filtern, die Links zu diesen Domänen enthalten. Sie können jedoch kostenpflichtige Linkverkürzungsdienste nutzen, solange Ihre Links auf eine Domäne verweisen, die ausschließlich der Nutzung Ihres Unternehmens oder Ihrer Organisation vorbehalten ist. 

**Vermeiden Sie Folgendes:**  
`Go to https://tinyurl.com/4585y8mr today for a special offer!`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Offers: Today only, get an exclusive deal on an ExampleCorp Widget. See https://a.co/cFKmaRG for more info. Text STOP to opt-out.`

### Verwenden Sie nur eine begrenzte Anzahl von Abkürzungen
<a name="channels-sms-best-practices-appropriate-content-abbrev"></a>

Das Limit von 160 Zeichen für den SMS-Kanal verleitet einige Absender dazu, in ihren Nachrichten verstärkt Abkürzungen zu verwenden. Die übermäßige Verwendung von Abkürzungen kann jedoch vielen Lesern unprofessionell erscheinen und dazu führen, dass einige Benutzer Ihre Nachricht als Spam melden. Es ist durchaus möglich, eine zusammenhängende Nachricht zu schreiben, ohne übermäßig viele Abkürzungen zu verwenden.

**Vermeiden Sie Folgendes:**  
`Get a gr8 deal on ExampleCorp widgets when u buy a 4-pack 2day.`

**Versuchen Sie stattdessen dieses Linkformat:**  
`ExampleCorp Alerts: Today only—an exclusive deal on ExampleCorp Widgets at example.com. Text STOP to opt-out.`

## Angemessene Antworten
<a name="channels-sms-best-practices-respond-appropriately"></a>

Wenn ein Empfänger auf Ihre Nachrichten antwortet, stellen Sie sicher, dass Sie mit nützlichen Informationen reagieren. Zum Beispiel: Wenn ein Kunde auf eine Ihrer Nachrichten mit dem Schlüsselwort „HILFE“ antwortet, senden Sie diesem Informationen zu dem von ihm abonnierten Programm, zu der Anzahl der pro Monat gesendeten Nachrichten und Möglichkeiten zur Kontaktaufnahme mit Ihnen für weitere Informationen zu. Eine „HILFE“-Antwort kann wie folgt aussehen:

`HELP: ExampleCorp alerts: email help@example.com or call 425-555-0199. 2 msgs/month. Msg & data rates may apply. Reply STOP to cancel.`

Wenn ein Kunde mit dem Schlüsselwort „STOPP“ antwortet, teilen Sie ihm mit, dass er fortan keine weiteren Nachrichten mehr erhalten wird. Eine „STOPP“-Antwort kann wie folgt aussehen:

`You're unsubscribed from ExampleCorp alerts. No more messages will be sent. Reply HELP, email help@example.com, or call 425-555-0199 for more info.`

## Anpassen Ihres Sendens basierend auf der Kundenbeteiligung
<a name="channels-sms-best-practices-adjust-engagement"></a>

Die Prioritäten Ihrer Kunden können sich mit der Zeit ändern. Wenn Kunden Ihre Nachrichten nicht mehr nützlich finden, bestellen sie sie möglicherweise ganz ab oder melden sie sogar als unerwünscht. Daher ist es wichtig, dass Sie Ihr Sendeverhalten auf der Grundlage der Kundenbeteiligung anpassen.

Für Kunden, die nur selten mit Ihren Nachrichten interagieren, sollten Sie die Häufigkeit Ihrer Nachrichten entsprechend anpassen. Wenn Sie z. B. wöchentliche Nachrichten an interessierte Kunden senden, können Sie für weniger interessierte Kunden einen monatlichen Kurzbericht erstellen. 

Entfernen Sie schließlich Kunden, die niemals mit Ihren Nachrichten interagieren, vollständig aus Ihren Kundenlisten. Dieser Schritt wird verhindert, dass die Kunden irgend wann verärgert auf Ihre Nachrichten reagieren. Außerdem sparen Sie dadurch Geld und schützen Ihren guten Ruf als Sender.

## Senden zu angemessenen Zeiten
<a name="channels-sms-best-practices-appropriate-times"></a>

Senden Sie Nachrichten nur während üblicher Arbeitszeiten am Tage. Wenn Sie Nachrichten zur Mittagszeit oder mitten in der Nacht senden, ist es sehr wahrscheinlich, dass Kunden Ihre Nachrichten abbestellen, um davon nicht mehr gestört zu werden. Darüber hinaus ist es nicht sinnvoll, SMS-Nachrichten dann zu senden, wenn Ihre Kunden nicht sofort darauf reagieren können. 

Wenn Sie Kampagnen oder Journeys an sehr große Zielgruppen senden, überprüfen Sie die Durchsatzraten für Ihre Ursprungsnummern. Teilen Sie die Anzahl der Empfänger durch Ihre Durchsatzrate, um zu bestimmen, wie lange es dauert, Nachrichten an alle Ihre Empfänger zu senden.

## Vermeiden Sie Ermüdungen durch die Nutzung mehrerer Kanäle
<a name="channels-sms-best-practices-cross-channel-fatigue"></a>

Wenn Sie in Ihren Kampagnen mehrere Kommunikationskanäle (z. B. E-Mail, SMS und Push-Nachrichten) verwenden, senden Sie nicht die gleiche Nachricht über jeden Kanal. Wenn Sie dieselbe Nachricht gleichzeitig über mehrere Kanäle senden, fühlen sich Ihre Kunden sehr wahrscheinlich dadurch eher gestört.

## Verwenden dedizierter Kurzwahlnummern
<a name="channels-sms-best-practices-dedicated-short-codes"></a>

Wenn Sie Kurzwahlnummern verwenden, unterhalten Sie eine separate Kurzwahlnummer für jede Marke und jeden Nachrichtentyp. Wenn Ihr Unternehmen z. B. zwei Marken hat, verwenden Sie für jede davon eine eigene Kurzwahlnummer. Wenn Sie Transaktions- und Werbenachrichten versenden, verwenden Sie auch dafür jeweils separate Kurzwahlnummern. Weitere Informationen zum Anfordern von Kurzcodes finden Sie unter [Anfordern von Kurzcodes für SMS-Nachrichten mit AWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-short-code.html) im *AWS End User Messaging SMS Benutzerhandbuch*.

## Bestätigen Sie Ihre Ziel-Telefonnummern
<a name="channels-sms-best-practices-verify-destination-numbers"></a>

Wenn Sie SMS-Nachrichten über Amazon SNS senden, wird Ihnen jeder Nachrichtenteil, den Sie senden, in Rechnung gestellt. Der Preis, den Sie pro Nachrichtenteil zahlen, hängt vom Land oder der Region des Empfängers ab. Weitere Informationen zu SMS-Preisen finden Sie unter [AWS Weltweite SMS-Preise](https://aws.amazon.com/sns/sms-pricing).

Wenn Amazon SNS eine Anfrage zum Senden einer SMS-Nachricht akzeptiert (als Ergebnis eines [SendMessages](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#SendMessages)API-Aufrufs oder als Ergebnis einer gestarteten Kampagne oder Journey), wird Ihnen das Senden dieser Nachricht in Rechnung gestellt. Diese Aussage gilt auch dann, wenn der beabsichtigte Empfänger die Nachricht nicht erhält. Wenn beispielsweise die Telefonnummer des Empfängers nicht mehr vergeben ist oder wenn die Nummer, an die Sie die Nachricht gesendet haben, keine gültige Mobiltelefonnummer war, wird Ihnen das Senden der Nachricht dennoch in Rechnung gestellt.

Amazon SNS akzeptiert gültige Anfragen zum Senden von SMS-Nachrichten und versucht, diese zuzustellen. Aus diesem Grund sollten Sie überprüfen, ob die Telefonnummern, an die Sie Nachrichten senden, gültige Mobiltelefonnummern sind. Sie können AWS End User Messaging SMS damit eine Testnachricht senden, um festzustellen, ob eine Telefonnummer gültig ist und um welche Art von Nummer es sich handelt (z. B. Mobilfunk, Festnetz oder VoIP). Weitere Informationen finden [Sie im *AWS End User Messaging SMS Benutzerhandbuch* unter Senden einer Testnachricht mit dem SMS-Simulator](https://docs.aws.amazon.com/sms-voice/latest/userguide/getting-started-tutorial.html#getting-started-tutorial-step3).

## Erstellen Sie Entwürfe unter Beachtung der Redundanz
<a name="channels-sms-best-practices-redundancy"></a>

Für geschäftskritische Messaging-Programme empfehlen wir, Amazon SNS in mehr als einer AWS-Region zu konfigurieren. Amazon SNS ist in mehreren AWS-Regionen Varianten erhältlich. Eine Liste der Regionen, in denen Amazon SNS erhältlich ist, finden Sie in der [Allgemeine AWS-Referenz](https://docs.aws.amazon.com/general/latest/gr/sns.html). 

Die Telefonnummern, die Sie für SMS-Nachrichten verwenden – einschließlich Kurzwahl-, Langwahl-, gebührenfreien Nummern und 10DLC-Nummern – können in AWS-Regionen nicht repliziert werden. Damit Sie Amazon SNS in mehreren Regionen verwenden können, müssen Sie daher in jeder Region, in der Sie Amazon SNS verwenden möchten, separate Telefonnummern anfordern. Wenn Sie beispielsweise eine Kurzvorwahl verwenden, um Textnachrichten an Empfänger in den Vereinigte Staaten zu senden, müssen Sie in jeder, AWS-Region die Sie verwenden möchten, separate Kurzcodes anfordern.

In einigen Ländern können Sie auch mehrere Arten von Telefonnummern verwenden, um die Redundanz zu erhöhen. In den USA können Sie beispielsweise Kurzwahlnummern, 10DLC-Nummern und gebührenfreie Nummern anfordern. Jeder dieser Telefonnummerntypen nimmt einen anderen Weg zum Empfänger. Die Verfügbarkeit mehrerer Rufnummerntypen — entweder in derselben AWS-Region oder auf mehrere verteilt AWS-Regionen— bietet eine zusätzliche Redundanzebene, die zur Verbesserung der Ausfallsicherheit beitragen kann.

## SMS-Limits und -Einschränkungen
<a name="channels-sms-best-practices-limits"></a>

Informationen zu den Beschränkungen und Beschränkungen für [SMS finden Sie unter Beschränkungen und Einschränkungen für SMS und MMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations.html) im *AWS End User Messaging SMS Benutzerhandbuch*.

## Verwalten von Schlüsselwörtern für die Abmeldung
<a name="channels-sms-best-practices-optout-keywords"></a>

SMS-Empfänger können ihre Geräte verwenden, um Nachrichten abzubestellen, indem sie mit einem Schlüsselwort antworten. Weitere Informationen finden Sie unter [Deaktivieren des Empfangs von SMS-Nachrichten](sms_manage.md#sms_manage_optout).

## CreatePool
<a name="channels-sms-best-practices-createpool"></a>

Verwenden Sie die API-Aktion `CreatePool`, um einen neuen Pool zu erstellen und diesem Pool eine festgelegte Ursprungsidentität zuzuordnen. Weitere Informationen finden Sie [CreatePool](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_CreatePool.html)unter *AWS End User Messaging SMS API-Referenz*.

## PutKeyword
<a name="channels-sms-best-practices-putkeyword"></a>

Verwenden Sie die `PutKeyword` API-Aktion, um eine Schlüsselwortkonfiguration für eine ursprüngliche Telefonnummer oder einen Pool zu erstellen oder zu aktualisieren. Weitere Informationen finden Sie [PutKeyword](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_PutKeyword.html)unter *AWS End User Messaging SMS API-Referenz.*

## Verwalten von Nummerneinstellungen
<a name="channels-sms-best-practices-number-settings"></a>

Informationen zum Verwalten der Einstellungen für die speziellen Kurz- und Langcodes, die Sie beim AWS Support angefordert und Ihrem Konto zugewiesen haben, finden Sie unter [Ändern der Funktionen einer Telefonnummer mit AWS CLI der](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-change-capabilitiy.html) Eingabe *AWS End User Messaging SMS*.

## SMS-Zeichenbeschränkungen in Amazon SNS
<a name="channels-sms-limitations-characters"></a>

Eine einzelne SMS-Nachricht kann bis zu 140 Bytes enthalten. Die Anzahl der Zeichen für eine einzelne SMS-Nachricht hängt vom Typ der in der Nachricht verwendeten Zeichen ab.

Wenn Ihre Nachricht nur [Zeichen aus dem Zeichensatz GSM 03.38](#channels-sms-limitations-characters-gsm-alphabet), auch als GSM 7-Bit-Alphabet bekannt, enthält, sind bis zu 160 Zeichen zulässig. Enthält Ihre Nachricht nicht im Zeichensatz GSM 03.38 enthaltene Zeichen, sind 70 Zeichen zulässig. Wenn Sie eine SMS-Nachricht senden, bestimmt Amazon SNS automatisch die effizienteste Kodierung.

Enthält eine Nachricht mehr als die maximale Anzahl von Zeichen, wird die Nachricht in mehrere Teile aufgeteilt. Wenn Nachrichten in mehrere Teile aufgeteilt werden, enthält jedes Teil zusätzliche Informationen über den Nachrichtenteil, der ihm vorangestellt ist. Empfängt das Gerät des Empfängers dann die so getrennten Nachrichtenteile, verwendet es diese zusätzlichen Informationen, um alle Nachrichtenteile in der richtigen Reihenfolge anzuzeigen. Je nach Mobilfunkanbieter und Gerät des Empfängers können mehrere Nachrichten als eine Nachricht oder als Sequenz von separaten Nachrichten angezeigt werden. Daher verringert sich die Anzahl der Zeichen in den einzelnen Nachrichten auf 153 (für Nachrichten, die nur GSM 03.38 Zeichen enthalten) oder auf 67 (für Nachrichten, die andere Zeichen enthalten). Sie können vor dem Senden schätzen, wie viele Nachrichtenteile Ihre Nachricht enthält, indem Sie einen SMS-Längenrechner verwenden (es sind mehrere online verfügbar). Die maximal unterstützte Größe einer Nachricht beträgt 1600 GSM-Zeichen oder 630 Nicht-GSM-Zeichen. Weitere Informationen zum Durchsatz und zur Nachrichtengröße finden Sie unter [Begrenzungen für SMS-Zeichen in Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-mps.html) im *Amazon-Pinpoint-Benutzerhandbuch*.

Wenn Sie die Anzahl der Nachrichtenteile für jede gesendete Nachricht anzeigen möchten, sollten Sie zuerst die [Ereignisstreamingeinstellungen](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-event-streams.html) aktivieren. Dann erzeugt Amazon SNS ein `_SMS.SUCCESS`-Ereignis, sobald die Nachricht an den Mobilfunkanbieter des Empfängers zugestellt wurde. Der `_SMS.SUCCESS`-Ereignisdatensatz enthält ein Attribut namens `attributes.number_of_message_parts`. Dieses Attribut gibt die Anzahl der Nachrichtenteile an, die in der Nachricht enthalten sind.

**Wichtig**  
Wenn Sie eine Nachricht mit mehr als einem Nachrichtenteil senden, wird Ihnen die Anzahl der enthaltenen Nachrichtenteile in Rechnung gestellt.

### Zeichensatz GSM 03.38
<a name="channels-sms-limitations-characters-gsm-alphabet"></a>

In der folgenden Tabelle sind alle Zeichen aus dem Zeichensatz GSM 03.38 aufgeführt. Wenn Sie eine Nachricht senden, die nur Zeichen aus der folgenden Tabelle enthält, kann die Nachricht bis zu 160 Zeichen enthalten. 


| GSM 03.38-Standardzeichen | 
| --- | 
| A | B | C | D | E | F | G | H | I | J | K | L | M | 
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 
| a | b | c | d | e | f | g | h | i | j | k | l | i | 
| n | o | p | q | r | S | t | u | V | w | x | y | z | 
| à | Å | å | Ä | ä | Ç | É | é | è | ì | Ñ | ñ | ò | 
| Ø | ø | Ö | ö | ù | Ü | ü | Æ | æ | ß | 0 | 1 | 2 | 
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | & | \$1 | @ | : | , | ¤ | 
| \$1 | = | \$1 | > | \$1 | - | ¡ | ¿ | ( | < | % | . | \$1 | 
| £ | ? | " | ) | § | ; | ' | / | \$1 | ¥ | Δ | Φ | Γ | 
| Λ | Ω | Π | Ψ | Σ | Θ | Ξ |  |  |  |  |  |  | 

Der Zeichensatz GSM 03.38 enthält neben den in der vorherigen Tabelle gezeigten Symbole noch weitere. Diese Zeichen zählen jedoch als zwei Zeichen, da sie alle ein unsichtbares Escape-Zeichen enthalten:
+ ^
+ \$1
+ \$1
+ \$1
+ [
+ ]
+ \$1
+ \$1
+ €

Darüber hinaus enthält der Zeichensatz GSM 03.38 die folgenden Zeichen, die nicht gedruckt werden:
+ Ein Leerzeichen.
+ Ein Zeilenvorschub-Steuerzeichen, das das Ende eine Textzeile und den Beginn einer neuen markiert.
+ Ein Wagenrücklauf-Steuerzeichen, das zum Anfang einer Textzeile führt (folgt in der Regel einem Zeilenvorschubzeichen).
+ Ein Escape-Steuerzeichen, das automatisch zu den Zeichen in der vorherigen Liste hinzugefügt wird.

### Beispielnachrichten
<a name="channels-sms-limitations-characters-example-messages"></a>

Dieser Abschnitt enthält Beispiele für SMS-Nachrichten. In diesem Abschnitt werden für jedes Beispiel die Gesamtzahl der Zeichen sowie die Anzahl der Nachrichtenteile einer Nachricht angezeigt.

**Beispiel 1: Lange Nachricht, die nur Zeichen im GSM 03.38-Alphabet enthält**  
Die folgende Nachricht enthält nur Zeichen, die im GSM 03.38-Alphabet enthalten sind.

`Hello Carlos. Your Example Corp. bill of $100 is now available. Autopay is scheduled for next Thursday, April 9. To view the details of your bill, go to https://example.com/bill1.`

Die obige Nachricht enthält 180 Zeichen und muss daher in mehrere Nachrichtenteile aufgeteilt werden. Wenn eine Nachricht in mehrere Nachrichtenteile aufgeteilt wird, kann jedes Teil 153 GSM 03.38-Zeichen enthalten. Daher wird diese Nachricht in zwei Teilen gesendet.

**Beispiel 2: Nachricht, die Multibyte-Zeichen enthält**  
Die folgende Nachricht enthält chinesische Zeichen, die nicht dem GSM 03.38-Alphabet angehören. 

`亚马逊公司是一家总部位于美国西雅图的跨国电子商务企业，业务起始于线上书店，不久之后商品走向多元化。杰夫·贝佐斯于1994年7月创建了这家公司。`

Die obige Nachricht enthält 71 Zeichen. Da jedoch fast alle Zeichen in der Nachricht nicht im GSM 03.38-Alphabet enthalten sind, werden zwei Nachrichtenteile gesendet. Jedes dieser Nachrichtenteile kann maximal 67 Zeichen enthalten.

**Beispiel 3: Nachricht, die ein einzelnes Nicht-GSM-Zeichen enthält**  
Die folgende Nachricht enthält ein Zeichen, das nicht Teil des GSM 03.38-Alphabets ist. In diesem Beispiel ist das Zeichen ein schließendes einfaches Anführungszeichen (’), das kein regulärer Apostroph (') ist. Textverarbeitungsanwendungen wie Microsoft Word ersetzen häufig automatisch Apostrophe durch schließende einfache Anführungszeichen. Wenn Sie Ihre SMS-Nachrichten in Microsoft Word entwerfen und in Amazon SNS einfügen, sollten Sie diese Sonderzeichen entfernen und durch Apostrophe ersetzen.

`John: Your appointment with Dr. Salazar’s office is scheduled for next Thursday at 4:30pm. Reply YES to confirm, NO to reschedule.`

Die obige Nachricht enthält 130 Zeichen. Da sie jedoch das schließende einfache Anführungszeichen enthält, das nicht Teil des GSM 03.38-Alphabets ist, werden zwei Nachrichtenteile gesendet.

Wenn Sie das schließende einfache Anführungszeichen in dieser Nachricht durch ein Apostroph (das im GSM 03.38-Alphabet enthalten ist) ersetzen, wird nur eine Nachricht gesendet.

# Senden von mobilen Push-Benachrichtigungen mit Amazon SNS
<a name="sns-mobile-application-as-subscriber"></a>

Sie können Amazon SNS verwenden, um Push-Benachrichtigungen direkt an Apps auf Mobilgeräten zu senden. An einen mobilen Endpunkt gesendete Push-Benachrichtigungen können in der mobilen App als Nachrichtenwarnungen, Badge-Updates oder akustische Benachrichtigungen angezeigt werden. 

![\[Übersicht über mobile Amazon SNS SNS-Push-Benachrichtigungen\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-mobile-push-notifications.png)


**Topics**
+ [So funktionieren Amazon SNS SNS-Benutzerbenachrichtigungen](#sns-how-user-notifications-work)
+ [Push-Benachrichtigungen mit Amazon SNS einrichten](#sns-user-notifications-process-overview)
+ [Eine mobile App in Amazon SNS einrichten](mobile-push-send.md)
+ [Amazon SNS für mobile Push-Benachrichtigungen verwenden](mobile-push-notifications.md)
+ [Attribute der mobilen Amazon SNS SNS-App](sns-msg-status.md)
+ [Benachrichtigungen über Amazon SNS SNS-Anwendungsereignisse für mobile Anwendungen](application-event-notifications.md)
+ [Mobile Push-API-Aktionen](mobile-push-api.md)
+ [Häufige Amazon SNS SNS-Push-API-Fehler für Mobilgeräte](mobile-push-api-error.md)
+ [Verwendung des Time-to-Live-Nachrichten-Attributs von Amazon SNS für mobile Push-Benachrichtigungen](sns-ttl.md)
+ [Unterstützte Regionen für mobile Amazon SNS SNS-Anwendungen](sns-mobile-push-supported-regions.md)
+ [Bewährte Methoden für die Verwaltung von mobilen Amazon SNS SNS-Push-Benachrichtigungen](mobile-push-notifications-best-practices.md)

## So funktionieren Amazon SNS SNS-Benutzerbenachrichtigungen
<a name="sns-how-user-notifications-work"></a>

Senden Sie Push-Benachrichtigungen an mobile Geräte und Desktops mithilfe einer der folgenden unterstützten Push-Benachrichtigungsservices: 
+ Amazon Device Messaging (ADM)
+ Apple Push Notification Service (APNs) für iOS und Mac OS X
+ Baidu Cloud Push (Baidu)
+ Firebase Cloud Messaging (FCM)
+ Microsoft Push Notification Service für Windows Phone (MPNS)
+ Windows Push Notification Services (WNS)

Push-Benachrichtigungsdienste wie FCM APNs und FCM halten eine Verbindung zu jeder App und jedem zugehörigen Mobilgerät aufrecht, die für die Nutzung ihres Dienstes registriert sind. Wenn eine App oder ein Mobilgerät registriert werden, gibt der Push-Benachrichtigungsservice ein Gerätetoken zurück. Amazon SNS verwendet das Gerätetoken, um einen mobilen Endpunkt zu erstellen, zu dem mobile Push-Benachrichtigungen direkt gesendet werden können. Damit Amazon SNS mit den verschiedenen Push-Benachrichtigungs-Services kommunizieren kann, müssen Sie Amazon SNS Ihre Anmeldeinformationen für die Push-Benachrichtigungs-Services mitteilen, um sie in Ihrem Namen zu verwenden. Weitere Informationen finden Sie unter [Push-Benachrichtigungen mit Amazon SNS einrichten](#sns-user-notifications-process-overview). 

 Zusätzlich zum Senden von direkten Push-Benachrichtigungen, können Sie mit Amazon SNS auch Benachrichtigungen an mobile Endpunkte senden, die ein Thema abonniert haben. Das Konzept ist das gleiche, als wenn andere Endpunkttypen, wie Amazon SQS, HTTP/S, E-Mail und SMS ein Thema abonnieren, wie unter [Was ist Amazon SNS?](welcome.md) beschrieben. Der Unterschied besteht darin, dass Amazon SNS über Push-Benachrichtigungsservices kommuniziert, damit die abonnierten mobilen Endpunkte die an das Thema gesendeten Benachrichtigungen empfangen können.

## Push-Benachrichtigungen mit Amazon SNS einrichten
<a name="sns-user-notifications-process-overview"></a>

1. [Rufen Sie die Anmeldeinformationen und das Geräte-Token](sns-prerequisites-for-mobile-push-notifications.md) für die mobilen Plattformen ab, die Sie unterstützen möchten.

1. Verwenden Sie die Anmeldeinformationen, um ein Plattformanwendungsobjekt (`PlatformApplicationArn`) mit Amazon SNS zu erstellen. Weitere Informationen finden Sie unter [Erstellen einer Amazon SNS-Plattformanwendung](mobile-push-send-register.md).

1. Verwenden Sie die zurückgegebenen Anmeldeinformationen, um für Ihre mobile App und Ihr Gerät ein Geräte-Token von Push-Benachrichtigungs-Service anzufordern. Das erhaltene Token repräsentiert Ihre mobile App und Ihr Gerät.

1. Erstellen Sie unter Verwendung des Geräte-Tokens und des `PlatformApplicationArn` mit Amazon SNS ein Endpunkt-Objekt für die Plattform (`EndpointArn`). Weitere Informationen finden Sie unter [Einrichtung eines Amazon SNS SNS-Plattformendpunkts für mobile Benachrichtigungen](mobile-platform-endpoint.md).

1. Verwenden Sie den `EndpointArn`, um [eine Nachricht an eine App auf einem Mobilgerät zu veröffentlichen](mobile-push-send.md). Weitere Informationen finden Sie unter [Direkte Amazon SNS SNS-Nachrichtenübermittlung auf Mobilgeräten](mobile-push-notifications.md#mobile-push-send-directmobile) und der API [Veröffentlichen](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) in der Amazon Simple Notification Service API-Referenz.

# Eine mobile App in Amazon SNS einrichten
<a name="mobile-push-send"></a>

In diesem Thema wird beschrieben, wie Sie mobile Anwendungen AWS-Managementkonsole mithilfe der unter beschriebenen Informationen einrichten[Voraussetzungen für Amazon SNS-Benutzerbenachrichtigungen](sns-prerequisites-for-mobile-push-notifications.md).

# Voraussetzungen für Amazon SNS-Benutzerbenachrichtigungen
<a name="sns-prerequisites-for-mobile-push-notifications"></a>

Um mit der Nutzung von mobilen Amazon SNS SNS-Push-Benachrichtigungen zu beginnen, benötigen Sie Folgendes:
+ Eine Reihe von Anmeldeinformationen für die Verbindung mit einem der unterstützten Push-Benachrichtigungsdienste: ADM, Baidu APNs, FCM, MPNS oder WNS.
+ Ein Geräte-Token oder eine Registrierungs-ID für die mobile App und das Gerät.
+ Entsprechende Amazon SNS-Konfiguration, sodass Push-Benachrichtigungen an mobile Endpunkte gesendet werden.
+ Eine mobile App, die registriert und so konfiguriert ist, dass sie einen der unterstützten Push-Benachrichtigungsservices verwenden kann.

Für die Registrierung Ihrer Anwendung mit einem Push-Benachrichtigungsservice sind mehrere Schritte erforderlich. Amazon SNS benötigt einige Informationen, die Sie dem Push-Benachrichtigungsservice mitgeteilt haben, um Push-Benachrichtigungen direkt an den mobilen Endpunkt zu senden. Im Allgemeinen benötigen Sie die erforderlichen Anmeldeinformationen zur Verbindungsherstellung mit dem Push-Benachrichtigungsservice, das vom Push-Benachrichtigungsservice bereitgestellte Geräte-Token oder eine Registrierungs-ID (die Ihr Mobilgerät und Ihre mobile App repräsentieren) sowie die mobile App, die mit dem Push-Benachrichtigungsservice registriert wurde. 

Die genaue Art der Anmeldeinformationen kann zwischen den mobilen Plattformen variieren, jedoch müssen sie in jedem Fall beim Erstellen einer Verbindung mit der Plattform angegeben werden. An jede mobile App wird ein Satz an Anmeldeinformationen ausgegeben und dieser muss verwendet werden, um eine Nachricht an eine beliebige Instance dieser App zu senden. 

Die spezifischen Namen variieren, je nachdem welcher Push-Benachrichtigungsservice verwendet wird. *Wenn Sie es beispielsweise APNs als Push-Benachrichtigungsdienst verwenden, benötigen Sie ein Geräte-Token.* Alternativ wird das Geräte-Token bei Verwendung von FCM *Registrierungs-ID* genannt. Beim *Geräte-Token* oder bei der *Registrierungs-ID* handelt es sich um eine Zeichenfolge, die vom Betriebssystem des Mobilgeräts an die Anwendung gesendet wird. Auf diese Weise wird eine Instance einer mobilen App auf einem bestimmten Mobilgerät gekennzeichnet und fungiert so als eindeutige Bezeichnung dieser App/Geräte-Paarung. 

Amazon SNS speichert die Anmeldeinformationen (sowie einige andere Einstellungen) als Plattformanwendungsressource. Die Geräte-Token (wiederum mit einigen zusätzlichen Einstellungen) werden als Objekte dargestellt, die als *Plattformendpunkte* bezeichnet werden. Jeder Plattformendpunkt gehört zu einer bestimmten Plattformanwendung und mit jedem Plattformendpunkt kann mithilfe der Anmeldeinformationen, die in der entsprechenden Plattformanwendung gespeichert sind, kommuniziert werden.

Die folgenden Abschnitte beschreiben die Voraussetzungen für jeden der unterstützten Push-Benachrichtigungsservices. Sobald Sie die erforderlichen Informationen erhalten haben, können Sie eine Push-Benachrichtigung mit dem AWS-Managementkonsole oder dem Amazon SNS SNS-Push APIs für Mobilgeräte senden. Weitere Informationen finden Sie unter [Push-Benachrichtigungen mit Amazon SNS einrichten](sns-mobile-application-as-subscriber.md#sns-user-notifications-process-overview). 

# Erstellen einer Amazon SNS-Plattformanwendung
<a name="mobile-push-send-register"></a>

Um Benachrichtigungen von Amazon SNS an mobile Endpunkte zu senden — ob direkt oder über Abonnements für ein Thema — müssen Sie zunächst eine Plattformanwendung erstellen. Nach der Registrierung der App bei AWS müssen Sie einen Endpunkt sowohl für die App als auch für das Mobilgerät erstellen. Dieser Endpunkt ermöglicht Amazon SNS, Nachrichten an das Gerät zu senden.

**So erstellen Sie eine Plattformanwendung**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich **Push-Benachrichtigungen** aus.

1. Wählen Sie im Abschnitt **Platform applications (Plattformanwendungen)** die Option **Create platform applications (Plattformanwendung erstellen)** aus.

1. Wählen Sie Ihre **AWS-Region**. Eine Liste der AWS -Regionen, in denen Sie mobile Anwendungen erstellen können, finden Sie unter [Unterstützte Regionen für mobile Amazon SNS SNS-Anwendungen](sns-mobile-push-supported-regions.md).

1. Geben Sie die folgenden **Anwendungsdetails** ein:
   + **Anwendungsname** — Geben Sie einen **Namen** für Ihre Plattformanwendung ein. Der Name muss zwischen 1 und 256 Zeichen lang sein und kann Groß- und Kleinbuchstaben, Zahlen, Unterstriche, Bindestriche und Punkte enthalten.
   + **Plattform für Push-Benachrichtigungen** — Wählen Sie den entsprechenden **Benachrichtigungsdienst** aus, bei dem die App registriert ist (z. B. Apple Push Notification Service (APNs), Firebase Cloud Messaging (FCM)).

1. Abhängig von der ausgewählten Plattform müssen Sie bestimmte Anmeldeinformationen angeben:
   + Für **APNs**(Apple Push Notification Service) — Wählen Sie zwischen **tokenbasierter oder **zertifikatsbasierter**** Authentifizierung.
     + Laden Sie für die tokenbasierte Authentifizierung eine **P8-Datei hoch (generiert über Keychain** Access).
     + Laden Sie für die zertifikatsbasierte Authentifizierung eine **.p12-Datei** hoch (ebenfalls aus Keychain Access exportiert).
   + **Für **FCM** (Firebase Cloud Messaging) — Geben Sie den Serverschlüssel aus der Firebase-Konsole ein.**
   + ****Für **andere Plattformen** (wie ADM oder GCM) — Geben Sie die entsprechenden API-Schlüssel oder Anmeldeinformationen ein.****

1. Nachdem Sie die erforderlichen Details eingegeben haben, wählen Sie **Plattformanwendung erstellen**. Diese Aktion registriert die App bei Amazon SNS und erstellt das entsprechende Plattformanwendungsobjekt.

1. Bei der Erstellung generiert Amazon SNS einen [https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html)(Amazon-Ressourcennamen) und gibt ihn zurück. Dieser ARN identifiziert Ihre Plattformanwendung eindeutig und wird bei der Erstellung von Endpunkten für mobile Geräte verwendet.

# Einrichtung eines Amazon SNS SNS-Plattformendpunkts für mobile Benachrichtigungen
<a name="mobile-platform-endpoint"></a>

Wenn sich eine App und ein Mobilgerät bei einem Push-Benachrichtigungsdienst (wie APNs Firebase Cloud Messaging) registrieren, gibt der Push-Benachrichtigungsdienst ein Geräte-Token zurück. Amazon SNS verwendet dieses Geräte-Token, um einen Plattformendpunkt zu erstellen, der als Ziel für das Senden direkter Push-Benachrichtigungen an die App auf dem Gerät dient. Der Plattformendpunkt dient als Brücke und leitet Nachrichten, die von Amazon SNS gesendet werden, an den Push-Benachrichtigungsdienst weiter, um sie an das entsprechende Mobilgerät weiterzuleiten. Weitere Informationen erhalten Sie unter [Voraussetzungen für Amazon SNS-Benutzerbenachrichtigungen](sns-prerequisites-for-mobile-push-notifications.md) und [Push-Benachrichtigungen mit Amazon SNS einrichten](sns-mobile-application-as-subscriber.md#sns-user-notifications-process-overview).

## Geräte-Token und Plattformendpunkte verstehen
<a name="device-token-platform-endpoint"></a>

Ein Geräte-Token identifiziert eindeutig ein Mobilgerät, das bei einem Push-Benachrichtigungsdienst registriert ist (z. APNs B. Firebase Cloud Messaging). Wenn sich eine App beim Push-Benachrichtigungsdienst registriert, generiert sie ein Geräte-Token, das für diese App und dieses Gerät spezifisch ist. Amazon SNS verwendet dieses Geräte-Token, um einen Plattformendpunkt innerhalb der entsprechenden Plattformanwendung zu erstellen.

Der Plattformendpunkt ermöglicht es Amazon SNS, über den Push-Benachrichtigungsdienst Push-Benachrichtigungen an das Gerät zu senden und so die Verbindung zwischen Ihrer App und dem Gerät des Benutzers aufrechtzuerhalten.

## Erstellen eines Plattformendpunkts
<a name="mobile-platform-endpoint-create"></a>

Um Push-Benachrichtigungen zu einer App per Amazon SNS zu senden, muss zuerst das Geräte-Token der App bei Amazon SNS registriert werden, indem die "create platform endpoint"-Aktion aufgerufen wird. Diese Aktion verwendet den Amazon Resource Name (ARN) der Plattformanwendung und das Geräte-Token als Parameter und gibt den ARN des erstellten Plattformendpunkts zurück.

Die [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html)Aktion bewirkt Folgendes:
+ Wenn der Plattformendpunkt bereits existiert, erstellen Sie ihn nicht erneut. Dem Aufrufer wird der ARN des vorhandenen Plattformendpunkts zurückgegeben.
+ Wenn der Plattformendpunkt mit demselben Geräte-Token, aber unterschiedlichen Einstellungen bereits vorhanden ist, erstellen Sie ihn nicht erneut. Es wird eine Ausnahme für den Aufrufer ausgelöst.
+ Wenn der Plattformendpunkt nicht existiert, erstellen Sie ihn. Dem Aufrufer wird der ARN des neu erstellten Plattformendpunkts zurückgegeben.

Sie sollten die Aktion nicht direkt bei jedem Start der Anwendung aufrufen. Sie sorgt nicht immer für die Bereitstellung eines funktionierenden Endpunkts. Dies kann zum Beispiel der Fall sein, wenn eine App auf einem Gerät deinstalliert und neu installiert wird und der Endpunkt für diese bereits vorhanden aber deaktiviert ist. Ein erfolgreicher Registrierungsprozess sollte folgendermaßen aussehen:

1. Stellen Sie sicher, dass ein Plattformendpunkt für diese App-Geräte-Kombination vorhanden ist.

1. Stellen Sie sicher, dass das Geräte-Token im Plattformendpunkt das neueste gültige Geräte-Token ist.

1. Stellen Sie sicher, dass der Plattformendpunkt aktiviert und bereit ist.

## Pseudo-Code
<a name="mobile-platform-endpoint-pseudo-code"></a>

Der folgende Pseudo-Code beschreibt ein empfohlenes Verfahren für die Erstellung eines funktionierenden, aktuellen, aktivierten Plattformendpunkts in einer Vielzahl von Startbedingungen. Dieser Ansatz funktioniert, wenn die App zum ersten Mal oder erneut registriert wird. Es ist egal, ob der Plattformendpunkt für diese App bereits vorhanden ist, ob der Plattformendpunkt aktiviert ist, ob er das richtige Geräte-Token hat und so weiter. Der Code kann mehrfach hintereinander aufgerufen werden. Er wird keine doppelten Plattformendpunkte erstellen oder einen vorhandenen Plattformendpunkt ändern, der bereits auf dem neuesten Stand und aktiviert ist.

```
retrieve the latest device token from the mobile operating system
if (the platform endpoint ARN is not stored)
  # this is a first-time registration
  call create platform endpoint
  store the returned platform endpoint ARN
endif

call get endpoint attributes on the platform endpoint ARN 

if (while getting the attributes a not-found exception is thrown)
  # the platform endpoint was deleted 
  call create platform endpoint with the latest device token
  store the returned platform endpoint ARN
else 
  if (the device token in the endpoint does not match the latest one) or 
      (GetEndpointAttributes shows the endpoint as disabled)
    call set endpoint attributes to set the latest device token and then enable the platform endpoint
  endif
endif
```

Dieser Ansatz kann jederzeit verwendet werden, wenn die App sich registrieren oder erneut registrieren möchte. Er kann auch beim Benachrichtigen von Amazon SNS über eine Änderung des Geräte-Tokens verwendet werden. In diesem Fall können Sie einfach eine Aktion mit dem neuesten Geräte-Token-Wert aufrufen. Es gibt einige wichtige Punkte zu diesem Ansatz:
+ Es gibt zwei Fälle, in denen die „create platform endpoint“-Aktion aufgerufen werden kann. Sie kann direkt zu Beginn aufgerufen werden, wenn die App ihren eigenen Plattformendpunkt-ARN nicht kennt (z. B. während der Erstregistrierung). Es wird auch aufgerufen, wenn der erste `GetEndpointAttributes` Aktionsaufruf mit einer nicht gefundenen Ausnahme fehlschlägt, was der Fall wäre, wenn die Anwendung ihren Endpunkt-ARN kennt, dieser aber gelöscht wurde.
+ Die `GetEndpointAttributes` Aktion wird aufgerufen, um den Status des Plattformendpunkts zu überprüfen, auch wenn der Plattformendpunkt gerade erstellt wurde. Dies geschieht, wenn der Plattformendpunkt bereits vorhanden, aber deaktiviert ist. In diesem Fall ist die „create platform endpoint“-Aktion erfolgreich, aber der Plattformendpunkt wird nicht aktiviert. Daher müssen Sie den Status des Plattformendpunkts vor der Rückgabe eines Erfolgs prüfen.

## AWS SDK-Beispiel
<a name="mobile-platform-endpoint-sdk-examples"></a>

Der folgende Code zeigt, wie der vorherige Pseudocode mithilfe der Amazon SNS SNS-Clients implementiert wird, die von der bereitgestellt werden. AWS SDKs

Um ein AWS SDK zu verwenden, müssen Sie es mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter [Die Dateien für die gemeinsame Konfiguration und die Anmeldeinformationen](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) im *AWS SDKs Referenzhandbuch zu Tools*.

------
#### [ CLI ]

**AWS CLI**  
**So erstellen Sie ein Plattformanwendungsendpunkt**  
Im folgenden Beispiel für `create-platform-endpoint` wird mithilfe des angegebenen Tokens ein Endpunkt für die angegebene Plattformanwendung erstellt.  

```
aws sns create-platform-endpoint \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication \
    --token EXAMPLE12345...
```
Ausgabe:  

```
{
      "EndpointArn": "arn:aws:sns:us-west-2:1234567890:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234"
}
```

------
#### [ Java ]

**SDK für Java 2.x**  
 Weitere Informationen finden Sie unter GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreatePlatformEndpointRequest;
import software.amazon.awssdk.services.sns.model.CreatePlatformEndpointResponse;
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
 *
 * In addition, create a platform application using the AWS Management Console.
 * See this doc topic:
 *
 * https://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html
 *
 * Without the values created by following the previous link, this code examples
 * does not work.
 */

public class RegistrationExample {
    public static void main(String[] args) {
        final String usage = """

            Usage:     <token> <platformApplicationArn>

            Where:
               token - The device token or registration ID of the mobile device. This is a unique 
               identifier provided by the device platform (e.g., Apple Push Notification Service (APNS) for iOS devices, Firebase Cloud Messaging (FCM) 
               for Android devices) when the mobile app is registered to receive push notifications.

               platformApplicationArn - The ARN value of platform application. You can get this value from the AWS Management Console.\s

            """;

        if (args.length != 2) {
            System.out.println(usage);
            return;
        }

        String token = args[0];
        String platformApplicationArn = args[1];
        SnsClient snsClient = SnsClient.builder()
            .region(Region.US_EAST_1)
            .build();

        createEndpoint(snsClient, token, platformApplicationArn);
    }
    public static void createEndpoint(SnsClient snsClient, String token, String platformApplicationArn) {
        System.out.println("Creating platform endpoint with token " + token);
        try {
            CreatePlatformEndpointRequest endpointRequest = CreatePlatformEndpointRequest.builder()
                .token(token)
                .platformApplicationArn(platformApplicationArn)
                .build();

            CreatePlatformEndpointResponse response = snsClient.createPlatformEndpoint(endpointRequest);
            System.out.println("The ARN of the endpoint is " + response.endpointArn());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
        }
    }
}
```

------

 Weitere Informationen finden Sie unter [Mobile Push-API-Aktionen](mobile-push-api.md).

## Fehlerbehebung
<a name="mobile-platform-endpoint-problems"></a>

### Wiederholtes Aufrufen von „Create Platform Endpoint“ mit einem veralteten Geräte-Token
<a name="mobile-platform-endpoint-problems-outdated"></a>

Insbesondere bei FCM-Endpunkten denken Sie vielleicht, dass es am besten ist, das erste Geräte-Token zu speichern, das für die Anwendung ausgestellt wurde, und dann bei jedem Start der Anwendung den Create Platform-Endpunkt mit diesem Geräte-Token aufzurufen. Dies scheint sinnvoll, da die App sich nicht mehr um den Status des Geräte-Tokens kümmern muss und Amazon SNS das Geräte-Token automatisch auf den aktuellen Wert aktualisiert. Diese Lösung hat jedoch mehrere ernsthafte Probleme:
+ Amazon SNS stützt sich auf das Feedback von FCM, um abgelaufene Geräte-Tokens durch neue Geräte-Tokens zu aktualisieren. FCM erhält einige Zeit Informationen zu alten Geräte-Tokens. Dies gilt jedoch nicht unbegrenzt. Sobald FCM die Verbindung zwischen dem alten Geräte-Token und dem neuen Geräte-Token vergessen hat, ist Amazon SNS nicht mehr in der Lage, das im Plattformendpunkt gespeicherte Geräte-Token auf den korrekten Wert zu aktualisieren. Stattdessen wird der Plattformendpunkt einfach deaktiviert.
+ Die Plattformanwendung enthält mehrere Plattformendpunkte mit demselben Geräte-Token.
+ Amazon SNS arbeitet mit einem Kontingent an Plattformendpunkten, die gleichzeitig mit demselben Geräte-Token gestartet werden können. Irgendwann wird die Erstellung neuer Endpunkte mit einer „Invalid Parameter“-Ausnahme und der Fehlermeldung „This endpoint is already registered with a different token.“ fehlschlagen.

Weitere Informationen zur Verwaltung von FCM-Endpunkten finden Sie unter. [Amazon SNS SNS-Verwaltung von Firebase Cloud Messaging-Endpunkten](sns-fcm-endpoint-management.md)

### Erneutes Aktivieren eines Plattformendpunktes mit einem ungültigen Geräte-Token
<a name="mobile-platform-endpoint-problems-invalid"></a>

Wenn eine mobile Plattform (wie APNs oder FCM) Amazon SNS darüber informiert, dass das in der Veröffentlichungsanfrage verwendete Geräte-Token ungültig war, deaktiviert Amazon SNS den mit diesem Geräte-Token verknüpften Plattformendpunkt. Amazon SNS weist dann nachfolgende Veröffentlichungen für das Geräte-Token zurück. Möglicherweise glauben Sie, Sie könnten einfach den Plattformendpunkt neu aktivieren und so weiter veröffentlichen, doch wird dies in den meisten Fällen nicht funktionieren. Die veröffentlichten Nachrichten werden nicht zugestellt und der Plattformendpunkt wird bald wieder deaktiviert.

Der Grund hierfür ist, dass das Geräte-Token des Plattformendpunkts wirklich ungültig ist. Zustellungen können nicht abgeschlossen werden, da es nicht mehr mit einer installierten App übereinstimmt. Bei der nächsten Veröffentlichung informiert die mobile Plattform Amazon SNS erneut darüber, dass das Geräte-Token ungültig ist. Amazon SNS wird den Plattformendpunkt wieder deaktivieren.

Um einen deaktivierten Plattformendpunkt zu reaktivieren, muss dieser einem gültigen Geräte-Token zugeordnet (über einen „set endpoint attributes“-Aktionsaufruf) sein und dann aktiviert werden. Nur dann werden Zustellungen an den Plattformendpunkt erfolgreich sein. Das erneute Aktivieren eines Plattformendpunkts ohne Aktualisierung des Geräte-Tokens funktioniert nur, wenn ein dem Endpunkt zugeordnetes Geräte-Token ungültig ist und wieder gültig wird. Dies kann zum Beispiel der Fall sein, wenn eine App deinstalliert und dann auf demselben Mobilgerät neu installiert wurde und dasselbe Geräte-Token erhält. Der oben gezeigte Ansatz geht so vor. Er stellt sicher, dass der Plattformendpunkt erst dann neu aktiviert wird, wenn überprüft wurde, dass das ihm zugeordnete Geräte-Token im Moment verfügbar ist.

# Integration von Geräte-Token mit Amazon SNS für mobile Benachrichtigungen
<a name="mobile-push-send-devicetoken"></a>

Wenn Sie eine App und ein Mobilgerät zum ersten Mal bei einem Benachrichtigungsdienst wie Apple Push Notification Service (APNs) und Firebase Cloud Messaging (FCM) registrieren, IDs werden Geräte-Token oder Registrierungen vom Service zurückgegeben. Diese tokens/IDs werden zu Amazon SNS hinzugefügt, um mithilfe der [https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html)API einen Endpunkt für die App und das Gerät zu erstellen. Sobald der Endpunkt erstellt wurde, [https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html)wird ein zurückgegeben, das Amazon SNS verwendet, um Benachrichtigungen an die richtige App/das richtige Gerät weiterzuleiten.

Sie können Geräte-Tokens oder Registrierungen IDs auf folgende Weise zu Amazon SNS hinzufügen:
+ Fügen Sie manuell ein einzelnes Token hinzu über AWS-Managementkonsole
+ Laden Sie mehrere Token mithilfe der API [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) hoch
+ Tokens für future Geräte registrieren

****Um manuell ein Geräte-Token oder eine Registrierungs-ID hinzuzufügen****

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich die Option **Push-Benachrichtigungen** aus.

1. Wählen Sie im Abschnitt **Plattformanwendungen** Ihre Anwendung aus und klicken Sie dann auf **Bearbeiten**. Wenn Sie noch keine Plattformanwendung erstellt haben, folgen Sie der [Erstellen einer Amazon SNS-Plattformanwendung](mobile-push-send-register.md) Anleitung, um dies jetzt zu tun.

1. Klicken Sie auf **Endpunkt erstellen**.

1. Geben Sie im Feld **Endpunkt-Token** das **Token** oder die **Registrierungs-ID** ein, je nachdem, welchen Benachrichtigungsdienst Sie verwenden (z. B. die FCM-Registrierungs-ID).

1. (Optional) Geben Sie zusätzliche Daten in das Feld **Benutzerdaten** ein. Diese Daten müssen UTF-8-codiert sein und weniger als 2 KB groß sein.

1. Klicken Sie auf **Endpunkt erstellen**.

Sobald der Endpunkt erstellt ist, können Sie Nachrichten direkt an das Mobilgerät oder an Mobilgeräte senden, die ein Amazon SNS SNS-Thema abonniert haben.

****Um mehrere Token mithilfe der API hochzuladen `CreatePlatformEndpoint`****

Die folgenden Schritte zeigen, wie Sie die von bereitgestellte Beispiel-Java-App (`bulkupload`Paket) verwenden AWS , um mehrere Token (Geräte-Token oder Registrierung IDs) auf Amazon SNS hochzuladen. Sie können diese Beispielanwendung verwenden, um die ersten Schritte zum Hochladen der vorhandenen Token zu unternehmen. 
**Anmerkung**  
Die folgenden Schritte verwenden die IDE Eclipse Java. Bei den Schritten wird davon ausgegangen, dass Sie die installiert haben AWS SDK für Java und über die AWS Sicherheitsanmeldeinformationen für Ihre AWS-Konto verfügen. Weitere Informationen finden Sie unter [AWS SDK für Java](https://aws.amazon.com/sdkforjava/). Weitere Informationen zu Anmeldeinformationen finden Sie unter [AWS Sicherheitsanmeldedaten](https://docs.aws.amazon.com/general/latest/gr/getting-aws-sec-creds.html) im *IAM-Benutzerhandbuch*. 

1. Laden Sie die Datei [snsmobilepush.zip](samples/snsmobilepush.zip) herunter und entpacken Sie sie. 

1. Erstellen Sie ein neues **Java-Projekt** in Eclipse und importieren Sie den `SNSSamples` Ordner in das Projekt. 

1. Laden Sie die [OpenCSV-Bibliothek herunter](http://sourceforge.net/projects/opencsv/) und fügen Sie sie dem Build-Pfad hinzu.

1. Geben Sie in der `BulkUpload.properties` Datei Folgendes an: 
   + Ihr `ApplicationArn` (ARN der Plattformanwendung).
   + Der absolute Pfad zu Ihrer CSV-Datei, die die Token enthält.
   + Protokollierung von Dateinamen für erfolgreiche und fehlgeschlagene Token. Beispiel: `goodTokens.csv` und `badTokens.csv`.
   + (Optional) Eine Konfiguration für das Trennzeichen, das Anführungszeichen und die Anzahl der zu verwendenden Threads.

   Ihre vollständigen `BulkUpload.properties` sollten wie folgt aussehen:

   ```
   applicationarn: arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp
   csvfilename: C:\\mytokendirectory\\mytokens.csv
   goodfilename: C:\\mylogfiles\\goodtokens.csv
   badfilename: C:\\mylogfiles\\badtokens.csv
   delimiterchar: ','
   quotechar: '"'
   numofthreads: 5
   ```

1.  Führen Sie die **BatchCreatePlatformEndpointSample.java-Anwendung** aus, um die Token auf Amazon SNS hochzuladen. Erfolgreich hochgeladene Token werden angemeldet`goodTokens.csv`, während falsch formatierte Token angemeldet werden. `badTokens.csv`

**Um Tokens von Geräten für future App-Installationen zu registrieren**

Für diesen Vorgang haben Sie zwei Möglichkeiten:

**Verwenden Sie den Amazon Cognito-Service**  
Ihre mobile App kann temporäre Sicherheitsanmeldedaten verwenden, um Endgeräte zu erstellen. Amazon Cognito wird empfohlen, temporäre Anmeldeinformationen zu generieren. Weitere Informationen finden Sie im *[Amazon Cognito Developer Guide](https://docs.aws.amazon.com/cognito/latest/developerguide/)*   
Um [App-Registrierungen](application-event-notifications.md) nachzuverfolgen, verwenden Sie Amazon SNS SNS-Ereignisse, um Benachrichtigungen zu erhalten, wenn neue Endpunkte erstellt ARNs werden.  
Alternativ können Sie die [https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html)API verwenden, um die Liste der registrierten Endpunkte abzurufen.

**Verwenden eines Proxy-Servers**  
Wenn Ihre App-Infrastruktur die Geräteregistrierung bei der Installation bereits unterstützt, können Sie Ihren Server als Proxy verwenden. Es leitet Geräte-Token über die [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html)API an Amazon SNS weiter.  
Der von Amazon SNS erstellte Endpunkt-ARN wird zurückgegeben und kann von Ihrem Server für die future Nachrichtenveröffentlichung gespeichert werden.

# Amazon SNS Authentifizierungsmethoden für Apple-Push-Benachrichtigungen
<a name="sns-apple-authentication-methods"></a>

Sie können Amazon SNS ermächtigen, Push-Benachrichtigungen an Ihre iOS- oder macOS-App zu senden, indem Sie Informationen bereitstellen, die Sie als Entwickler der App identifizieren. Um sich zu authentifizieren, geben Sie entweder einen *Schlüssel* oder ein *Zertifikat* [beim Erstellen einer Plattformanwendung](https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html) an, die Sie beide von Ihrem Apple Developer-Konto aus erhalten können.

**Signierschlüssel für Token**  
Ein privater Signaturschlüssel, den Amazon SNS zum Signieren von Apple Push Notification Service (APNs) -Authentifizierungstoken verwendet.  
Wenn Sie einen Signaturschlüssel angeben, verwendet Amazon SNS APNs für jede von Ihnen gesendete Push-Benachrichtigung ein Token zur Authentifizierung. Mit Ihrem Signaturschlüssel können Sie Push-Benachrichtigungen an APNs Produktions- und Sandbox-Umgebungen senden.  
Ihr Signierschlüssel läuft nicht ab und Sie können denselben Signierschlüssel für mehrere Apps verwenden. Weitere Informationen finden Sie unter [Kommunizieren mit APNs mithilfe von Authentifizierungstoken](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns) in der **Hilfe zum Entwicklerkonto** auf der Apple-Website.

**Zertifikat**  
Ein TLS-Zertifikat, mit dem sich Amazon SNS authentifiziert, APNs wenn Sie Push-Benachrichtigungen senden. Sie erhalten das Zertifikat aus Ihrer Apple-Entwicklerkonto.  
Zertifikate laufen nach einem Jahr ab. Wenn dies geschieht, müssen Sie ein neues Zertifikat erstellen und es Amazon SNS bereitstellen. Weitere Informationen finden Sie unter [Herstellen einer zertifikatsbasierten Verbindung zu APNs](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns) auf der Apple Developer-Website.

**So verwalten Sie APNs Einstellungen mit der AWS Management Console**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich **Push-Benachrichtigungen** aus.

1. Wählen Sie im Abschnitt **Plattformanwendungen** die **Anwendung** aus, deren APNs Einstellungen Sie bearbeiten möchten, und wählen Sie dann **Bearbeiten** aus. Wenn Sie noch keine Plattformanwendung erstellt haben, folgen Sie der [Erstellen einer Amazon SNS-Plattformanwendung](mobile-push-send-register.md) Anleitung, um dies jetzt zu tun.

1. Wählen Sie **Bearbeiten**, um die Einstellungen für Ihre Plattformanwendung zu ändern.

1. Wählen Sie im Abschnitt **Authentifizierungstyp** eine der folgenden Optionen aus:
   + **Tokenbasierte Authentifizierung** (empfohlen für moderne APNs Integrationen)
   + **Zertifikatsbasierte Authentifizierung** (ältere Methode)

1. Konfigurieren Sie Ihre **Anmeldeinformationen** basierend auf dem Authentifizierungstyp:
   + **Für die tokenbasierte Authentifizierung:**
     + Laden Sie die **.p8-Datei** hoch. Dabei handelt es sich um den Signaturschlüssel für das Authentifizierungstoken, den Sie von Ihrem Apple Developer-Konto heruntergeladen haben.
     + Geben Sie die **Signaturschlüssel-ID** ein, die Sie in Ihrem Apple-Entwicklerkonto finden. Navigieren Sie zu **Certificates**, **IDs& Profiles**, **Keys** und wählen Sie den **Schlüssel** aus, den Sie verwenden möchten.
     + Geben Sie die **Team-ID** aus Ihrem Apple Developer-Konto ein. Sie finden diese auf der Mitgliedschaftsseite.
     + Geben Sie die **Bundle-ID** ein, die Ihrer App zugewiesen ist. Sie finden diese unter Zertifikate IDs und Profile, App IDs.
   + **Für die zertifikatsbasierte Authentifizierung:**
     + Laden Sie die **P12-Datei** für Ihr TLS-Zertifikat hoch. Diese Datei kann aus Keychain Access auf macOS exportiert werden, nachdem Sie das Zertifikat von Ihrem Apple Developer-Konto heruntergeladen haben.
     + Wenn Sie Ihrem .p12-Zertifikat ein **Passwort** zugewiesen haben, geben Sie es hier ein.

1. Nachdem Sie die erforderlichen Anmeldeinformationen eingegeben haben, wählen Sie **Änderungen speichern**, um die Einstellungen zu aktualisieren.

# Amazon SNS SNS-Integration mit Firebase Cloud Messaging-Authentifizierungseinrichtung
<a name="sns-fcm-authentication-methods"></a>

In diesem Thema wird beschrieben, wie Sie die erforderlichen FCM-API-Anmeldeinformationen (HTTP v1) von Google erhalten, um sie mit der AWS API zu verwenden, AWS CLI und die. AWS-Managementkonsole

**Wichtig**  
26. März 2024 — Amazon SNS unterstützt die FCM-HTTP-v1-API für Apple-Geräte und Webpush-Ziele. Wir empfehlen Ihnen, Ihre vorhandenen mobilen Push-Anwendungen am oder vor dem 1. Juni 2024 auf die neueste FCM-HTTP-v1-API zu migrieren, um Anwendungsunterbrechungen zu vermeiden.  
18. Januar 2024 — Amazon SNS hat die Unterstützung für die FCM-HTTP-v1-API für die mobile Übermittlung von Push-Benachrichtigungen an Android-Geräte eingeführt.  
20. Juni 2023 — Google hat seine ältere HTTP-API für Firebase Cloud Messaging (FCM) als veraltet eingestuft. Amazon SNS unterstützt jetzt die Lieferung an alle Gerätetypen mithilfe der FCM-HTTP-v1-API. Wir empfehlen Ihnen, Ihre vorhandenen mobilen Push-Anwendungen am oder vor dem 1. Juni 2024 auf die neueste FCM-HTTP-v1-API zu migrieren, um Unterbrechungen zu vermeiden.

Sie können Amazon SNS ermächtigen, Push-Benachrichtigungen an Ihre Anwendungen zu senden, indem Sie Informationen bereitstellen, die Sie als Entwickler der App identifizieren. Geben Sie zur Authentifizierung entweder einen **API-Schlüssel** oder ein **Token** an, [wenn Sie eine Plattformanwendung erstellen](https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html). Sie können die folgenden Informationen von Ihrer [Firebase-Anwendungskonsole](https://firebase.google.com/?gad=1&gclid=CjwKCAiA0syqBhBxEiwAeNx9N27M7zxHjlS74_gp4mAS4QTMQH5J35sTO29od-yauuq259zzX_I2DRoCrbsQAvD_BwE&gclsrc=aw.ds) abrufen:

**API-Schlüssel**  
Der API-Schlüssel ist eine Anmeldeinformation, die beim Aufrufen der Legacy-API von Firebase verwendet wird. Das FCM-Vermächtnis APIs wird am 20. Juni 2024 von Google entfernt. Wenn Sie derzeit einen API-Schlüssel als Plattformanmeldeinformation verwenden, können Sie die Plattformanmeldeinformation aktualisieren, indem Sie **Token** als Option auswählen und die zugehörige JSON-Datei für Ihre Firebase-Anwendung hochladen.

**Token**  
Beim Aufrufen der HTTP v1-API wird ein kurzlebiges Zugriffstoken verwendet. Dies ist die von Firebase vorgeschlagene API zum Senden von Push-Benachrichtigungen. Zum Generieren von Zugriffstoken stellt Firebase Entwicklern eine Reihe von Anmeldeinformationen in Form einer privaten Schlüsseldatei (auch als Datei service.json bezeichnet) zur Verfügung.

## Voraussetzung
<a name="sns-fcm-authentication-prerequisite"></a>

Sie benötigen Ihre FCM-service.json-Anmeldeinformationen, bevor Sie mit der Verwaltung von FCM-Einstellungen in Amazon SNS beginnen können. Informationen zum Abrufen Ihrer service.json-Anmeldeinformationen finden Sie in der Google Firebase-Dokumentation unter [Migration von Legacy FCM APIs zu HTTP v1](https://firebase.google.com/docs/cloud-messaging/migrate-v1).

## Verwaltung der FCM-Einstellungen mit der CLI
<a name="sns-fcm-authentication-api"></a>

Sie können FCM-Push-Benachrichtigungen mithilfe der AWS API erstellen. Die Anzahl und Größe der Amazon SNS SNS-Ressourcen in einem AWS Konto sind begrenzt. Weitere Informationen finden Sie im *Allgemeine AWS-Referenz Handbuch* unter [Endpunkte und Kontingente von Amazon Simple Notification Service](https://docs.aws.amazon.com/general/latest/gr/sns.html).

**Um eine FCM-Push-Benachrichtigung zusammen mit einem Amazon SNS SNS-Thema (AWS API) zu erstellen**  
Bei Verwendung von **Schlüssel**-Anmeldeinformationen lautet `PlatformCredential` `API key`. Bei Verwendung von **Token**-Anmeldeinformationen ist `PlatformCredential` eine private Schlüsseldatei im JSON-Format:
+ [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)

**Um einen FCM-Anmeldeinformationstyp für ein vorhandenes Amazon SNS SNS-Thema (API) abzurufen AWS**  
Ruft den Anmeldeinformationstyp `"AuthenticationMethod": "Token"` oder ` "AuthenticationMethod": "Key"` ab:
+ [GetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetPlatformApplicationAttributes.html)

**So legen Sie ein FCM-Attribut für ein vorhandenes Amazon SNS SNS-Thema (API)AWS fest**  
Legt das FCM-Attribut fest:
+ [SetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html)

## Verwaltung der FCM-Einstellungen über die Konsole
<a name="sns-fcm-authentication-cli"></a>

Sie können FCM-Push-Benachrichtigungen mit der AWS Command Line Interface (CLI) erstellen. Die Anzahl und Größe der Amazon SNS SNS-Ressourcen in einem AWS Konto sind begrenzt. Weitere Informationen finden Sie unter [Amazon Simple Notification Service-Endpunkte und -Kontingente](https://docs.aws.amazon.com/general/latest/gr/sns.html). 

**So erstellen Sie eine FCM-Push-Benachrichtigung zusammen mit einem Amazon-SNS-Thema (AWS CLI)**  
Bei Verwendung von **Schlüssel**-Anmeldeinformationen lautet `PlatformCredential` `API key`. Bei Verwendung von **Token**-Anmeldeinformationen ist `PlatformCredential` eine private Schlüsseldatei im JSON-Format. Bei Verwendung der AWS CLI muss die Datei im Zeichenkettenformat vorliegen und Sonderzeichen müssen ignoriert werden. Um die Datei korrekt zu formatieren, empfiehlt Amazon SNS die Verwendung des folgenden Befehls: `SERVICE_JSON=`jq @json <<< cat service.json``
+ [create-platform-application](https://docs.aws.amazon.com/cli/latest/reference/sns/create-platform-application.html)

**So rufen Sie einen FCM-Anmeldeinformationstyp für ein vorhandenes Amazon-SNS-Thema ab (AWS CLI)**  
Ruft den Anmeldeinformationstyp `"AuthenticationMethod": "Token"` oder ` "AuthenticationMethod": "Key"` ab:
+ [get-platform-application-attributes](https://docs.aws.amazon.com/cli/latest/reference/sns/get-platform-application-attributes.html)

**So legen Sie ein FCM-Attribut für ein vorhandenes Amazon-SNS-Thema fest (AWS CLI)**  
Legt das FCM-Attribut fest:
+ [set-platform-application-attributes](https://docs.aws.amazon.com/cli/latest/reference/sns/set-platform-application-attributes.html)

## Verwalten von FCM-Einstellungen (Konsole)
<a name="sns-fcm-authentication-console"></a>

Gehen Sie wie folgt vor, um Ihre Firebase Cloud Messaging (FCM) -Anmeldeinformationen in Amazon SNS einzugeben und zu verwalten.

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. **Wählen Sie im Navigationsbereich Push-Benachrichtigungen aus.**

1. Wählen Sie im Abschnitt **Plattformanwendungen** die **FCM-Plattformanwendung** aus, deren Anmeldeinformationen Sie bearbeiten möchten, und wählen Sie dann **Bearbeiten** aus.

1. Wählen Sie im Abschnitt **Firebase Cloud Messaging-Anmeldeinformationen** eine der folgenden Optionen aus:
   + **Tokenbasierte Authentifizierung** (empfohlene Methode) — Laden Sie die **private Schlüsseldatei** (JSON) hoch, die Sie von der Firebase-Konsole heruntergeladen haben. Diese Datei enthält die Anmeldeinformationen, die zum Generieren kurzlebiger Zugriffstoken für FCM-Benachrichtigungen erforderlich sind. Um diese Datei zu erhalten:

     1. Gehen Sie zu Ihrer [Firebase-Anwendungskonsole](https://firebase.google.com/?gad=1&gclid=CjwKCAiA0syqBhBxEiwAeNx9N27M7zxHjlS74_gp4mAS4QTMQH5J35sTO29od-yauuq259zzX_I2DRoCrbsQAvD_BwE&gclsrc=aw.ds).

     1. Wählen Sie in den **Projekteinstellungen** **Cloud Messaging** aus.

     1. Laden Sie die JSON-Datei mit dem **privaten Schlüssel** herunter (zur Verwendung in der tokenbasierten Authentifizierungsmethode).
   + **API-Schlüsselauthentifizierung** — Wenn Sie lieber die ältere API-Schlüssel-Authentifizierungsmethode verwenden möchten, geben Sie den **Google-API-Schlüssel** in das dafür vorgesehene Feld ein. Um diese Datei zu erhalten:

     1. Gehen Sie zu Ihrer [Firebase-Anwendungskonsole](https://firebase.google.com/?gad=1&gclid=CjwKCAiA0syqBhBxEiwAeNx9N27M7zxHjlS74_gp4mAS4QTMQH5J35sTO29od-yauuq259zzX_I2DRoCrbsQAvD_BwE&gclsrc=aw.ds).

     1. Wählen Sie in **den Projekteinstellungen** **Cloud Messaging** aus.

     1. Kopieren Sie den **Serverschlüssel** (API-Schlüssel), den Sie für das Senden von Benachrichtigungen verwenden möchten.

1. Wenn Sie die gewünschten Änderungen vorgenommen haben, wählen Sie **Save changes (Änderungen speichern)** aus.

**Verwandte Themen**
+ [Verwenden von Google Firebase Cloud Messaging v1-Nutzlasten in Amazon SNS](sns-fcm-v1-payloads.md)

# Amazon SNS SNS-Verwaltung von Firebase Cloud Messaging-Endpunkten
<a name="sns-fcm-endpoint-management"></a>

## Verwaltung und Pflege von Geräte-Token
<a name="sns-managing-device-tokens"></a>

Sie können die Zustellbarkeit der Push-Benachrichtigungen Ihrer mobilen Anwendung sicherstellen, indem Sie die folgenden Schritte ausführen:

1. Speichern Sie alle Geräte-Token, den entsprechenden Amazon SNS SNS-Endpunkt ARNs und die Zeitstempel auf Ihrem Anwendungsserver.

1. Entfernen Sie alle veralteten Token und löschen Sie den entsprechenden Amazon SNS SNS-Endpunkt. ARNs

Beim ersten Start Ihrer App erhalten Sie ein Geräte-Token (auch als Registrierungstoken bezeichnet) für das Gerät. Dieses Geräte-Token wird vom Betriebssystem des Geräts geprägt und ist an Ihre FCM-Anwendung gebunden. Sobald Sie dieses Geräte-Token erhalten haben, können Sie es bei Amazon SNS als Plattformendpunkt registrieren. Wir empfehlen Ihnen, das Geräte-Token, den ARN des Amazon SNS SNS-Plattformendpunkts und den Zeitstempel zu speichern, indem Sie sie auf Ihrem Anwendungsserver oder einem anderen persistenten Speicher speichern. *Informationen zum Einrichten Ihrer FCM-Anwendung zum Abrufen und Speichern von Gerätetokens finden Sie in der Firebase-Dokumentation von Google unter [Registrierungstoken abrufen und speichern](https://firebase.google.com/docs/cloud-messaging/manage-tokens#retrieve-and-store-registration-tokens).*

Es ist wichtig, dass Sie Tokens verwalten up-to-date. Die Geräte-Token Ihres Benutzers können sich unter den folgenden Bedingungen ändern:

1. Die mobile Anwendung wird auf einem neuen Gerät wiederhergestellt.

1. Der Benutzer deinstalliert oder aktualisiert die Anwendung.

1. Der Benutzer löscht die Anwendungsdaten.

Wenn sich Ihr Geräte-Token ändert, empfehlen wir Ihnen, den entsprechenden Amazon SNS SNS-Endpunkt mit dem neuen Token zu aktualisieren. Dadurch kann Amazon SNS die Kommunikation mit dem registrierten Gerät fortsetzen. Sie können dies tun, indem Sie den folgenden Pseudocode in Ihrer mobilen Anwendung implementieren. Es beschreibt eine empfohlene Vorgehensweise für die Erstellung und Wartung aktivierter Plattformendpunkte. Dieser Ansatz kann bei jedem Start der mobilen Anwendungen oder als geplante Aufgabe im Hintergrund ausgeführt werden.

### Pseudo-Code
<a name="sns-device-token-pseudo-code"></a>

Verwenden Sie den folgenden FCM-Pseudocode, um Gerätetokens zu verwalten und zu verwalten.

```
retrieve the latest token from the mobile OS
if (endpoint arn not stored)
    # first time registration
    call CreatePlatformEndpoint
    store returned endpoint arn
endif

call GetEndpointAttributes on the endpoint arn 

if (getting attributes encountered NotFound exception)
    #endpoint was deleted 
    call CreatePlatformEndpoint
    store returned endpoint arn
else 
    if (token in endpoint does not match latest) or 
        (GetEndpointAttributes shows endpoint as disabled)
        call SetEndpointAttributes to set the 
                     latest token and enable the endpoint
    endif
endif
```

Weitere Informationen zu den Anforderungen für Token-Updates finden Sie unter [Regelmäßiges Aktualisieren von Tokens in der](https://firebase.google.com/docs/cloud-messaging/manage-tokens#update-tokens-on-a-regular-basis) *Firebase-Dokumentation* von Google.

## Erkennung ungültiger Token
<a name="sns-detecting-invalid-tokens"></a>

Wenn eine Nachricht mit einem ungültigen Geräte-Token an einen FCM v1-Endpunkt gesendet wird, erhält Amazon SNS eine der folgenden Ausnahmen:
+ `UNREGISTERED`(HTTP 404) — Wenn Amazon SNS diese Ausnahme empfängt, erhalten Sie ein Ereignis mit einem Zustellungsfehler mit dem Wert `FailureType` von`InvalidPlatformToken`, und ein `FailureMessage` *dem Endpunkt zugeordnetes Plattform-Token ist ungültig*. Amazon SNS deaktiviert Ihren Plattformendpunkt, wenn eine Lieferung mit dieser Ausnahme fehlschlägt.
+ `INVALID_ARGUMENT`(HTTP 400) — Wenn Amazon SNS diese Ausnahme empfängt, bedeutet dies, dass das Geräte-Token oder die Nachrichtennutzlast ungültig ist. Weitere Informationen finden Sie [ErrorCode](https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode)in der *Firebase-Dokumentation* von Google.

Da Amazon SNS in beiden Fällen zurückgesendet werden `INVALID_ARGUMENT` kann, gibt Amazon SNS ein of zurück`InvalidNotification`, und ein `FailureType` `FailureMessage` of der *Benachrichtigungstext ist ungültig*. Wenn Sie diesen Fehler erhalten, überprüfen Sie, ob Ihre Payload korrekt ist. Wenn sie korrekt ist, überprüfen Sie, ob das Geräte-Token korrekt ist up-to-date. Amazon SNS deaktiviert Ihren Plattformendpunkt nicht, wenn eine Lieferung fehlschlägt, mit dieser Ausnahme.

Ein weiterer Fall, in dem ein `InvalidPlatformToken` Zustellungsfehler auftritt, ist, wenn das registrierte Geräte-Token nicht zu der Anwendung gehört, die versucht, diese Nachricht zu senden. In diesem Fall gibt Google einen *SENDER\$1ID\$1MISMATCH-Fehler* zurück. Amazon SNS deaktiviert Ihren Plattformendpunkt, wenn eine Lieferung mit dieser Ausnahme fehlschlägt.

Alle beobachteten Fehlercodes, die von der FCM v1-API empfangen wurden, stehen Ihnen zur Verfügung, CloudWatch wenn Sie die [Versandstatusprotokollierung](topics-attrib.md) für Ihre Anwendung einrichten. 

Informationen zum Empfang von Zustellungsereignissen für Ihre Anwendung finden Sie unter[Verfügbare Anwendungsereignisse](application-event-notifications.md#application-event-notifications-events).

## Veraltete Token entfernen
<a name="sns-removing-stale-tokens"></a>

Token gelten als veraltet, sobald die Nachrichtenzustellung an das Endgerät fehlschlägt. Amazon SNS legt diese veralteten Token als deaktivierte Endpunkte für Ihre Plattformanwendung fest. Wenn Sie auf einem deaktivierten Endpunkt veröffentlichen, gibt Amazon SNS ein `EventDeliveryFailure` Ereignis mit dem Wert `FailureType` of zurück`EndpointDisabled`, und `FailureMessage` der *Endpunkt ist deaktiviert*. Informationen zum Empfang von Zustellungsereignissen für Ihre Anwendung finden Sie unter[Verfügbare Anwendungsereignisse](application-event-notifications.md#application-event-notifications-events).

Wenn Sie diesen Fehler von Amazon SNS erhalten, müssen Sie das veraltete Token in Ihrer Plattformanwendung entfernen oder aktualisieren.

# Amazon SNS für mobile Push-Benachrichtigungen verwenden
<a name="mobile-push-notifications"></a>

 In diesem Abschnitt wird beschrieben, wie Sie mobile Push-Benachrichtigungen senden.

## So veröffentlichen Sie in einem Thema
<a name="mobile-push-send-topicmobile"></a>

Sie können Amazon SNS auch verwenden, um Nachrichten an mobile Endpunkte zu senden, die ein Thema abonniert haben. Das Konzept ist das gleiche, als wenn andere Endpunkttypen, wie Amazon SQS, HTTP/S, E-Mail und SMS ein Thema abonnieren, wie unter [Was ist Amazon SNS?](welcome.md) beschrieben. Der Unterschied besteht darin, dass Amazon SNS über Benachrichtigungsdienste wie Apple Push Notification Service (APNS) und Google Firebase Cloud Messaging (FCM) kommuniziert. Durch den Benachrichtigungsservice erhalten die abonnierten mobilen Endpunkte Benachrichtigungen, die an das Thema gesendet wurden. 

## Direkte Amazon SNS SNS-Nachrichtenübermittlung auf Mobilgeräten
<a name="mobile-push-send-directmobile"></a>

Senden Sie Amazon SNS-Push-Benachrichtigungen direkt an einen Endpunkt, der eine App auf einem mobilen Gerät repräsentiert. 

**So senden Sie eine direkte Nachricht**

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich **Push notifications** (Push-Benachrichtigungen) aus.

1. Wählen Sie auf der Seite **Push-Benachrichtigungen für Mobilgeräte** im Abschnitt **Plattformanwendungen** beispielsweise ***MyApp*** den Namen der Anwendung aus.

1. Wählen Sie auf der ***MyApp*** Seite im Abschnitt **Endpoints** einen Endpoint aus und klicken Sie dann auf **Nachricht veröffentlichen**.

1. Geben Sie auf der Seite **Publish message to endpoint (Nachricht am Endpunkt veröffentlichen)** die Nachricht ein, die in der Anwendung auf dem mobilen Gerät erscheinen wird, und wählen Sie dann **Publish message (Nachricht veröffentlichen)**.

   Amazon SNS sendet die Benachrichtigung an den Plattformbenachrichtigungsservice, der sie dann wiederum an die Anwendung sendet.

# Veröffentlichen von Amazon SNS SNS-Benachrichtigungen mit plattformspezifischen Payloads
<a name="sns-send-custom-platform-specific-payloads-mobile-devices"></a>

Sie können das AWS-Managementkonsole oder Amazon SNS verwenden APIs , um benutzerdefinierte Nachrichten mit plattformspezifischen Nutzlasten an mobile Geräte zu senden. Informationen zur Verwendung von Amazon SNS finden Sie APIs unter [Mobile Push-API-Aktionen](mobile-push-api.md) und die `SNSMobilePush.java` Datei in`[snsmobilepush.zip](samples/snsmobilepush.zip)`. 

## Senden von Nachrichten im JSON-Format
<a name="mobile-push-send-json"></a>

Wenn Sie plattformspezifische Nutzlasten senden, müssen die Daten als Schlüssel-Wert-Paar-Zeichenfolgen im JSON-Format vorliegen und mit Anführungszeichen maskiert sein.

Die folgenden Beispiele zeigen eine benutzerdefinierte Nachricht für die FCM-Plattform.

```
{
"GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"Hello\", \"body\": \"This is a test.\"}, \"data\": {\"dataKey\": \"example\"}}}}"
}
```

## Senden plattformspezifischer Nachrichten
<a name="mobile-push-send-platform"></a>

Sie können nicht nur benutzerdefinierte Daten als Schlüssel-Wert-Paare, sondern auch plattformspezifische Schlüssel-Wert-Paare senden.

Das folgende Beispiel zeigt den Einschluss der FCM-Parameter `time_to_live` und `collapse_key` nach den Schlüsselwertpaaren der benutzerdefinierten Daten im FCM `data`-Parameter .

```
{
"GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"TitleTest\", \"body\": \"Sample message for Android or iOS endpoints.\"}, \"data\":{\"time_to_live\": 3600,\"collapse_key\":\"deals\"}}}}"
}
```

Eine Liste der von jedem der Push-Benachrichtigungsservices in Amazon SNS unterstützten Schlüssel-Wert-Paare finden Sie unter: 

**Wichtig**  
Amazon SNS unterstützt jetzt die Firebase Cloud Messaging (FCM) HTTP v1-API zum Senden von mobilen Push-Benachrichtigungen an Android-Geräte.  
26. März 2024 — Amazon SNS unterstützt die FCM-HTTP-v1-API für Apple-Geräte und Webpush-Ziele. Wir empfehlen Ihnen, Ihre vorhandenen mobilen Push-Anwendungen am oder vor dem 1. Juni 2024 auf die neueste FCM-HTTP-v1-API zu migrieren, um Anwendungsunterbrechungen zu vermeiden.
+ [Payload Key-Referenz](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#/apple_ref/doc/uid/TP40008194-CH17-SW1) in der Dokumentation APNs 
+ [Firebase Cloud Messaging-HTTP-Protokoll](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages) in der FCM-Dokumentation
+ [Senden einer Nachricht](https://developer.amazon.com/sdk/adm/sending-message.html) in der ADM-Dokumentation

## Senden von Nachrichten an eine Anwendung auf mehreren Plattformen
<a name="mobile-push-send-multiplatform"></a>

Um eine Nachricht an eine Anwendung zu senden, die auf Geräten für mehrere Plattformen installiert ist, z. B. FCM und APNs, müssen Sie zuerst die mobilen Endgeräte für ein Thema in Amazon SNS abonnieren und dann die Nachricht zum Thema veröffentlichen.

Das folgende Beispiel zeigt eine Nachricht, die an abonnierte mobile Endpunkte auf FCM und ADM gesendet werden soll APNs: 

```
{ 
  "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for 
one of the notification platforms.",     
  "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }",
  "GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}",
  "ADM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" 
}
```

## Senden von Nachrichten als Warn- oder APNs Hintergrundbenachrichtigung
<a name="mobile-push-send-message-apns-background-notification"></a>

Amazon SNS kann Nachrichten `alert` oder `background` Benachrichtigungen an APNs Werbeanzeigen senden (weitere Informationen finden Sie in der APNs Dokumentation unter [Pushing Background Updates to Your App](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app)).
+ Eine `alert` APNs Benachrichtigung informiert den Benutzer, indem er eine Warnmeldung anzeigt, einen Ton abspielt oder dem Symbol Ihrer Anwendung ein Badge hinzufügt.
+ Eine `background` APNs Benachrichtigung wird aktiviert oder Ihre Anwendung angewiesen, auf den Inhalt der Benachrichtigung zu reagieren, ohne den Benutzer zu informieren.

### Angeben von benutzerdefinierten Header-Werten APNs
<a name="specify-custom-header-value"></a>

Wir empfehlen, benutzerdefinierte Werte für das `AWS.SNS.MOBILE.APNS.PUSH_TYPE` [reservierte Nachrichtenattribut](sns-message-attributes.md#sns-attrib-mobile-reserved) mithilfe der Amazon SNS `Publish` SNS-API-Aktion oder der AWS CLI anzugeben. AWS SDKs Im folgenden CLI-Beispiel wird für das angegebene Thema für `content-available` `1` und für `apns-push-type` `background` festgelegt. 

```
aws sns publish \
--endpoint-url https://sns.us-east-1.amazonaws.com \
--target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \
--message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \
--message-attributes '{ \
  "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \
  "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"}, \
  "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"5"}}' \
--message-structure json
```

**Anmerkung**  
Stellen Sie sicher, dass die JSON-Struktur gültig ist. Fügen Sie nach jedem Schlüssel-Wert-Paar, außer dem letzten, ein Komma hinzu.

### Ableiten des APNs Push-Typ-Headers aus der Nutzlast
<a name="inferring-push-type-header-from-payload"></a>

Wenn Sie den `apns-push-type` APNs Header nicht festlegen, setzt Amazon SNS den Header auf `alert` oder `background` abhängig vom `content-available` Schlüssel im `aps` Wörterbuch Ihrer JSON-formatierten APNs Payload-Konfiguration.

**Anmerkung**  
Amazon SNS kann nur `alert`- oder `background`-Header ableiten, auch wenn der Header `apns-push-type` auf andere Werte gesetzt werden kann.
+ `apns-push-type` wird auf `alert` gesetzt
  + Wenn das `aps`-Verzeichnis einen auf `1` gesetzten `content-available`-Schlüssel und *einen oder mehrere Schlüssel* enthält, die Benutzerinteraktionen auslösen
  + Wenn das `aps`-Verzeichnis einen auf `0` gesetzten `content-available`-Schlüssel enthält *oder* wenn der `content-available`-Schlüssel nicht vorhanden ist
  + Wenn der Wert des `content-available`-Schlüssels keine Ganzzahl und kein boolescher Wert ist
+ `apns-push-type` wird auf `background` gesetzt
  + Wenn das `aps`-Verzeichnis *nur* auf `1` gesetzte `content-available` und *keine anderen Schlüssel* enthält, die Benutzerinteraktionen auslösen.
**Wichtig**  
Wenn Amazon SNS ein unformatiertes Konfigurationsobjekt für APNs als reine Hintergrundbenachrichtigung sendet, müssen Sie `content-available` set to `1` in das Wörterbuch aufnehmen. `aps` Auch wenn benutzerdefinierte Schlüssel eingeschlossen werden können, darf das `aps`-Verzeichnis keine Schlüssel enthalten, die Benutzerinteraktionen (z. B. Warnmeldungen, Abzeichen oder Audiosignale) auslösen.

Es folgt ein Beispiel für ein unformatiertes Konfigurationsobjekt.

```
{
  "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"Bar\",\"Foo2\":123}"
}
```

In diesem Beispiel legt Amazon SNS den `apns-push-type` APNs Header für die Nachricht auf `background` fest. Wenn Amazon SNS erkennt, dass das `apn`-Verzeichnis den `content-available` Schlüssel festgelegt auf `1` enthält, und keine anderen Schlüssel enthält, die Benutzerinteraktionen auslösen können, legt es den Header auf `background`.

# Verwenden von Google Firebase Cloud Messaging v1-Nutzlasten in Amazon SNS
<a name="sns-fcm-v1-payloads"></a>

Amazon SNS unterstützt die Verwendung der FCM-HTTP-v1-API zum Senden von Benachrichtigungen an Android-, iOS- und Webpush-Ziele. Dieses Thema enthält Beispiele für die Payload-Struktur beim Veröffentlichen von mobilen Push-Benachrichtigungen über die CLI oder die Amazon SNS SNS-API.

Sie können die folgenden Nachrichtentypen in Ihre Payload aufnehmen, wenn Sie eine FCM-Benachrichtigung senden:
+ **Datennachricht** — Eine Datennachricht wird von Ihrer Client-App verarbeitet und enthält benutzerdefinierte Schlüssel-Wert-Paare. Wenn Sie eine Datennachricht erstellen, müssen Sie den `data` Schlüssel mit einem JSON-Objekt als Wert angeben und dann Ihre benutzerdefinierten Schlüssel-Wert-Paare eingeben.
+ **Benachrichtigungsnachricht** oder **Anzeigenachricht** — Eine Benachrichtigung enthält einen vordefinierten Satz von Schlüsseln, die vom FCM SDK verarbeitet werden. Diese Schlüssel variieren je nach Gerätetyp, an den Sie liefern. Weitere Informationen zu plattformspezifischen Benachrichtigungsschlüsseln finden Sie im Folgenden:
  + [Android-Benachrichtigungstasten](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages)
  + [APNS-Benachrichtigungsschlüssel](https://developer.apple.com/documentation/usernotifications/generating-a-remote-notification)
  + [Schlüssel für Webpush-Benachrichtigungen](https://developer.mozilla.org/en-US/docs/Web/API/Notification)

Weitere Informationen zu FCM-Nachrichtentypen finden Sie unter [Nachrichtentypen](https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages) in der *Firebase-Dokumentation* von Google.

## Verwenden der FCM v1-Payload-Struktur zum Senden von Nachrichten
<a name="sending-messages-using-v1-payload"></a>

Wenn Sie zum ersten Mal eine FCM-Anwendung erstellen oder die Funktionen von FCM v1 nutzen möchten, können Sie sich dafür entscheiden, eine FCM v1-formatierte Payload zu senden. Dazu müssen Sie den Schlüssel der obersten Ebene angeben. `fcmV1Message` *Weitere Informationen zum Erstellen von FCM v1-Payloads finden Sie unter [Migration von Legacy-FCM APIs zu HTTP v1](https://firebase.google.com/docs/cloud-messaging/migrate-v1) und [Plattformübergreifendes Anpassen einer Nachricht in](https://firebase.google.com/docs/cloud-messaging/concept-options#customizing-a-message-across-platforms) der Firebase-Dokumentation von Google.*

**FCM v1-Beispielnutzlast, die an Amazon SNS gesendet wurde:**

**Anmerkung**  
Der im folgenden Beispiel verwendete `GCM` Schlüsselwert muss als Zeichenfolge kodiert werden, wenn eine Benachrichtigung mit Amazon SNS veröffentlicht wird. 

```
{
  "GCM": "{ 
    \"fcmV1Message\": { 
      \"validate_only\": false,
      \"message\": {
        \"notification\": {
          \"title\": \"string\",
          \"body\": \"string\"
        },
        \"data\": {
          \"dataGen\": \"priority message\"
        },
        \"android\": {
          \"priority\": \"high\",
          \"notification\": {
            \"body_loc_args\": [\"string\"],
            \"title_loc_args\": [\"string\"],
            \"sound\": \"string\",
            \"title_loc_key\": \"string\",
            \"title\": \"string\",
            \"body\": \"string\",
            \"click_action\": \"clicky_clacky\",
            \"body_loc_key\": \"string\"
          },
          \"data\": {
            \"dataAndroid\": \"priority message\"
          },
          \"ttl\": \"10023.32s\"
        },
        \"apns\": {
          \"payload\": {
            \"aps\": {
              \"alert\": {
                \"subtitle\": \"string\",
                \"title-loc-args\": [\"string\"],
                \"title-loc-key\": \"string\",
                \"loc-args\": [\"string\"],
                \"loc-key\": \"string\",
                \"title\": \"string\",
                \"body\": \"string\"
              },
              \"category\": \"Click\",
              \"content-available\": 0,
              \"sound\": \"string\",
              \"badge\": 5
            }
          }
        },
        \"webpush\": {
          \"notification\": {
            \"badge\": \"5\",
            \"title\": \"string\",
            \"body\": \"string\"
          },
          \"data\": {
            \"dataWeb\": \"priority message\"
          }
        }
      }
    }
  }"
}
```

Achten Sie beim Senden einer JSON-Nutzlast darauf, das `message-structure` Attribut in Ihre Anfrage aufzunehmen und es auf zu setzen. `json`

**CLI-Beispiel:**

```
aws sns publish --topic $TOPIC_ARN --message '{"GCM": "{\"fcmV1Message\": {\"message\":{\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"android\":{\"priority\":\"high\",\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"data\":{\"customAndroidDataKey\":\"custom key value\"},\"ttl\":\"0s\"},\"apns\":{\"payload\":{\"aps\":{\"alert\":{\"title\":\"string\", \"body\":\"string\"},\"content-available\":1,\"badge\":5}}},\"webpush\":{\"notification\":{\"badge\":\"URL\",\"body\":\"Test\"},\"data\":{\"customWebpushDataKey\":\"priority message\"}},\"data\":{\"customGeneralDataKey\":\"priority message\"}}}}", "default": "{\"notification\": {\"title\": \"test\"}"}' --region $REGION --message-structure json
```

*Weitere Informationen zum Senden von Payloads im FCM v1-Format finden Sie in der Firebase-Dokumentation von Google:*
+ [Migrieren Sie von Legacy-FCM zu HTTP v1 APIs ](https://firebase.google.com/docs/cloud-messaging/migrate-v1)
+ [Über FCM-Nachrichten](https://firebase.google.com/docs/cloud-messaging/concept-options#customizing_a_message_across_platforms)
+ [REST-Ressource: projects.messages](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages)

## Verwenden der veralteten Payload-Struktur zum Senden von Nachrichten an die FCM v1-API
<a name="sns-fcm-v1-legacy-payload-structure"></a>

Bei der Migration zu FCM v1 müssen Sie die Payload-Struktur, die Sie für Ihre älteren Anmeldeinformationen verwendet haben, nicht ändern. Amazon SNS wandelt Ihre Payload in die neue FCM v1-Payload-Struktur um und sendet sie an Google.

Payload-Format der Eingabe-Nachricht:

```
{
  "GCM": "{\"notification\": {\"title\": \"string\", \"body\": \"string\", \"android_channel_id\": \"string\", \"body_loc_args\": [\"string\"], \"body_loc_key\": \"string\", \"click_action\": \"string\", \"color\": \"string\", \"icon\": \"string\", \"sound\": \"string\", \"tag\": \"string\", \"title_loc_args\": [\"string\"], \"title_loc_key\": \"string\"}, \"data\": {\"message\": \"priority message\"}}"
}
```

Nachricht an Google gesendet:

```
{
  "message": {
    "token": "***",
    "notification": {
      "title": "string",
      "body": "string"
    },
    "android": {
      "priority": "high",
      "notification": {
        "body_loc_args": [
          "string"
        ],
        "title_loc_args": [
          "string"
        ],
        "color": "string",
        "sound": "string",
        "icon": "string",
        "tag": "string",
        "title_loc_key": "string",
        "title": "string",
        "body": "string",
        "click_action": "string",
        "channel_id": "string",
        "body_loc_key": "string"
      },
      "data": {
        "message": "priority message"
      }
    },
    "apns": {
      "payload": {
        "aps": {
          "alert": {
            "title-loc-args": [
              "string"
            ],
            "title-loc-key": "string",
            "loc-args": [
              "string"
            ],
            "loc-key": "string",
            "title": "string",
            "body": "string"
          },
          "category": "string",
          "sound": "string"
        }
      }
    },
    "webpush": {
      "notification": {
        "icon": "string",
        "tag": "string",
        "body": "string",
        "title": "string"
      },
      "data": {
        "message": "priority message"
      }
    },
    "data": {
      "message": "priority message"
    }
  }
}
```

**Potenzielle Risiken**
+ Die Zuordnung von Legacy zu Version 1 unterstützt weder den Apple Push Notification Service (APNS) `headers` noch die `fcm_options` Schlüssel. Wenn Sie diese Felder verwenden möchten, senden Sie eine FCM v1-Payload.
+ In einigen Fällen benötigt FCM v1 Nachrichtenkopfzeilen, um stille Benachrichtigungen an Ihre Geräte zu senden. APNs Wenn Sie derzeit stille Benachrichtigungen an Ihre APNs Geräte senden, funktionieren diese mit dem älteren Ansatz nicht. Stattdessen empfehlen wir, die FCM v1-Payload zu verwenden, um unerwartete Probleme zu vermeiden. Eine Liste der APNs Header und wofür sie verwendet werden, findest du unter [Kommunizieren mit APNs](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html) im *Apple* Developer Guide.
+ Wenn Sie beim Senden Ihrer Benachrichtigung das `TTL` Amazon SNS SNS-Attribut verwenden, wird es nur im `android` Feld aktualisiert. Wenn Sie das `TTL` APNS-Attribut festlegen möchten, verwenden Sie die FCM v1-Payload.
+ Die `webpush` Schlüssel `android``apns`, und werden zugeordnet und mit allen bereitgestellten relevanten Schlüsseln gefüllt. Wenn Sie beispielsweise angeben, was ein Schlüssel ist`title`, der von allen drei Plattformen gemeinsam genutzt wird, füllt die FCM-v1-Zuordnung alle drei Plattformen mit dem von Ihnen angegebenen Titel auf.
+ Bei einigen von Plattformen gemeinsam genutzten Schlüsseln werden unterschiedliche Werttypen erwartet. Beispielsweise `apns` erwartet der `badge` Schlüssel, an den übergeben wurde, einen Integer-Wert, während der `badge` Schlüssel, an den übergeben wurde, einen String-Wert `webpush` erwartet. In Fällen, in denen Sie den `badge` Schlüssel angeben, füllt die FCM v1-Zuordnung nur den Schlüssel auf, für den Sie einen gültigen Wert angegeben haben.

## Ereignisse, die bei der FCM-Zustellung fehlschlagen
<a name="sns-fcm-delivery-failure-events"></a>

Die folgende Tabelle enthält den Amazon SNS SNS-Fehlertyp, der den Fehler-/Statuscodes entspricht, die von Google für FCM v1-Benachrichtigungsanfragen erhalten wurden. Alle beobachteten Fehlercodes, die von der FCM v1-API empfangen wurden, stehen Ihnen zur Verfügung, CloudWatch wenn Sie die [Versandstatusprotokollierung für Ihre Anwendung](topics-attrib.md) einrichten.


| FCM-Code error/status  | Amazon SNS SNS-Fehlertyp | Fehlernachricht | Ursache und Abhilfemaßnahme | 
| --- | --- | --- | --- | 
|  `UNREGISTERED`  |  `InvalidPlatformToken`  |  Das dem Endpunkt zugeordnete Plattformtoken ist nicht gültig.  |  Das an Ihren Endpunkt angehängte Geräte-Token ist veraltet oder ungültig. Amazon SNS hat Ihren Endpunkt deaktiviert. Aktualisieren Sie den Amazon SNS SNS-Endpunkt auf das neueste Geräte-Token.  | 
|  `INVALID_ARGUMENT`  |  `InvalidNotification`  |  Der Text der Benachrichtigung ist ungültig.  |  Das Geräte-Token oder die Nachrichten-Payload sind möglicherweise ungültig. Stellen Sie sicher, dass Ihre Nachrichten-Payload gültig ist. Wenn die Nachrichten-Payload gültig ist, aktualisieren Sie den Amazon SNS SNS-Endpunkt auf das neueste Geräte-Token.  | 
|  `SENDER_ID_MISMATCH`  |  `InvalidPlatformToken`  |  Das dem Endpunkt zugeordnete Plattform-Token ist nicht gültig.  |  Die mit dem Geräte-Token verknüpfte Plattformanwendung ist nicht berechtigt, an das Geräte-Token zu senden. Stellen Sie sicher, dass Sie die richtigen FCM-Anmeldeinformationen in Ihrer Amazon SNS-Plattformanwendung verwenden.  | 
|  `UNAVAILABLE`  |  `DependencyUnavailable`  |  Die Abhängigkeit ist nicht verfügbar.  |  FCM konnte die Anfrage nicht rechtzeitig bearbeiten. Alle von Amazon SNS ausgeführten Wiederholungen sind fehlgeschlagen. Sie können diese Nachrichten in einer Warteschlange (Dead-Letter Queue, DLQ) speichern und sie zu einem späteren Zeitpunkt erneut versenden.  | 
|  `INTERNAL`  |  `UnexpectedFailure`  |  Unerwarteter Fehler. Bitte wenden Sie sich an Amazon. Fehlerphrase [Interner Fehler].  |  Beim Versuch, Ihre Anfrage zu bearbeiten, ist auf dem FCM-Server ein Fehler aufgetreten. Alle von Amazon SNS ausgeführten Wiederholungen sind fehlgeschlagen. Sie können diese Nachrichten in einer Warteschlange (Dead-Letter Queue, DLQ) speichern und sie zu einem späteren Zeitpunkt erneut versenden.  | 
|  `THIRD_PARTY_AUTH_ERROR`  |  `InvalidCredentials`  |  Die Anmeldeinformationen für die Plattformanwendung sind nicht gültig.  |  Eine Nachricht, die an ein iOS-Gerät oder ein Webpush-Gerät gerichtet war, konnte nicht gesendet werden. Stellen Sie sicher, dass Ihre Entwicklungs- und Produktionsanmeldedaten gültig sind.  | 
|  `QUOTA_EXCEEDED`  |  `Throttled`  |  Die Anfrage wurde von [gcm] gedrosselt.  |  Ein Nachrichtenratenkontingent, ein Gerätenachrichtenratenkontingent oder ein Themen-Nachrichtenratenkontingent wurde überschritten. Informationen zur Behebung dieses Problems finden Sie [ErrorCode](https://firebase.google.com/docs/reference/fcm/rest/v1/ErrorCode)in der *Firebase-Dokumentation* von Google.  | 
|  `PERMISSION_DENIED`  |  `InvalidNotification`  |  Der Text der Benachrichtigung ist ungültig.  |  Im `PERMISSION_DENIED` Ausnahmefall ist der Aufrufer (Ihre FCM-Anwendung) nicht berechtigt, den angegebenen Vorgang in der Nutzlast auszuführen. Navigieren Sie zu Ihrer FCM-Konsole und vergewissern Sie sich, dass in Ihren Anmeldeinformationen die erforderlichen API-Aktionen aktiviert sind.  | 

# Attribute der mobilen Amazon SNS SNS-App
<a name="sns-msg-status"></a>

Amazon Simple Notification Service (Amazon SNS) unterstützt die Protokollierung des Zustellungsstatus von Push-Benachrichtigungen. Nachdem Sie Anwendungsattribute konfiguriert haben, werden Protokolleinträge für Nachrichten, die von Amazon SNS an mobile Endpunkte gesendet wurden, an CloudWatch Logs gesendet. Die Protokollierung des Zustellungsstatus von Nachrichten verhilft Ihnen zu besseren betrieblichen Einblicken, wie beispielsweise den Folgenden: 
+ Sie erfahren, ob eine Push-Benachrichtigungsmitteilung von Amazon SNS an den Push-Benachrichtigungsservice zugestellt wurde.
+ Identifizieren Sie die Antwort, die vom Push-Benachrichtigungsservice an den Amazon SNS gesendet wurde.
+ Ermitteln Sie die dwell-Zeit der Nachricht (das Zeitfenster zwischen dem Zeitstempel der Veröffentlichung bis direkt vor der Übergabe an einen Push-Benachrichtigungsservice).

 Um Anwendungsattribute für den Nachrichtenzustellungsstatus zu konfigurieren, können Sie die AWS-Managementkonsole AWS Software Development Kits (SDKs) oder die Abfrage-API verwenden. 

## Konfiguration von Nachrichtenzustellungsstatusattributen mit dem AWS-Managementkonsole
<a name="sns-msg-console"></a>

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich die Option **Mobile (Mobil)** und dann **Push notifications (Push-Benachrichtigungen)** aus.

1. Wählen Sie im Abschnitt **Plattformanwendungen** die Anwendung aus, die die Endpoints enthält, für die Sie CloudWatch Protokolle erhalten möchten.

1. Wählen Sie **Application Actions (Anwendungsaktionen)** und anschließend **Delivery status (Zustellungsstatus)**.

1. Wählen Sie im Dialogfeld **Delivery Status (Zustellungsstatus)**die Option **Create IAM Roles (IAM-Rollen erstellen)**.

   Sie werden anschließend zur IAM-Konsole umgeleitet.

1. Wählen Sie **Zulassen**, um Amazon SNS Schreibzugriff auf die Nutzung von CloudWatch Logs in Ihrem Namen zu gewähren.

1. Kehren Sie nun zum Dialogfeld „**Lieferstatus**“ zurück und geben Sie im Feld **Erfolgsquote bis zur Stichprobe (0-100)** eine Zahl für den Prozentsatz der erfolgreich gesendeten Nachrichten ein, für die Sie Logs erhalten CloudWatch möchten.
**Anmerkung**  
Nachdem Sie die Anwendungsattribute für den Nachrichtenzustellungsstatus konfiguriert haben, werden für alle fehlgeschlagenen Nachrichtenzustellungen CloudWatch Protokolle generiert.

1. Wählen Sie anschließend **Save Configuration (Konfiguration speichern)**. Sie können jetzt die CloudWatch Protokolle mit dem Status der Nachrichtenzustellung anzeigen und analysieren. Weitere Informationen zur Verwendung CloudWatch finden Sie in der [CloudWatchDokumentation](https://aws.amazon.com/documentation/cloudwatch).

## Beispiele für das CloudWatch Protokoll zum Status der Nachrichtenzustellung in Amazon SNS
<a name="sns-msg-examples"></a>

Nachdem Sie die Attribute für den Nachrichtenzustellungsstatus für einen Anwendungsendpunkt konfiguriert haben, werden CloudWatch Protokolle generiert. Beispielprotokolle im JSON-Format werden wie folgt angezeigt:

**ERFOLG**

```
{
  "status": "SUCCESS",
  "notification": {
    "timestamp": "2015-01-26 23:07:39.54",
    "messageId": "9655abe4-6ed6-5734-89f7-e6a6a42de02a"
  },
  "delivery": {
    "statusCode": 200,
    "dwellTimeMs": 65,
    "token": "Examplei7fFachkJ1xjlqT64RaBkcGHochmf1VQAr9k-IBJtKjp7fedYPzEwT_Pq3Tu0lroqro1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw",
    "attempts": 1,
    "providerResponse": "{\"multicast_id\":5138139752481671853,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1422313659698010%d6ba8edff9fd7ecd\"}]}",
    "destination": "arn:aws:sns:us-east-2:111122223333:endpoint/FCM/FCMPushApp/c23e42de-3699-3639-84dd-65f84474629d"
  }
}
```

**FEHLER**

```
{
  "status": "FAILURE",
  "notification": {
    "timestamp": "2015-01-26 23:29:35.678",
    "messageId": "c3ad79b0-8996-550a-8bfa-24f05989898f"
  },
  "delivery": {
    "statusCode": 8,
    "dwellTimeMs": 1451,
    "token": "examp1e29z6j5c4df46f80189c4c83fjcgf7f6257e98542d2jt3395kj73",
    "attempts": 1,
    "providerResponse": "NotificationErrorResponse(command=8, status=InvalidToken, id=1, cause=null)",
    "destination": "arn:aws:sns:us-east-2:111122223333:endpoint/APNS_SANDBOX/APNSPushApp/986cb8a1-4f6b-34b1-9a1b-d9e9cb553944"
  }
}
```

Eine Liste der Antwortcodes für den Push-Benachrichtigungsservice finden Sie unter [Antwortcodes der Plattformen](#platform-returncodes).

## Konfiguration von Statusattributen für die Nachrichtenzustellung mit dem AWS SDKs
<a name="sns-msg-sdk"></a>

[AWS SDKs](https://aws.amazon.com/tools/)Sie bieten APIs in mehreren Sprachen die Verwendung von Nachrichtenzustellungsstatusattributen mit Amazon SNS an. 

Das folgende Java-Beispiel zeigt, wie Sie mit der `SetPlatformApplicationAttributes`-API Anwendungsattribute für den Status von Nachrichtenübermittlungen von Push-Benachrichtigungsmitteilungen konfigurieren. Sie können die folgenden Attribute für den Status von Nachrichtenübermittlungen verwenden: `SuccessFeedbackRoleArn``FailureFeedbackRoleArn` und `SuccessFeedbackSampleRate`. Die `FailureFeedbackRoleArn` Attribute `SuccessFeedbackRoleArn` und werden verwendet, um Amazon SNS Schreibzugriff auf die Nutzung von CloudWatch Logs in Ihrem Namen zu gewähren. Das Attribut `SuccessFeedbackSampleRate` dient zum Festlegen des Prozentsatzes der Samplerate (0-100) der erfolgreich zugestellten Nachrichten. Nachdem Sie das `FailureFeedbackRoleArn` Attribut konfiguriert haben, werden bei allen fehlgeschlagenen Nachrichtenzustellungen CloudWatch Protokolle generiert. 

```
SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest = new SetPlatformApplicationAttributesRequest();
Map<String, String> attributes = new HashMap<>();
attributes.put("SuccessFeedbackRoleArn", "arn:aws:iam::111122223333:role/SNS_CWlogs");
attributes.put("FailureFeedbackRoleArn", "arn:aws:iam::111122223333:role/SNS_CWlogs");
attributes.put("SuccessFeedbackSampleRate", "5");
setPlatformApplicationAttributesRequest.withAttributes(attributes);
setPlatformApplicationAttributesRequest.setPlatformApplicationArn("arn:aws:sns:us-west-2:111122223333:app/FCM/FCMPushApp");
sns.setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);
```

Weitere Informationen zu SDK für Java finden Sie unter [Erste Schritte mit dem AWS SDK für Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html).

## Antwortcodes der Plattformen
<a name="platform-returncodes"></a>

Die folgende Liste enthält Links für die Antwortcodes des Push-Benachrichtigungsservice:


****  

| Push-Benachrichtigungsservice | Antwortcodes | 
| --- | --- | 
| Amazon Device Messaging (ADM) | Weitere Informationen finden Sie unter [Antwortformat](https://developer.amazon.com/docs/adm/send-message.html#response-format) in der ADM Dokumentation. | 
| Apple-Push-Benachrichtigungsdienst () APNs | Weitere Informationen finden Sie unter HTTP/2-Antwort von APNs in [Kommunizieren mit APNs](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html#/apple_ref/doc/uid/TP40008194-CH11-SW1) im Programmierhandbuch für lokale und ferngesteuerte Benachrichtigungen. | 
| Firebase Cloud Messaging (FCM) | Weitere Informationen finden Sie unter [Downstream Message Error Response Codes](https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes) in der Firebase Cloud Messaging Dokumentation. | 
| Microsoft Push Notification Service für Windows Phone (MPNS) | Weitere Informationen finden Sie unter [Push Notification Service Response Codes for Windows Phone 8](https://msdn.microsoft.com/en-us/library/windows/apps/ff941100%28v=vs.105%29.aspx#BKMK_PushNotificationServiceResponseCodes) in der Windows 8 Development Dokumentation. | 
| Windows Push Notification Services (WNS) | Weitere Informationen finden Sie unter "Response codes" in [Push Notification Service Request and Response Headers (Windows Runtime Apps)](https://msdn.microsoft.com/en-us/library/windows/apps/hh465435.aspx) in der Windows 8 Development-Dokumentation. | 

# Benachrichtigungen über Amazon SNS SNS-Anwendungsereignisse für mobile Anwendungen
<a name="application-event-notifications"></a>

Amazon SNS löst bei Auftreten bestimmter Anwendungsereignisse Benachrichtigungen aus. Im Anschluss daran können Sie eine programmgesteuerte Aktion für das Ereignis definieren. Ihre Anwendung muss Unterstützung für einen Push-Benachrichtigungsdienst wie Apple Push Notification Service (APNs), Firebase Cloud Messaging (FCM) und Windows Push Notification Services (WNS) enthalten. Sie richten Benachrichtigungen über Anwendungsereignisse mithilfe der Amazon SNS SNS-Konsole oder der AWS SDKs ein. AWS CLI

## Verfügbare Anwendungsereignisse
<a name="application-event-notifications-events"></a>

Ereignisbenachrichtigungen einer Anwendung können nachverfolgen, wann Endpunkte für individuelle Plattformen erstellt, gelöscht oder aktualisiert wurden. Sie können außerdem Versandfehler nachverfolgen. Im Folgenden sind die Attributnamen für die Anwendungsereignisse aufgeführt.


| Attributname | Benachrichtigungsauslöser | 
| --- | --- | 
| EventEndpointCreated | Ein neuer Plattformendpunkt wird Ihrer Anwendung hinzugefügt. | 
| EventEndpointDeleted | Alle Plattformendpunkte, die Ihrer Anwendung zugewiesen sind, werden gelöscht. | 
| EventEndpointUpdated | Alle Attribute der Plattformendpunkte, die Ihrer Anwendung zugewiesen sind, werden geändert. | 
| EventDeliveryFailure | Bei einer Übermittlung an einen der Plattformendpunkte, die Ihrer Anwendung zugewiesen wurden, ist ein dauerhafter Fehler aufgetreten.  Um von der Plattform-Anwendung ausgehende Fehler bei der Übermittlung zu verfolgen, abonnieren Sie für die Anwendung Statusereignisse für die Nachrichtenübermittlung. Weitere Informationen finden Sie unter [Verwendung von Amazon SNS-Anwendungsattributen für den Status von Nachrichtenübermittlungen](https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html).  | 

Sie können jedes Attribut einer Anwendung zuordnen, die dann diese Ereignisbenachrichtigungen empfangen kann. 

## Senden mobiler Push-Benachrichtigungen
<a name="application-event-notifications-howto-set"></a>

Um Ereignisbenachrichtigungen für Anwendungen zu versenden, geben Sie ein Thema an, das die Benachrichtigungen für den jeweiligen Ereignistyp erhalten soll. Sobald Amazon SNS die Benachrichtigungen sendet, kann das Themas diese an Endpunkte weiterleiten, die eine programmgesteuerte Aktion durchführen werden.

**Wichtig**  
Anwendungen mit großem Volumen rufen häufige Ereignisbenachrichtigungen für Anwendungen hervor (z. B. Zehntausende), durch die Endpunkte, die für die Verwendung durch Menschen vorgesehen sind, überflutet werden (z. B. E-Mail-Adressen, Telefonnummern und mobile Anwendungen). Beachten Sie folgende Richtlinien, wenn Sie Ereignisbenachrichtigungen für Anwendungen an ein Thema senden:  
Jedes Thema, das Benachrichtigungen erhält, sollte nur Abonnements für programmatische Endpunkte wie HTTP- oder HTTPS-Endpunkte, Amazon SQS SQS-Warteschlangen oder Funktionen enthalten. AWS Lambda 
Um den Bearbeitungsaufwand, der durch Benachrichtigungen ausgelöst wird, zu minimieren, reduzieren Sie die Anzahl der Abonnements eines jeden Themas (z. B. auf fünf oder weniger).

Sie können Benachrichtigungen über Anwendungsereignisse über die Amazon SNS SNS-Konsole, die AWS Command Line Interface (AWS CLI) oder die AWS SDKs senden. 

### AWS-Managementkonsole
<a name="application-event-notifications-howto-set-console"></a>

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich die Option **Mobile (Mobil)** und dann **Push notifications (Push-Benachrichtigungen)** aus.

1. Wählen Sie auf der Seite **Mobile Push-Benachrichtigungen** im Abschnitt **Plattformanwendungen** eine Anwendung aus und klicken Sie dann auf **Bearbeiten**.

1. Erweitern Sie den Abschnitt **Event notifications (Ereignisbenachrichtigungen)**.

1. Wählen Sie **Actions (Aktionen)** und **Configure events (Ereignisse konfigurieren)** aus.

1. Geben Sie die ARNs vier Themen ein, die für die folgenden Ereignisse verwendet werden sollen:
   + Ersteller Endpunkt
   + Gelöschter Endpunkt
   + Aktualisierter Endpunkt
   + Übermittlungsfehler

1. Wählen Sie **Änderungen speichern ** aus.

### AWS CLI
<a name="awscli"></a>

Führen Sie den Befehl [set-platform-application-attributes](https://docs.aws.amazon.com/cli/latest/reference/sns/set-platform-application-attributes.html) aus.

Im folgenden Beispiel wird das gleiche Amazon SNS-Thema für alle vier Anwendungsereignisse definiert:

```
aws sns set-platform-application-attributes
--platform-application-arn arn:aws:sns:us-east-1:12345EXAMPLE:app/FCM/MyFCMPlatformApplication
--attributes EventEndpointCreated="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents",
EventEndpointDeleted="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents",
EventEndpointUpdated="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents",
EventDeliveryFailure="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents"
```

### AWS SDKs
<a name="application-event-notifications-sdk"></a>

Richten Sie Benachrichtigungen über Anwendungsereignisse ein, indem Sie mithilfe eines AWS SDK eine `SetPlatformApplicationAttributes` Anfrage mit der Amazon SNS SNS-API einreichen.

Eine vollständige Liste der AWS SDK-Entwicklerhandbücher und Codebeispiele, einschließlich Hilfe bei den ersten Schritten und Informationen zu früheren Versionen, finden Sie unter[Amazon SNS mit einem AWS SDK verwenden](sdk-general-information-section.md).

# Mobile Push-API-Aktionen
<a name="mobile-push-api"></a>

Um Amazon SNS Mobile Push verwenden zu können APIs, müssen Sie zunächst die Voraussetzungen für den Push-Benachrichtigungsdienst wie Apple Push Notification Service (APNs) und Firebase Cloud Messaging (FCM) erfüllen. Weitere Informationen zu diesen Voraussetzungen finden Sie unter [Voraussetzungen für Amazon SNS-Benutzerbenachrichtigungen](sns-prerequisites-for-mobile-push-notifications.md). 

 Um mithilfe von eine Push-Benachrichtigung an eine mobile App und ein Gerät zu senden APIs, müssen Sie zunächst die `CreatePlatformApplication` Aktion verwenden, die ein Attribut zurückgibt. `PlatformApplicationArn` Das `PlatformApplicationArn`-Attribut wird dann von `CreatePlatformEndpoint` verwendet. So wird ein `EndpointArn`-Attribut zurückgeben. Anschließend können Sie mit dem `EndpointArn`-Attribut mit der `Publish`-Aktion eine Benachrichtigung an eine mobile App und ein Gerät senden oder Sie können das `EndpointArn`-Attribut mit der `Subscribe`-Aktion zum Abonnieren eines Themas verwenden. Weitere Informationen finden Sie unter [Push-Benachrichtigungen mit Amazon SNS einrichten](sns-mobile-application-as-subscriber.md#sns-user-notifications-process-overview).

Die mobilen Amazon SNS SNS-Pushs APIs lauten wie folgt: 

`[CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)`  
Erstellt ein Plattformanwendungsobjekt für einen der unterstützten Push-Benachrichtigungsdienste wie APNs FCM, bei dem sich Geräte und mobile Apps registrieren können. Gibt ein `PlatformApplicationArn`-Attribut zurück, das für die `CreatePlatformEndpoint`-Aktion verwendet wird.

`[CreatePlatformEndpoint](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html)`  
Erstellt einen Endpunkt für ein Gerät und eine mobile App für einen der unterstützten Push-Benachrichtigungsservices. `CreatePlatformEndpoint` verwendet das `PlatformApplicationArn`-Attribut, das der `CreatePlatformApplication`-Aktion zurückgegeben wurde. Das `EndpointArn`-Attribut, das bei der Verwendung von `CreatePlatformEndpoint` zurückgegeben wird, wird mit der `Publish`-Aktion verwendet, um eine Benachrichtigung an die mobile App und das Gerät zu senden. 

`[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)`  
Erstellt ein Thema, über das die Nachrichten veröffentlicht werden können. 

`[DeleteEndpoint](https://docs.aws.amazon.com/sns/latest/api/API_DeleteEndpoint.html)`  
Löscht den Endpunkt für ein Gerät und eine mobile App für einen der unterstützten Push-Benachrichtigungsservices.

`[DeletePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_DeletePlatformApplication.html)`  
Löscht ein Plattformanwendungsobjekt.

`[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)`  
Löscht ein Thema und alle seine Abonnements.

`[GetEndpointAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetEndpointAttributes.html)`  
Ruft die Endpunktattribute für ein Gerät und eine mobile App ab.

`[GetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetPlatformApplicationAttributes.html)`  
Ruft die Attribute des Plattformanwendungsobjekts ab.

`[ListEndpointsByPlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html)`  
Listet die Endpunkte und Endpunktattribute für Geräte und mobile Apps in einem unterstützten Push-Benachrichtigungsservice auf.

`[ListPlatformApplications](https://docs.aws.amazon.com/sns/latest/api/API_ListPlatformApplications.html)`  
Listet die Plattformanwendungsobjekte für die unterstützten Push-Benachrichtigungsservices auf.

`[Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)`  
Sendet eine Benachrichtigung an alle abonnierten Endpunkte des Themas.

`[SetEndpointAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html)`  
Legt die Attribute für einen Endpunkt für ein Gerät und eine mobile App fest.

`[SetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html)`  
Legt die Attribute des Plattformanwendungsobjekts fest.

`[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)`  
Bereitet über das Senden einer Bestätigungsnachricht an den Endpunkt das Abonnieren eines Endpunkts vor. Um tatsächlich ein Abonnement zu erstellen, muss der Endpunktbesitzer die ConfirmSubscription Aktion mit dem Token aus der Bestätigungsnachricht aufrufen. 

`[Unsubscribe](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html)`  
Löscht ein Abonnement.

# Häufige Amazon SNS SNS-Push-API-Fehler für Mobilgeräte
<a name="mobile-push-api-error"></a>

Fehler, die von Amazon SNS APIs for Mobile Push zurückgegeben werden, sind in der folgenden Tabelle aufgeführt. Weitere Informationen über Amazon SNS APIs for Mobile Push finden Sie unter[Mobile Push-API-Aktionen](mobile-push-api.md).


| Fehler | Beschreibung | HTTPS-Statuscode | API-Aktion | 
| --- | --- | --- | --- | 
| Anwendungsname ist eine Null-Zeichenfolge | Der erforderliche Anwendungsname ist auf Null festgelegt. | 400 | `CreatePlatformApplication` | 
| Plattformname ist eine Null-Zeichenfolge | Der erforderliche Plattformname ist auf Null festgelegt. | 400 | `CreatePlatformApplication` | 
| Plattformname ist ungültig | Für den Plattformnamen wurde ein ungültiger out-of-range Wert oder angegeben. | 400 | `CreatePlatformApplication` | 
| APNs — Principal ist kein gültiges Zertifikat | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein ungültiges Zertifikat bereitgestellt. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `CreatePlatformApplication` | 
| APNs — Principal ist ein gültiges Zertifikat, aber nicht im PEM-Format | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein gültiges Zertifikat bereitgestellt, das nicht im PEM-Format vorliegt. | 400 | `CreatePlatformApplication` | 
| APNs — Principal ist ein abgelaufenes Zertifikat | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein abgelaufenes Zertifikat bereitgestellt. | 400 | `CreatePlatformApplication` | 
| APNs — Principal ist kein von Apple ausgestelltes Zertifikat | Für den APNs-Prinzipal, bei dem es sich um das SSL-Zertifikat handelt, wurde ein nicht von Apple ausgestelltes Zertifikat angegeben. | 400 | `CreatePlatformApplication` | 
| APNs — Der Schulleiter ist nicht angegeben | Der APNs Prinzipal, bei dem es sich um das SSL-Zertifikat handelt, wurde nicht bereitgestellt. | 400 | `CreatePlatformApplication` | 
| APNs — Der Berechtigungsnachweis wurde nicht bereitgestellt | Die APNs Anmeldeinformationen, bei denen es sich um den privaten Schlüssel handelt, wurden nicht bereitgestellt. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `CreatePlatformApplication` | 
| APNs — Die Anmeldeinformationen haben kein gültiges PEM-Format | Die APNs Anmeldeinformationen, bei denen es sich um den privaten Schlüssel handelt, haben kein gültiges PEM-Format. | 400 | `CreatePlatformApplication` | 
| FCM — Server wird nicht bereitgestellt APIKey  | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, wurden nicht angegeben. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `CreatePlatformApplication` | 
| FCM — Server APIKey ist leer | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, sind leer. | 400 | `CreatePlatformApplication` | 
| FCM — Server APIKey ist eine Nullzeichenfolge | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, sind Null. | 400 | `CreatePlatformApplication` | 
| FCM — Server APIKey ist ungültig | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, sind ungültig. | 400 | `CreatePlatformApplication` | 
| ADM – clientsecret wurde nicht angegeben | Der erforderliche Clientschlüssel liegt nicht vor. | 400 | `CreatePlatformApplication` | 
| ADM – clientsecret ist eine Null-Zeichenfolge | Die erforderliche Zeichenfolge für den Clientschlüssel ist Null. | 400 | `CreatePlatformApplication` | 
| ADM – client\$1secret ist eine leere Zeichenfolge | Die erforderliche Zeichenfolge für den Clientschlüssel ist leer. | 400 | `CreatePlatformApplication` | 
| ADM – client\$1secre ist nicht gültig | Die erforderliche Zeichenfolge für den Clientschlüssel ist nicht gültig. | 400 | `CreatePlatformApplication` | 
| ADM – client\$1id ist eine leere Zeichenfolge | Die erforderliche Zeichenfolge für die Client-ID ist leer. | 400 | `CreatePlatformApplication` | 
| ADM – clientId wurde nicht angegeben | Die erforderliche Zeichenfolge für die Client-ID liegt nicht vor. | 400 | `CreatePlatformApplication` | 
| ADM – clientid ist eine Null-Zeichenfolge | Die erforderliche Zeichenfolge für die Client-ID ist Null. | 400 | `CreatePlatformApplication` | 
| ADM – client\$1id ist nicht gültig | Die erforderliche Zeichenfolge für die Client-ID ist nicht gültig. | 400 | `CreatePlatformApplication` | 
| EventEndpointCreated hat ein ungültiges ARN-Format | EventEndpointCreated hat ein ungültiges ARN-Format. | 400 | `CreatePlatformApplication` | 
| EventEndpointDeleted hat ein ungültiges ARN-Format | EventEndpointDeleted hat ein ungültiges ARN-Format. | 400 | `CreatePlatformApplication` | 
| EventEndpointUpdated hat ein ungültiges ARN-Format | EventEndpointUpdated hat ein ungültiges ARN-Format. | 400 | `CreatePlatformApplication` | 
| EventDeliveryAttemptFailure hat ein ungültiges ARN-Format | EventDeliveryAttemptFailure hat ein ungültiges ARN-Format. | 400 | `CreatePlatformApplication` | 
| EventDeliveryFailure hat ein ungültiges ARN-Format | EventDeliveryFailure hat ein ungültiges ARN-Format. | 400 | `CreatePlatformApplication` | 
| EventEndpointCreated ist kein vorhandenes Thema | EventEndpointCreated ist kein vorhandenes Thema. | 400 | `CreatePlatformApplication` | 
| EventEndpointDeleted ist kein vorhandenes Thema | EventEndpointDeleted ist kein vorhandenes Thema. | 400 | `CreatePlatformApplication` | 
| EventEndpointUpdated ist kein vorhandenes Thema | EventEndpointUpdated ist kein vorhandenes Thema. | 400 | `CreatePlatformApplication` | 
| EventDeliveryAttemptFailure ist kein vorhandenes Thema | EventDeliveryAttemptFailure ist kein vorhandenes Thema. | 400 | `CreatePlatformApplication` | 
| EventDeliveryFailure ist kein vorhandenes Thema | EventDeliveryFailure ist kein vorhandenes Thema. | 400 | `CreatePlatformApplication` | 
| ARN der Plattform ist ungültig | ARN der Plattform ist ungültig. | 400 | `SetPlatformAttributes` | 
| ARN der Plattform ist gültig, gehört aber nicht dem Benutzer | ARN der Plattform ist gültig, gehört aber nicht dem Benutzer. | 400 | `SetPlatformAttributes` | 
| APNs — Principal ist kein gültiges Zertifikat | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein ungültiges Zertifikat bereitgestellt. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `SetPlatformAttributes` | 
| APNs — Principal ist ein gültiges Zertifikat, aber nicht im PEM-Format | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein gültiges Zertifikat bereitgestellt, das nicht im PEM-Format vorliegt. | 400 | `SetPlatformAttributes` | 
| APNs — Principal ist ein abgelaufenes Zertifikat | Für den APNs Prinzipal, das SSL-Zertifikat, wurde ein abgelaufenes Zertifikat bereitgestellt. | 400 | `SetPlatformAttributes` | 
| APNs — Principal ist kein von Apple ausgestelltes Zertifikat | Für den APNs-Prinzipal, bei dem es sich um das SSL-Zertifikat handelt, wurde ein nicht von Apple ausgestelltes Zertifikat angegeben. | 400 | `SetPlatformAttributes` | 
| APNs — Der Schulleiter ist nicht angegeben | Der APNs Prinzipal, bei dem es sich um das SSL-Zertifikat handelt, wurde nicht bereitgestellt. | 400 | `SetPlatformAttributes` | 
| APNs — Der Berechtigungsnachweis wurde nicht bereitgestellt | Die APNs Anmeldeinformationen, bei denen es sich um den privaten Schlüssel handelt, wurden nicht bereitgestellt. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `SetPlatformAttributes` | 
| APNs — Die Anmeldeinformationen haben kein gültiges PEM-Format | Die APNs Anmeldeinformationen, bei denen es sich um den privaten Schlüssel handelt, haben kein gültiges PEM-Format. | 400 | `SetPlatformAttributes` | 
| FCM — Server wird nicht bereitgestellt APIKey  | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, wurden nicht angegeben. Weitere Informationen finden Sie [CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)in der Amazon Simple Notification Service API-Referenz. | 400 | `SetPlatformAttributes` | 
| FCM — Server APIKey ist eine Nullzeichenfolge | Die FCM-Anmeldeinformationen, bei denen es sich um den API-Schlüssel handelt, sind Null. | 400 | `SetPlatformAttributes` | 
| ADM – clientId wurde nicht angegeben | Die erforderliche Zeichenfolge für die Client-ID liegt nicht vor. | 400 | `SetPlatformAttributes` | 
| ADM – clientid ist eine Null-Zeichenfolge | Die erforderliche Zeichenfolge für die Client-ID ist Null. | 400 | `SetPlatformAttributes` | 
| ADM – clientsecret wurde nicht angegeben | Der erforderliche Clientschlüssel liegt nicht vor. | 400 | `SetPlatformAttributes` | 
| ADM – clientsecret ist eine Null-Zeichenfolge | Die erforderliche Zeichenfolge für den Clientschlüssel ist Null. | 400 | `SetPlatformAttributes` | 
| EventEndpointUpdated hat ein ungültiges ARN-Format | EventEndpointUpdated hat ein ungültiges ARN-Format. | 400 | `SetPlatformAttributes` | 
| EventEndpointDeleted hat ein ungültiges ARN-Format | EventEndpointDeleted hat ein ungültiges ARN-Format. | 400 | `SetPlatformAttributes` | 
| EventEndpointUpdated hat ein ungültiges ARN-Format | EventEndpointUpdated hat ein ungültiges ARN-Format. | 400 | `SetPlatformAttributes` | 
| EventDeliveryAttemptFailure hat ein ungültiges ARN-Format | EventDeliveryAttemptFailure hat ein ungültiges ARN-Format. | 400 | `SetPlatformAttributes` | 
| EventDeliveryFailure hat ein ungültiges ARN-Format | EventDeliveryFailure hat ein ungültiges ARN-Format. | 400 | `SetPlatformAttributes` | 
| EventEndpointCreated ist kein vorhandenes Thema | EventEndpointCreated ist kein vorhandenes Thema. | 400 | `SetPlatformAttributes` | 
| EventEndpointDeleted ist kein vorhandenes Thema | EventEndpointDeleted ist kein vorhandenes Thema. | 400 | `SetPlatformAttributes` | 
| EventEndpointUpdated ist kein vorhandenes Thema | EventEndpointUpdated ist kein vorhandenes Thema. | 400 | `SetPlatformAttributes` | 
| EventDeliveryAttemptFailure ist kein vorhandenes Thema | EventDeliveryAttemptFailure ist kein vorhandenes Thema. | 400 | `SetPlatformAttributes` | 
| EventDeliveryFailure ist kein vorhandenes Thema | EventDeliveryFailure ist kein vorhandenes Thema. | 400 | `SetPlatformAttributes` | 
| ARN der Plattform ist ungültig | Der ARN der Plattform ist ungültig. | 400 | `GetPlatformApplicationAttributes` | 
| ARN der Plattform ist gültig, gehört aber nicht dem Benutzer | Der ARN der Plattform ist gültig, gehört aber nicht dem Benutzer. | 403 | `GetPlatformApplicationAttributes` | 
| Der angegebene Token ist ungültig | Das angegebene Token ist ungültig. | 400 | `ListPlatformApplications` | 
| ARN der Plattform ist ungültig | Der ARN der Plattform ist ungültig. | 400 | `ListEndpointsByPlatformApplication` | 
| ARN der Plattform ist gültig, gehört aber nicht dem Benutzer | Der ARN der Plattform ist gültig, gehört aber nicht dem Benutzer. | 404 | `ListEndpointsByPlatformApplication` | 
| Der angegebene Token ist ungültig | Das angegebene Token ist ungültig. | 400 | `ListEndpointsByPlatformApplication` | 
| ARN der Plattform ist ungültig | Der ARN der Plattform ist ungültig. | 400 | `DeletePlatformApplication` | 
| ARN der Plattform ist gültig, gehört aber nicht dem Benutzer | Der ARN der Plattform ist gültig, gehört aber nicht dem Benutzer. | 403 | `DeletePlatformApplication` | 
| ARN der Plattform ist ungültig | Der ARN der Plattform ist ungültig. | 400 | `CreatePlatformEndpoint` | 
| ARN der Plattform ist gültig, gehört aber nicht dem Benutzer | Der ARN der Plattform ist gültig, gehört aber nicht dem Benutzer. | 404 | `CreatePlatformEndpoint` | 
| Der Token wurde nicht angegeben | Das Token wurde nicht angegeben. | 400 | `CreatePlatformEndpoint` | 
| Token hat nicht die richtige Länge | Das Token hat nicht die richtige Länge. | 400 | `CreatePlatformEndpoint` | 
| Kunden-/Benutzerdaten sind zu groß | Die Kunden-/Benutzerdaten dürfen in der UTF-8-Codierung maximal 2048 Byte lang ein. | 400 | `CreatePlatformEndpoint` | 
| Endpunkt-ARN ist ungültig | Der Endpunkt-ARN ist ungültig. | 400 | `DeleteEndpoint` | 
| Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer | Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer. | 403 | `DeleteEndpoint` | 
| Endpunkt-ARN ist ungültig | Der Endpunkt-ARN ist ungültig. | 400 | `SetEndpointAttributes` | 
| Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer | Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer. | 403 | `SetEndpointAttributes` | 
| Der Token wurde nicht angegeben | Das Token wurde nicht angegeben. | 400 | `SetEndpointAttributes` | 
| Token hat nicht die richtige Länge | Das Token hat nicht die richtige Länge. | 400 | `SetEndpointAttributes` | 
| Kunden-/Benutzerdaten sind zu groß | Die Kunden-/Benutzerdaten dürfen in der UTF-8-Codierung maximal 2048 Byte lang ein. | 400 | `SetEndpointAttributes` | 
| Endpunkt-ARN ist ungültig | Der Endpunkt-ARN ist ungültig. | 400 | `GetEndpointAttributes` | 
| Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer | Der Endpunkt-ARN ist gültig, gehört aber nicht dem Benutzer. | 403 | `GetEndpointAttributes` | 
| Ziel-ARN ist ungültig | Der Ziel-ARN ist ungültig. | 400 | `Publish` | 
| Der Ziel-ARN ist gültig, gehört aber nicht dem Benutzer | Der Ziel-ARN ist gültig, gehört aber nicht dem Benutzer. | 403 | `Publish` | 
| Nachrichtenformat ist ungültig | Das Nachrichtenformat ist ungültig. | 400 | `Publish` | 
| Nachrichtengröße ist größer als die vom Protokoll/End-Service unterstützte Größe | Die Nachrichtengröße ist größer als die vom Protokoll/End-Service unterstützte Größe. | 400 | `Publish` | 

# Verwendung des Time-to-Live-Nachrichten-Attributs von Amazon SNS für mobile Push-Benachrichtigungen
<a name="sns-ttl"></a>

Amazon Simple Notification Service (Amazon SNS) unterstützt das Festlegen eines *Time To Live (TTL)*-Nachrichtenattributs für Mobile Push-Benachrichtigungen. Dies gilt zusätzlich zu der bestehenden Möglichkeit, TTL innerhalb des Amazon SNS SNS-Nachrichtentexts für die mobilen Push-Benachrichtigungsdienste festzulegen, die dies unterstützen, wie Amazon Device Messaging (ADM) und Firebase Cloud Messaging (FCM) beim Senden an Android.

Das TTL-Nachrichtenattribut wird verwendet, um Ablauf-Metadaten über eine Nachricht anzugeben. Auf diese Weise können Sie angeben, wie viel Zeit der Push-Benachrichtigungsdienst wie Apple Push Notification Service (APNs) oder FCM benötigt, um die Nachricht an den Endpunkt zu übermitteln. Wenn die Nachricht aus irgendwelchen Gründen (z. B. bei Ausschalten des Mobilgeräts) innerhalb des angegebenen TTL nicht zustellbar ist, wird die Nachricht gelöscht und es werden keine weiteren Zustellversuche unternommen. Um TTL innerhalb von Nachrichtenattributen anzugeben, können Sie die AWS-Managementkonsole AWS Software Development Kits (SDKs) oder die Abfrage-API verwenden. 

## TTL-Nachrichtenattribute für Push-Benachrichtigungsservices
<a name="sns-ttl-msg-attrib"></a>

Im Folgenden finden Sie eine Liste der TTL-Nachrichtenattribute für Push-Benachrichtigungsdienste, die Sie bei Verwendung der API AWS SDKs oder der Abfrage-API festlegen können:


****  

| Push-Benachrichtigungsservice | TTL-Nachrichtenattribut | 
| --- | --- | 
| Amazon Device Messaging (ADM) | AWS.SNS.MOBILE.ADM.TTL | 
| Apple-Push-Benachrichtigungsdienst () APNs | AWS.SNS.MOBILE.APNS.TTL | 
| Sandbox für den Apple-Push-Benachrichtigungsdienst (APNs\$1SANDBOX) | AWS.SNS.MOBILE.APNS\$1SANDBOX.TTL | 
| Baidu Cloud Push (Baidu) | AWS.SNS.MOBILE.BAIDU.TTL | 
| Firebase Cloud Messaging (FCM beim Senden an Android) | AWS.SNS.MOBILE.FCM.TTL | 
| Windows Push Notification Services (WNS) | AWS.SNS.MOBILE.WNS.TTL | 

Jeder Push-Benachrichtigungsservice geht anders mit TTL um. Amazon SNS bietet eine abstrakte Ansicht des TTL über alle Push-Benachrichtigungsservices, was das Festlegen des TTL erleichtert. Wenn Sie die AWS-Managementkonsole TTL (in Sekunden) angeben, müssen Sie den TTL-Wert nur einmal eingeben. Amazon SNS berechnet dann die TTL für jeden der ausgewählten Push-Benachrichtigungsdienste, wenn die Nachricht veröffentlicht wird. 

 Der TTL ist relativ zum Veröffentlichungszeitpunkt. Bevor eine Push-Benachrichtigung an einen bestimmten Push-Benachrichtigungsservice übergeben wird, berechnet Amazon SNS die dwell-Zeit (die Zeit zwischen dem Veröffentlichungszeitstempel und unmittelbar vor der Übergabe an einen Push-Benachrichtigungsservice) für die Push-Benachrichtigung und leitet den verbleibenden TTL an den betreffenden Push-Benachrichtigungsservice weiter. Wenn der TTL kürzer ist als die dwell-Zeit, versucht Amazon SNS keine Veröffentlichung. 

Wenn Sie eine TTL für eine Push-Benachrichtigung angeben, muss der TTL-Wert eine positive Ganzzahl sein, es sei denn, der Wert von `0` hat eine spezifische Bedeutung für den Push-Benachrichtigungsdienst, z. B. with APNs und FCM (beim Senden an Android). Wenn der TTL-Wert auf `0` festgelegt ist und der Push-Benachrichtigungsservice für `0` keine spezifische Bedeutung vorsieht, wird die Nachricht von Amazon SNS verworfen. [Weitere Informationen zum TTL-Parameter, der `0` bei der Verwendung auf eingestellt ist APNs, finden Sie in *Tabelle A-3 Elementkennungen für Fernbenachrichtigungen* in der Binary Provider-API-Dokumentation.](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/BinaryProviderAPI.html)

## Rangfolge bei der Bestimmung von TTL
<a name="sns-ttl-precedence"></a>

Die Rangfolge, die Amazon SNS zur Bestimmung des TTL-Werts für eine Push-Benachrichtigung verwendet, basiert auf der folgenden Reihenfolge, wobei die niedrigste Zahl die höchste Priorität hat: 

1. TTL-Nachrichtenattribut

1. TTL-Nachrichtentext

1. Standard-TTL des Push-Benachrichtigungsservice (variiert je nach Service)

1. Standard-TTL von Amazon SNS (4 Wochen)

Wenn Sie für die gleiche Nachricht verschiedene TTL-Werte festlegen (einen in den Nachrichtenattributen und einen anderen im Nachrichtentext), ändert Amazon SNS den TTL im Nachrichtentext so, dass er dem in dem Nachrichtenattribut angegebenen TTL-Wert entspricht.

## Angabe von TTL mit dem AWS-Managementkonsole
<a name="sns-ttl-console"></a>

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im Navigationsbereich die Option **Mobile (Mobil)** und dann **Push notifications (Push-Benachrichtigungen)** aus.

1. Wählen Sie auf der Seite **Mobile push notifications (Mobile Push-Benachrichtigungen)** im Abschnitt **Platform applications (Plattformanwendungen)** eine Anwendung aus.

1. Wählen Sie auf der ***MyApplication*** Seite im Abschnitt **Endpoints einen Anwendungsendpunkt** aus und klicken Sie dann auf Nachricht **veröffentlichen**.

1. Geben Sie im Abschnitt **Message details (Nachrichtendetails)** die TTL ein (die Anzahl an Sekunden, die dem Push-Benachrichtigungs-Service zur Verfügung stehen, um die Nachricht an den Endpunkt zu übermitteln).

1. Wählen Sie **Publish message (Nachricht veröffentlichen)** aus.

# Unterstützte Regionen für mobile Amazon SNS SNS-Anwendungen
<a name="sns-mobile-push-supported-regions"></a>

Derzeit können Sie mobile Anwendungen in den folgenden Regionen erstellen:
+ US East (Ohio)
+ USA Ost (Nord-Virginia)
+ USA West (Nordkalifornien)
+ USA West (Oregon)
+ Africa (Cape Town)
+ Asia Pacific (Hongkong)
+ Asien-Pazifik (Jakarta)
+ Asien-Pazifik (Mumbai)
+ Asien-Pazifik (Osaka)
+ Asien-Pazifik (Seoul)
+ Asien-Pazifik (Singapur)
+ Asien-Pazifik (Sydney)
+ Asien-Pazifik (Tokio)
+ Canada (Central)
+ Europe (Frankfurt)
+ Europa (Irland)
+ Europa (London)
+ Europa (Milan)
+ Europa (Spain)
+ Europa (Paris)
+ Europe (Stockholm)
+ Middle East (Bahrain)
+ Naher Osten (VAE)
+ Südamerika (São Paulo)
+ AWS GovCloud (USA, Westen)

# Bewährte Methoden für die Verwaltung von mobilen Amazon SNS SNS-Push-Benachrichtigungen
<a name="mobile-push-notifications-best-practices"></a>

In diesem Abschnitt werden bewährte Methoden beschrieben, die Ihnen dabei helfen können, die Kundenbindung zu verbessern.

## Endpunktverwaltung
<a name="channels-sms-best-practices-endpoint-management"></a>

Zustellungsprobleme können in Situationen auftreten, in denen sich Gerätetokens aufgrund einer Benutzeraktion auf dem Gerät ändern (z. B. wenn eine App auf dem Gerät neu installiert wird) oder wenn [Zertifikatsupdates](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns) sich auf Geräte auswirken, auf denen eine bestimmte iOS-Version ausgeführt wird. Es wird von Apple empfohlen, sich bei jedem Start Ihrer App bei APNs jedem Start zu [registrieren](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#:~:text=Registering%20to%20Receive%20Remote%20Notifications).

Da sich das Geräte-Token nicht jedes Mal ändert, wenn eine App von einem Benutzer geöffnet wird, kann die idempotente API [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) verwendet werden. Dies kann jedoch zu Duplikaten für dasselbe Gerät führen, wenn das Token selbst ungültig ist oder wenn der Endpunkt gültig, aber deaktiviert ist (z. B. wenn Produktions- und Sandbox-Umgebungen nicht übereinstimmen).

Es kann ein Mechanismus zur Verwaltung von Geräte-Token wie der im [Pseudo-Code](mobile-platform-endpoint.md#mobile-platform-endpoint-pseudo-code) verwendet werden.

Informationen zur Verwaltung und Pflege von FCM v1-Gerätetokens finden Sie unter. [Amazon SNS SNS-Verwaltung von Firebase Cloud Messaging-Endpunkten](sns-fcm-endpoint-management.md)

## Protokollieren des Zustellungsstatus
<a name="channels-sms-best-practices-delivery-logging"></a>

Für die Überwachung des Zustellungsstatus von Push-Benachrichtigungen empfehlen wir, die Protokollierung des Zustellungsstatus für Ihre Amazon-SNS-Plattformanwendung zu aktivieren. Dies hilft bei der Behebung von Zustellungsfehlern, da die Protokolle Anbieter-[Antwortcodes](sns-msg-status.md#platform-returncodes) enthalten, die vom Push-Plattformservice zurückgegeben wurden. Weitere Informationen zum Aktivieren der Protokollierung des Zustellungsstatus finden Sie unter [Wie greife ich auf Zustellungsprotokolle für Amazon SNS-Themen für Push-Benachrichtigungen zu?](https://aws.amazon.com/premiumsupport/knowledge-center/troubleshoot-failed-sns-deliveries/).

## Ereignismeldungen
<a name="channels-sms-best-practices-event-notifications"></a>

Um Endpunkte auf ereignisgesteuerte Weise zu verwalten, können Sie die Funktion [Ereignisbenachrichtigungen](application-event-notifications.md#application-event-notifications-sdk) verwenden. Dies ermöglicht es dem konfigurierten Amazon-SNS-Thema, Ereignisse an die Abonnenten zu verteilen, wie beispielsweise eine Lambda-Funktion für Plattformanwendungsereignisse zur Erstellung, Löschung, Aktualisierung und fehlgeschlagenen Zustellung von Endpunkten.

# Einrichtung und Verwaltung von Amazon SNS SNS-E-Mail-Abonnements
<a name="sns-email-notifications"></a>

Mit dem, oder AWS SDK für .NET können Sie eine [E-Mail-Adresse](#sns-email-notifications) für ein Amazon SNS SNS-Thema abonnieren. AWS-Managementkonsole AWS SDK für Java

**Hinweise**  
Die Anpassung des E-Mail-Nachrichtentexts wird nicht unterstützt. Die E-Mail-Übermittlungsfunktion dient dazu, interne Systemwarnungen bereitzustellen, keine Marketingnachrichten.
Das direkte Abonnieren von E-Mail-Endpunkten wird nur für Standardthemen unterstützt.
Der Durchsatz der E-Mail-Zustellung wird gedrosselt. Weitere Informationen finden Sie unter [Amazon SNS SNS-Kontingente](https://docs.aws.amazon.com/general/latest/gr/sns.html#limits_sns).

**Wichtig**  
Informationen zum Verhindern, dass Empfänger von Mailinglisten alle Empfänger von E-Mails zu Amazon-SNS-Themen abmelden, finden Sie unter [Einrichten eines E-Mail-Abonnements, das zum Abbestellen eine Authentifizierung voraussetzt](https://aws.amazon.com/premiumsupport/knowledge-center/prevent-unsubscribe-all-sns-topic/) vom AWS -Support.
Wenn das Limit von 10 Nachrichten pro Sekunde (TPS) für einen E-Mail- oder E-Mail-JSON-Endpunkt überschritten wird, wird das Abonnement automatisch gesperrt und es erhält den Status „Ausstehende Bestätigung“. Das Abonnement bleibt 30 Tage lang gültig. Danach wird es automatisch gelöscht, sofern keine Maßnahmen ergriffen werden. PendingConfirmation 
Wenn eine abonnierte E-Mail-Adresse nicht zugestellt wird, wird die Adresse für weitere 7 Tage gesperrt. Bounces können aus verschiedenen Gründen auftreten, unter anderem wegen ungültiger Adressen oder Problemen mit dem empfangenden E-Mail-Server. Um die Adresse vor Ablauf der Frist von 7 Tagen aus der Unterdrückungsliste zu entfernen, lösen Sie das zugrundeliegende Problem mit der E-Mail-Adresse und wenden Sie sich dann AWS über das Support Center an.

## Abonnieren einer E-Mail-Adresse für ein Amazon SNS SNS-Thema mit dem AWS-Managementkonsole
<a name="create-subscribe-endpoint-to-topic-console"></a>

1. Melden Sie sich bei der [Amazon-SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

1. Wählen Sie im linken Navigationsbereich **Subscriptions** (Abonnements).

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

1. Führen Sie auf der Seite **Create subscription ** (Abonnement erstellen) im Abschnitt **Details** die folgenden Schritte aus:

   1. Für das **Thema-ARN** wählen Sie den Amazon-Ressourcennamen (ARN) eines Themas.

   1. Wählen Sie unter **Protocol (Protokoll)** die Option **Email (E-Mail)** aus.

   1. Geben Sie unter **Endpunkt** Ihre E-Mail-Adresse ein.

   1. (Optional) Um eine Filterrichtlinie zu konfigurieren, erweitern Sie den Eintrag**Abonnement-Filterrichtlinie**Abschnitts erstellt. Weitere Informationen finden Sie unter [Filterrichtlinien für Amazon-SNS-Abonnements](sns-subscription-filter-policies.md).

   1. (Optional) Zur Aktivierung der nutzlastbasierten Filterung konfigurieren Sie `Filter Policy Scope` auf `MessageBody`. Weitere Informationen finden Sie unter [Filterrichtlinien für Amazon-SNS-Abonnements – Geltungsbereich](sns-message-filtering-scope.md).

   1. (Optional) Um eine Warteschlange für unzustellbare Nachrichten für das Abonnement zu konfigurieren, erweitern Sie den Abschnitt **Redrive-Richtlinie (Warteschlange für unzustellbare Nachrichten)**. Weitere Informationen finden Sie unter [Amazon SNS SNS-Warteschlangen für unzustellbare Briefe](sns-dead-letter-queues.md).

   1. Wählen Sie **Create subscription** (Abonnement erstellen) aus.

      Die Konsole erstellt das Abonnement und öffnet die **Abodetails**.

Sie müssen das Abonnement bestätigen, bevor die E-Mail-Adresse Nachrichten empfangen kann.

**Ein Abonnement bestätigen**

1. Überprüfen Sie Ihren E-Mail-Posteingang und wählen Sie **Abonnement bestätigen** in der E-Mail von Amazon SNS.

1. Amazon SNS öffnet Ihren Webbrowser und zeigt eine Abonnementbestätigung mit Ihrer Abonnement-ID an.

## Abonnieren einer E-Mail-Adresse für ein Amazon SNS SNS-Thema mithilfe eines SDK AWS
<a name="subscribe-email-to-topic-aws-sdks"></a>

Um ein AWS SDK verwenden zu können, müssen Sie es mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter [The shared config and credentials files](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) im *AWS SDKs Referenzhandbuch zu Tools*.

Die folgenden Code-Beispiele zeigen, wie `Subscribe` verwendet wird.

------
#### [ .NET ]

**SDK für .NET**  
 Weitere Informationen finden Sie unter GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
        /// <summary>
        /// Creates a new subscription to a topic.
        /// </summary>
        /// <param name="client">The initialized Amazon SNS client object, used
        /// to create an Amazon SNS subscription.</param>
        /// <param name="topicArn">The ARN of the topic to subscribe to.</param>
        /// <returns>A SubscribeResponse object which includes the subscription
        /// ARN for the new subscription.</returns>
        public static async Task<SubscribeResponse> TopicSubscribeAsync(
            IAmazonSimpleNotificationService client,
            string topicArn)
        {
            SubscribeRequest request = new SubscribeRequest()
            {
                TopicArn = topicArn,
                ReturnSubscriptionArn = true,
                Protocol = "email",
                Endpoint = "recipient@example.com",
            };

            var response = await client.SubscribeAsync(request);

            return response;
        }
```
Abonnieren Sie eine Warteschlange für ein Thema mit optionalen Filtern.  

```
    /// <summary>
    /// Subscribe a queue to a topic with optional filters.
    /// </summary>
    /// <param name="topicArn">The ARN of the topic.</param>
    /// <param name="useFifoTopic">The optional filtering policy for the subscription.</param>
    /// <param name="queueArn">The ARN of the queue.</param>
    /// <returns>The ARN of the new subscription.</returns>
    public async Task<string> SubscribeTopicWithFilter(string topicArn, string? filterPolicy, string queueArn)
    {
        var subscribeRequest = new SubscribeRequest()
        {
            TopicArn = topicArn,
            Protocol = "sqs",
            Endpoint = queueArn
        };

        if (!string.IsNullOrEmpty(filterPolicy))
        {
            subscribeRequest.Attributes = new Dictionary<string, string> { { "FilterPolicy", filterPolicy } };
        }

        var subscribeResponse = await _amazonSNSClient.SubscribeAsync(subscribeRequest);
        return subscribeResponse.SubscriptionArn;
    }
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Subscribe) in der *AWS SDK für .NET -API-Referenz*. 

------
#### [ C\$1\$1 ]

**SDK für C\$1\$1**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
//! Subscribe to an Amazon Simple Notification Service (Amazon SNS) topic with delivery to an email address.
/*!
  \param topicARN: An SNS topic Amazon Resource Name (ARN).
  \param emailAddress: An email address.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::subscribeEmail(const Aws::String &topicARN,
                                 const Aws::String &emailAddress,
                                 const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SubscribeRequest request;
    request.SetTopicArn(topicARN);
    request.SetProtocol("email");
    request.SetEndpoint(emailAddress);

    const Aws::SNS::Model::SubscribeOutcome outcome = snsClient.Subscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Subscribed successfully." << std::endl;
        std::cout << "Subscription ARN '" << outcome.GetResult().GetSubscriptionArn()
                  << "'." << std::endl;
    }
    else {
        std::cerr << "Error while subscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
Abonnieren Sie eine mobile Anwendung für ein Thema.  

```
//! Subscribe to an Amazon Simple Notification Service (Amazon SNS) topic with delivery to a mobile app.
/*!
  \param topicARN: The Amazon Resource Name (ARN) for an Amazon SNS topic.
  \param endpointARN: The ARN for a mobile app or device endpoint.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool
AwsDoc::SNS::subscribeApp(const Aws::String &topicARN,
                          const Aws::String &endpointARN,
                          const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SubscribeRequest request;
    request.SetTopicArn(topicARN);
    request.SetProtocol("application");
    request.SetEndpoint(endpointARN);

    const Aws::SNS::Model::SubscribeOutcome outcome = snsClient.Subscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Subscribed successfully." << std::endl;
        std::cout << "Subscription ARN '" << outcome.GetResult().GetSubscriptionArn()
                  << "'." << std::endl;
    }
    else {
        std::cerr << "Error while subscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
Abonnieren Sie eine Lambda-Funktion für ein Thema.  

```
//! Subscribe to an Amazon Simple Notification Service (Amazon SNS) topic with delivery to an AWS Lambda function.
/*!
  \param topicARN: The Amazon Resource Name (ARN) for an Amazon SNS topic.
  \param lambdaFunctionARN: The ARN for an AWS Lambda function.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::subscribeLambda(const Aws::String &topicARN,
                                  const Aws::String &lambdaFunctionARN,
                                  const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SubscribeRequest request;
    request.SetTopicArn(topicARN);
    request.SetProtocol("lambda");
    request.SetEndpoint(lambdaFunctionARN);

    const Aws::SNS::Model::SubscribeOutcome outcome = snsClient.Subscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Subscribed successfully." << std::endl;
        std::cout << "Subscription ARN '" << outcome.GetResult().GetSubscriptionArn()
                  << "'." << std::endl;
    }
    else {
        std::cerr << "Error while subscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
Abonnieren Sie eine SQS-Warteschlange für ein Thema.  

```
        Aws::Client::ClientConfiguration clientConfig;
        // Optional: Set to the AWS Region (overrides config file).
        // clientConfig.region = "us-east-1";

    Aws::SNS::SNSClient snsClient(clientConfiguration);

            Aws::SNS::Model::SubscribeRequest request;
            request.SetTopicArn(topicARN);
            request.SetProtocol("sqs");
            request.SetEndpoint(queueARN);

            Aws::SNS::Model::SubscribeOutcome outcome = snsClient.Subscribe(request);

            if (outcome.IsSuccess()) {
                Aws::String subscriptionARN = outcome.GetResult().GetSubscriptionArn();
                std::cout << "The queue '" << queueName
                          << "' has been subscribed to the topic '"
                          << "'" << topicName << "'" << std::endl;
                std::cout << "with the subscription ARN '" << subscriptionARN << "."
                          << std::endl;
                subscriptionARNS.push_back(subscriptionARN);
            }
            else {
                std::cerr << "Error with TopicsAndQueues::Subscribe. "
                          << outcome.GetError().GetMessage()
                          << std::endl;

                cleanUp(topicARN,
                        queueURLS,
                        subscriptionARNS,
                        snsClient,
                        sqsClient);

                return false;
            }
```
Abonnieren Sie ein Thema mit einem Filter.  

```
        static const Aws::String TONE_ATTRIBUTE("tone");
        static const Aws::Vector<Aws::String> TONES = {"cheerful", "funny", "serious",
                                                       "sincere"};

        Aws::Client::ClientConfiguration clientConfig;
        // Optional: Set to the AWS Region (overrides config file).
        // clientConfig.region = "us-east-1";

    Aws::SNS::SNSClient snsClient(clientConfiguration);

            Aws::SNS::Model::SubscribeRequest request;
            request.SetTopicArn(topicARN);
            request.SetProtocol("sqs");
            request.SetEndpoint(queueARN);
            if (isFifoTopic) {
                if (first) {
                    std::cout << "Subscriptions to a FIFO topic can have filters."
                              << std::endl;
                    std::cout
                            << "If you add a filter to this subscription, then only the filtered messages "
                            << "will be received in the queue." << std::endl;
                    std::cout << "For information about message filtering, "
                              << "see https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html"
                              << std::endl;
                    std::cout << "For this example, you can filter messages by a \""
                              << TONE_ATTRIBUTE << "\" attribute." << std::endl;
                }

                std::ostringstream ostringstream;
                ostringstream << "Filter messages for \"" << queueName
                              << "\"'s subscription to the topic \""
                              << topicName << "\"?  (y/n)";

                // Add filter if user answers yes.
                if (askYesNoQuestion(ostringstream.str())) {
                    Aws::String jsonPolicy = getFilterPolicyFromUser();
                    if (!jsonPolicy.empty()) {
                        filteringMessages = true;

                        std::cout << "This is the filter policy for this subscription."
                                  << std::endl;
                        std::cout << jsonPolicy << std::endl;

                        request.AddAttributes("FilterPolicy", jsonPolicy);
                    }
                    else {
                        std::cout
                                << "Because you did not select any attributes, no filter "
                                << "will be added to this subscription." << std::endl;
                    }
                }
            }  // if (isFifoTopic)
            Aws::SNS::Model::SubscribeOutcome outcome = snsClient.Subscribe(request);

            if (outcome.IsSuccess()) {
                Aws::String subscriptionARN = outcome.GetResult().GetSubscriptionArn();
                std::cout << "The queue '" << queueName
                          << "' has been subscribed to the topic '"
                          << "'" << topicName << "'" << std::endl;
                std::cout << "with the subscription ARN '" << subscriptionARN << "."
                          << std::endl;
                subscriptionARNS.push_back(subscriptionARN);
            }
            else {
                std::cerr << "Error with TopicsAndQueues::Subscribe. "
                          << outcome.GetError().GetMessage()
                          << std::endl;

                cleanUp(topicARN,
                        queueURLS,
                        subscriptionARNS,
                        snsClient,
                        sqsClient);

                return false;
            }

//! Routine that lets the user select attributes for a subscription filter policy.
/*!
 \sa getFilterPolicyFromUser()
 \return Aws::String: The filter policy as JSON.
 */
Aws::String AwsDoc::TopicsAndQueues::getFilterPolicyFromUser() {
    std::cout
            << "You can filter messages by one or more of the following \""
            << TONE_ATTRIBUTE << "\" attributes." << std::endl;

    std::vector<Aws::String> filterSelections;
    int selection;
    do {
        for (size_t j = 0; j < TONES.size(); ++j) {
            std::cout << "  " << (j + 1) << ". " << TONES[j]
                      << std::endl;
        }
        selection = askQuestionForIntRange(
                "Enter a number (or enter zero to stop adding more). ",
                0, static_cast<int>(TONES.size()));

        if (selection != 0) {
            const Aws::String &selectedTone(TONES[selection - 1]);
            // Add the tone to the selection if it is not already added.
            if (std::find(filterSelections.begin(),
                          filterSelections.end(),
                          selectedTone)
                == filterSelections.end()) {
                filterSelections.push_back(selectedTone);
            }
        }
    } while (selection != 0);

    Aws::String result;
    if (!filterSelections.empty()) {
        std::ostringstream jsonPolicyStream;
        jsonPolicyStream << "{ \"" << TONE_ATTRIBUTE << "\": [";


        for (size_t j = 0; j < filterSelections.size(); ++j) {
            jsonPolicyStream << "\"" << filterSelections[j] << "\"";
            if (j < filterSelections.size() - 1) {
                jsonPolicyStream << ",";
            }
        }
        jsonPolicyStream << "] }";

        result = jsonPolicyStream.str();
    }

    return result;
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Subscribe) in der *AWS SDK für C\$1\$1 -API-Referenz*. 

------
#### [ CLI ]

**AWS CLI**  
**So abonnieren Sie ein Thema**  
Der folgende `subscribe`-Befehl abonniert das angegebene Thema mit eine E-Mail-Adresse.  

```
aws sns subscribe \
    --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \
    --protocol email \
    --notification-endpoint my-email@example.com
```
Ausgabe:  

```
{
    "SubscriptionArn": "pending confirmation"
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/subscribe.html) in der *AWS CLI -Befehlsreferenz*. 

------
#### [ Go ]

**SDK für Go V2**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/topics_and_queues#code-examples) einrichten und ausführen. 
Abonnieren Sie eine Warteschlange für ein Thema mit optionalen Filtern.  

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/sns"
	"github.com/aws/aws-sdk-go-v2/service/sns/types"
)

// SnsActions encapsulates the Amazon Simple Notification Service (Amazon SNS) actions
// used in the examples.
type SnsActions struct {
	SnsClient *sns.Client
}



// SubscribeQueue subscribes an Amazon Simple Queue Service (Amazon SQS) queue to an
// Amazon SNS topic. When filterMap is not nil, it is used to specify a filter policy
// so that messages are only sent to the queue when the message has the specified attributes.
func (actor SnsActions) SubscribeQueue(ctx context.Context, topicArn string, queueArn string, filterMap map[string][]string) (string, error) {
	var subscriptionArn string
	var attributes map[string]string
	if filterMap != nil {
		filterBytes, err := json.Marshal(filterMap)
		if err != nil {
			log.Printf("Couldn't create filter policy, here's why: %v\n", err)
			return "", err
		}
		attributes = map[string]string{"FilterPolicy": string(filterBytes)}
	}
	output, err := actor.SnsClient.Subscribe(ctx, &sns.SubscribeInput{
		Protocol:              aws.String("sqs"),
		TopicArn:              aws.String(topicArn),
		Attributes:            attributes,
		Endpoint:              aws.String(queueArn),
		ReturnSubscriptionArn: true,
	})
	if err != nil {
		log.Printf("Couldn't susbscribe queue %v to topic %v. Here's why: %v\n",
			queueArn, topicArn, err)
	} else {
		subscriptionArn = *output.SubscriptionArn
	}

	return subscriptionArn, err
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/sns#Client.Subscribe) in der *AWS SDK für Go -API-Referenz*. 

------
#### [ Java ]

**SDK für Java 2.x**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse 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 SubscribeEmail {
    public static void main(String[] args) {
        final String usage = """
                Usage:     <topicArn> <email>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   email - The email address to use.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String email = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        subEmail(snsClient, topicArn, email);
        snsClient.close();
    }

    public static void subEmail(SnsClient snsClient, String topicArn, String email) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("email")
                    .endpoint(email)
                    .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);
        }
    }
}
```
Abonnieren Sie einen HTTP-Endpunkt 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 SubscribeHTTPS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicArn> <url>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   url - The HTTPS endpoint that you want to receive notifications.
                """;

        if (args.length < 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String url = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        subHTTPS(snsClient, topicArn, url);
        snsClient.close();
    }

    public static void subHTTPS(SnsClient snsClient, String topicArn, String url) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("https")
                    .endpoint(url)
                    .returnSubscriptionArn(true)
                    .topicArn(topicArn)
                    .build();

            SubscribeResponse result = snsClient.subscribe(request);
            System.out.println("Subscription ARN is " + result.subscriptionArn() + "\n\n Status is "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Abonnieren Sie eine Lambda-Funktion 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 SubscribeLambda {

    public static void main(String[] args) {

        final String usage = """

                Usage:    <topicArn> <lambdaArn>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   lambdaArn - The ARN of an AWS Lambda function.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String lambdaArn = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String arnValue = subLambda(snsClient, topicArn, lambdaArn);
        System.out.println("Subscription ARN: " + arnValue);
        snsClient.close();
    }

    public static String subLambda(SnsClient snsClient, String topicArn, String lambdaArn) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("lambda")
                    .endpoint(lambdaArn)
                    .returnSubscriptionArn(true)
                    .topicArn(topicArn)
                    .build();

            SubscribeResponse result = snsClient.subscribe(request);
            return result.subscriptionArn();

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Subscribe) in der *AWS SDK for Java 2.x -API-Referenz*. 

------
#### [ JavaScript ]

**SDK für JavaScript (v3)**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples) einrichten und ausführen. 
Erstellen Sie den Client in einem separaten Modul und exportieren Sie ihn.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importieren Sie das SDK- und Client-Module und rufen Sie die API auf.  

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic for which you wish to confirm a subscription.
 * @param {string} emailAddress - The email address that is subscribed to the topic.
 */
export const subscribeEmail = async (
  topicArn = "TOPIC_ARN",
  emailAddress = "usern@me.com",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "email",
      TopicArn: topicArn,
      Endpoint: emailAddress,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
};
```
Abonnieren Sie eine mobile Anwendung für ein Thema.  

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to.
 * @param {string} endpoint - The Endpoint ARN of an application. This endpoint is created
 *                            when an application registers for notifications.
 */
export const subscribeApp = async (
  topicArn = "TOPIC_ARN",
  endpoint = "ENDPOINT",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "application",
      TopicArn: topicArn,
      Endpoint: endpoint,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
  return response;
};
```
Abonnieren Sie eine Lambda-Funktion für ein Thema.  

```
import { SubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to.
 * @param {string} endpoint - The Endpoint ARN of and AWS Lambda function.
 */
export const subscribeLambda = async (
  topicArn = "TOPIC_ARN",
  endpoint = "ENDPOINT",
) => {
  const response = await snsClient.send(
    new SubscribeCommand({
      Protocol: "lambda",
      TopicArn: topicArn,
      Endpoint: endpoint,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'pending confirmation'
  // }
  return response;
};
```
Abonnieren Sie eine SQS-Warteschlange für ein Thema.  

```
import { SubscribeCommand, SNSClient } from "@aws-sdk/client-sns";

const client = new SNSClient({});

export const subscribeQueue = async (
  topicArn = "TOPIC_ARN",
  queueArn = "QUEUE_ARN",
) => {
  const command = new SubscribeCommand({
    TopicArn: topicArn,
    Protocol: "sqs",
    Endpoint: queueArn,
  });

  const response = await client.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '931e13d9-5e2b-543f-8781-4e9e494c5ff2',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:subscribe-queue-test-430895:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```
Abonnieren Sie ein Thema mit einem Filter.  

```
import { SubscribeCommand, SNSClient } from "@aws-sdk/client-sns";

const client = new SNSClient({});

export const subscribeQueueFiltered = async (
  topicArn = "TOPIC_ARN",
  queueArn = "QUEUE_ARN",
) => {
  const command = new SubscribeCommand({
    TopicArn: topicArn,
    Protocol: "sqs",
    Endpoint: queueArn,
    Attributes: {
      // This subscription will only receive messages with the 'event' attribute set to 'order_placed'.
      FilterPolicyScope: "MessageAttributes",
      FilterPolicy: JSON.stringify({
        event: ["order_placed"],
      }),
    },
  });

  const response = await client.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '931e13d9-5e2b-543f-8781-4e9e494c5ff2',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   SubscriptionArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:subscribe-queue-test-430895:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```
+  Weitere Informationen finden Sie im [AWS SDK für JavaScript -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-subscribing-email). 
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SubscribeCommand) in der *AWS SDK für JavaScript -API-Referenz*. 

------
#### [ Kotlin ]

**SDK für Kotlin**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
suspend fun subEmail(
    topicArnVal: String,
    email: String,
): String {
    val request =
        SubscribeRequest {
            protocol = "email"
            endpoint = email
            returnSubscriptionArn = true
            topicArn = topicArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.subscribe(request)
        return result.subscriptionArn.toString()
    }
}
```
Abonnieren Sie eine Lambda-Funktion für ein Thema.  

```
suspend fun subLambda(
    topicArnVal: String?,
    lambdaArn: String?,
) {
    val request =
        SubscribeRequest {
            protocol = "lambda"
            endpoint = lambdaArn
            returnSubscriptionArn = true
            topicArn = topicArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.subscribe(request)
        println(" The subscription Arn is ${result.subscriptionArn}")
    }
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://sdk.amazonaws.com/kotlin/api/latest/index.html) in der *API-Referenz zum AWS  SDK für Kotlin*. 

------
#### [ PHP ]

**SDK für PHP**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Prepares to subscribe an endpoint by sending the endpoint a confirmation message.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$protocol = 'email';
$endpoint = 'sample@example.com';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
Abonnieren Sie einen HTTP-Endpunkt für ein Thema.  

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Prepares to subscribe an endpoint by sending the endpoint a confirmation message.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$protocol = 'https';
$endpoint = 'https://';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->subscribe([
        'Protocol' => $protocol,
        'Endpoint' => $endpoint,
        'ReturnSubscriptionArn' => true,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Subscribe) in der *AWS SDK für PHP -API-Referenz*. 

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def subscribe(topic, protocol, endpoint):
        """
        Subscribes an endpoint to the topic. Some endpoint types, such as email,
        must be confirmed before their subscriptions are active. When a subscription
        is not confirmed, its Amazon Resource Number (ARN) is set to
        'PendingConfirmation'.

        :param topic: The topic to subscribe to.
        :param protocol: The protocol of the endpoint, such as 'sms' or 'email'.
        :param endpoint: The endpoint that receives messages, such as a phone number
                         (in E.164 format) for SMS messages, or an email address for
                         email messages.
        :return: The newly added subscription.
        """
        try:
            subscription = topic.subscribe(
                Protocol=protocol, Endpoint=endpoint, ReturnSubscriptionArn=True
            )
            logger.info("Subscribed %s %s to topic %s.", protocol, endpoint, topic.arn)
        except ClientError:
            logger.exception(
                "Couldn't subscribe %s %s to topic %s.", protocol, endpoint, topic.arn
            )
            raise
        else:
            return subscription
```
Abonnieren Sie eine Warteschlange für ein Thema mit optionalen Filtern.  

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def subscribe_queue_to_topic(
        self, 
        topic_arn: str, 
        queue_arn: str, 
        filter_policy: Optional[str] = None
    ) -> str:
        """
        Subscribe an SQS queue to an SNS topic.

        :param topic_arn: The ARN of the SNS topic.
        :param queue_arn: The ARN of the SQS queue.
        :param filter_policy: Optional JSON filter policy for message filtering.
        :return: The ARN of the subscription.
        :raises ClientError: If the subscription fails.
        """
        try:
            attributes = {}
            if filter_policy:
                attributes['FilterPolicy'] = filter_policy

            response = self.sns_client.subscribe(
                TopicArn=topic_arn,
                Protocol='sqs',
                Endpoint=queue_arn,
                Attributes=attributes
            )

            subscription_arn = response['SubscriptionArn']
            logger.info(f"Subscribed queue {queue_arn} to topic {topic_arn}")
            return subscription_arn

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            logger.error(f"Error subscribing queue to topic: {error_code} - {e}")
            raise
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Subscribe) in der *API-Referenz zu AWS  SDK für Python (Boto3)*. 

------
#### [ Ruby ]

**SDK für Ruby**  
 Es gibt noch mehr GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
require 'aws-sdk-sns'
require 'logger'

# Represents a service for creating subscriptions in Amazon Simple Notification Service (SNS)
class SubscriptionService
  # Initializes the SubscriptionService with an SNS client
  #
  # @param sns_client [Aws::SNS::Client] The SNS client
  def initialize(sns_client)
    @sns_client = sns_client
    @logger = Logger.new($stdout)
  end

  # Attempts to create a subscription to a topic
  #
  # @param topic_arn [String] The ARN of the SNS topic
  # @param protocol [String] The subscription protocol (e.g., email)
  # @param endpoint [String] The endpoint that receives the notifications (email address)
  # @return [Boolean] true if subscription was successfully created, false otherwise
  def create_subscription(topic_arn, protocol, endpoint)
    @sns_client.subscribe(topic_arn: topic_arn, protocol: protocol, endpoint: endpoint)
    @logger.info('Subscription created successfully.')
    true
  rescue Aws::SNS::Errors::ServiceError => e
    @logger.error("Error while creating the subscription: #{e.message}")
    false
  end
end

# Main execution if the script is run directly
if $PROGRAM_NAME == __FILE__
  protocol = 'email'
  endpoint = 'EMAIL_ADDRESS' # Should be replaced with a real email address
  topic_arn = 'TOPIC_ARN'    # Should be replaced with a real topic ARN

  sns_client = Aws::SNS::Client.new
  subscription_service = SubscriptionService.new(sns_client)

  @logger.info('Creating the subscription.')
  unless subscription_service.create_subscription(topic_arn, protocol, endpoint)
    @logger.error('Subscription creation failed. Stopping program.')
    exit 1
  end
end
```
+  Weitere Informationen finden Sie im [AWS SDK für Ruby -Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/sns-example-create-subscription.html). 
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/goto/SdkForRubyV3/sns-2010-03-31/Subscribe) in der *AWS SDK für Ruby -API-Referenz*. 

------
#### [ Rust ]

**SDK für Rust**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
async fn subscribe_and_publish(
    client: &Client,
    topic_arn: &str,
    email_address: &str,
) -> Result<(), Error> {
    println!("Receiving on topic with ARN: `{}`", topic_arn);

    let rsp = client
        .subscribe()
        .topic_arn(topic_arn)
        .protocol("email")
        .endpoint(email_address)
        .send()
        .await?;

    println!("Added a subscription: {:?}", rsp);

    let rsp = client
        .publish()
        .topic_arn(topic_arn)
        .message("hello sns!")
        .send()
        .await?;

    println!("Published message: {:?}", rsp);

    Ok(())
}
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.rs/aws-sdk-sns/latest/aws_sdk_sns/client/struct.Client.html#method.subscribe) in der *API-Referenz zum AWS  SDK für Rust*. 

------
#### [ SAP ABAP ]

**SDK für SAP ABAP**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
    TRY.
        oo_result = lo_sns->subscribe(                      "oo_result is returned for testing purposes."
                iv_topicarn = iv_topic_arn
                iv_protocol = 'email'
                iv_endpoint = iv_email_address
                iv_returnsubscriptionarn = abap_true ).
        MESSAGE 'Email address subscribed to SNS topic.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Topic does not exist.' TYPE 'E'.
      CATCH /aws1/cx_snssubscriptionlmte00.
        MESSAGE 'Unable to create subscriptions. You have reached the maximum number of subscriptions allowed.' TYPE 'E'.
    ENDTRY.
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) in der *API-Referenz zum AWS SDK für SAP ABAP*. 

------
#### [ Swift ]

**SDK für Swift**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples) einrichten und ausführen. 
Abonnieren Sie eine E-Mail-Adresse für ein Thema.  

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        let output = try await snsClient.subscribe(
            input: SubscribeInput(
                endpoint: email,
                protocol: "email",
                returnSubscriptionArn: true,
                topicArn: arn
            )
        )

        guard let subscriptionArn = output.subscriptionArn else {
            print("No subscription ARN received from Amazon SNS.")
            return
        }
        
        print("Subscription \(subscriptionArn) created.")
```
Abonnieren Sie eine Telefonnummer für ein Thema, um Benachrichtigungen per SMS zu erhalten.  

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        let output = try await snsClient.subscribe(
            input: SubscribeInput(
                endpoint: phone,
                protocol: "sms",
                returnSubscriptionArn: true,
                topicArn: arn
            )
        )

        guard let subscriptionArn = output.subscriptionArn else {
            print("No subscription ARN received from Amazon SNS.")
            return
        }
        
        print("Subscription \(subscriptionArn) created.")
```
+  Weitere API-Informationen finden Sie unter [Subscribe](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/subscribe(input:)) in der *API-Referenz zum AWS -SDK für Swift*. 

------