AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie verwende ich Webhooks, um Amazon-SNS-Nachrichten in Amazon Chime, Slack oder Microsoft Teams zu veröffentlichen?
Ich möchte Benachrichtigungen von Amazon Simple Notification Service (Amazon SNS)-Nachrichten an Amazon Chime, Slack oder Microsoft Teams senden.
Kurzbeschreibung
Du kannst Amazon SNS verwenden, um Benachrichtigungen an HTTP- oder HTTPS-Endpunkte zu senden, z. B. Webhook-URLs. Bestimmte Webhooks erwarten jedoch JSON-Schlüssel-Wert-Paare, die Amazon SNS nicht unterstützt, wenn das HTTP- oder HTTPS-Abonnements bestätigt wird.
Amazon-Chime-Webhooks erwarten beispielsweise eine JSON-Anfrage mit einer Nachrichtenzeichenfolge, die einem Content-Schlüssel entspricht. In ähnlicher Weise erwarten Slack- und Microsoft-Teams-Webhooks eine JSON-Anfrage mit einer Nachrichtenzeichenfolge, die einem Text-Schlüssel entspricht.
Verwende eine AWS Lambda-Funktion, um das JSON-Dokument eines Amazon SNS-Nachrichtentexts so umzuwandeln, dass der Webhook-Endpunkt die Verarbeitung durchführen kann.
Hinweis: Eine Liste der Schlüssel-Wert-Paare im JSON-Dokument eines Amazon SNS-Nachrichtentexts findest du im JSON-Format für die HTTP/HTTPS-Abonnementbestätigung.
Lösung
SNS-Thema erstellen
Wenn Sie dies noch nicht getan haben, erstellen Sie ein SNS-Thema mit einem eindeutigen Namen.
Eine Lambda-Funktion erstellen
Folge den Anweisungen, um eine Lambda-Funktion zu erstellen . Der Lambda-Funktionscode muss eine Logik enthalten, um die Benachrichtigungen des SNS-Themas an den Typ des Webhook-Endpunkts anzupassen, den du verwendest.
Beispiele findest du in den folgenden Python-Codefragmenten für Amazon Chime-, Slack- und Microsoft-Teams-Webhooks.
Beispiel für einen Python-Codeausschnitt für Amazon Chime
Amazon Chime-Webhooks erwarten eine JSON-Anfrage mit einer Nachrichtenzeichenfolge, die einem Inhaltsschlüssel entspricht. Weitere Informationen findest du unter Erstellen von Webhooks für Amazon Chime.
import urllib3import json http = urllib3.PoolManager() def lambda_handler(event, context): url = "https://hooks.chime.aws/incomingwebhooks/xxxxxxx" msg = {"Content": event["Records"][0]["Sns"]["Message"]} encoded_msg = json.dumps(msg).encode("utf-8") resp = http.request("POST", url, body=encoded_msg) print( { "message": event["Records"][0]["Sns"]["Message"], "status_code": resp.status, "response": resp.data, } )
Hinweis: Ersetze https://hooks.chime.aws/incomingwebhooks/xxxxxxx durch die Webhook-URL.
Beispiel für einen Python-Codeausschnitt für Slack
Slack-Webhooks erwarten eine JSON-Anfrage mit einer Nachrichtenzeichenfolge, die einem Text-Schlüssel entspricht. Du unterstützt auch die Anpassung von Nachrichten, um einen Benutzernamen und ein Symbol hinzuzufügen oder den Standardkanal des Webhooks zu überschreiben. Weitere Informationen findest du auf der Slack-Website unter Senden von Nachrichten mithilfe eingehender Webhooks.
import urllib3import json http = urllib3.PoolManager() def lambda_handler(event, context): url = "https://hooks.slack.com/services/xxxxxxx" msg = { "channel": "#CHANNEL_NAME", "username": "WEBHOOK_USERNAME", "text": event["Records"][0]["Sns"]["Message"], "icon_emoji": "", } encoded_msg = json.dumps(msg).encode("utf-8") resp = http.request("POST", url, body=encoded_msg) print( { "message": event["Records"][0]["Sns"]["Message"], "status_code": resp.status, "response": resp.data, } )
Hinweis: Ersetze https://hooks.slack.com/services/xxxxxxx durch deine Webhook-URL und #CHANNEL_NAME durch den Namen des Zielkanals.
Beispiel für einen Python-Codeausschnitt für Microsoft Teams
Microsoft Teams-Webhooks erwarten eine JSON-Anfrage mit einer Nachrichtenzeichenfolge, die einem Text-Schlüssel entspricht. Weitere Informationen findest du unter Erstellen und Senden von Nachrichten auf der Microsoft Teams-Website.
import urllib3import json http = urllib3.PoolManager() def lambda_handler(event, context): url = "https://outlook.office.com/webhook/xxxxxxx" msg = {"text": event["Records"][0]["Sns"]["Message"]} encoded_msg = json.dumps(msg).encode("utf-8") resp = http.request("POST", url, body=encoded_msg) print( { "message": event["Records"][0]["Sns"]["Message"], "status_code": resp.status, "response": resp.data, } )
Hinweis: Ersetze https://outlook.office.com/webhook/xxxxxxx durch die Webhook-URL.
Lambda-Funktion testen
Führe die folgenden Schritte aus:
- Wähle auf der Funktionsseite der Lambda-Konsole die Funktion.
- Öffne die Registerkarte Test. Gib in Ereignisname einen Namen ein.
- Wähle die Dropdown-Liste Vorlage und dann SNS-Themenbenachrichtigung aus.
- Wähle Speichern und dann Test.
Wenn der Testaufruf mit einem Statuscode „200“ erfolgreich ist, wurde die Amazon SNS-Benachrichtigung vom Webhook akzeptiert und an den Kanal übermittelt.
Wenn der Testaufruf mit einem Statuscode „4xx“ fehlschlägt, überprüfe, ob das Webhook-URL-Schlüssel-Wert-Paar korrekt ist und vom Ziel-Webhook akzeptiert wird.
Weitere Informationen findest du unter Aufrufen der Lambda-Funktion mithilfe des Code-Editor der Konsole.
Ein SNS-Thema hinzufügen und es mit der Lambda-Funktion abonnieren
Führe die folgenden Schritte aus:
- Wähle auf der Funktionsseite der Lambda-Konsole die Funktion.
- Wähle unter Funktionsübersicht die Option Trigger hinzufügen.
- Wähle die Dropdown-Liste Trigger-Konfiguration und dann SNS aus.
- Wähle als SNS-Thema das SNS-Thema aus, das du zuvor erstellt hast.
- Wähle Hinzufügen.
- Abonniere mit der Lambda-Funktion das SNS-Thema.
Nun, da du die Funktion mit dem SNS-Thema abonniert hast, werden zu dem Thema veröffentlichte Nachrichten an die Funktion und an den Webhook weitergeleitet.
Ähnliche Informationen
Überwachung von AWS-Services mithilfe von Amazon Q Developer in Chat-Anwendungen
- Themen
- Application Integration
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 5 Monaten
AWS OFFICIALAktualisiert vor 3 Monaten
