Connector für Twilio Benachrichtigungen - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

Connector für Twilio Benachrichtigungen

Warnung

Dieser Konnektor wurde in dieverlängerte Lebensmuster, undAWS IoT Greengrassveröffentlicht keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Fehlerbehebungen bieten. Weitere Informationen finden Sie unter AWS IoT Greengrass Version 1Wartungspolitik.

Twilio-BenachrichtigungenAnschlussführt automatisierte Telefonate oder sendet Textnachrichten über Twilio. Mit diesem Konnektor können Sie Benachrichtigungen als Reaktion auf Ereignisse in der Greengrass-Gruppe senden. Bei Telefonaten kann der Konnektor eine Sprachnachricht an den Empfänger weiterleiten.

Dieser Konnektor empfängt Twilio-Nachrichteninformationen zu einem MQTT-Thema und löst dann eine Twilio-Benachrichtigung aus.

Anmerkung

Ein Tutorial, das die Verwendung des Konnektors für Twilio Benachrichtigungen zeigt, finden Sie unterErste Schritte mit Greengrass-Konnektoren (Konsole)oderErste Schritte mit Greengrass-Konnektoren (CLI).

Dieser Konnektor hat die folgenden Versionen.

Version

ARN

5

arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/5

4

arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4

3

arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/3

2

arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/2

1

arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/1

Informationen über Versionsänderungen finden Sie im Änderungsprotokoll.

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

Version 4 - 5
  • AWS IoT GreengrassCore-Software v1.9.3 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie in beschriebenSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass..

  • PythonVersion 3.7 oder 3.8 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • Eine Twilio-Konto-SID, ein Authent-Token und eine Twilio-aktivierte Telefonnummer. Nachdem Sie ein Twilio-Projekt erstellt haben, stehen diese Werte im Projekt-Dashboard zur Verfügung.

    Anmerkung

    Sie können ein Twilio-Testkonto verwenden. Wenn Sie ein Testkonto verwenden, müssen Sie Telefonnummern, die nicht von Twilio stammen, zu einer Liste verifizierter Telefonnummern hinzufügen. Weitere Informationen finden Sie unterWie Sie mit Ihrem kostenlosen Twilio-Testkonto arbeiten können.

  • Ein Texttyp, der in AWS Secrets Manager geheim ist und das Twilio-Authent-Token speichert. Weitere Informationen finden Sie unterErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

    Anmerkung

    Um das Secret in der Secrets Manager Manager-Konsole zu erstellen, geben Sie Ihr Token auf derNur-Text-Registerkarten. Verwenden Sie keine Anführungszeichen oder andere Formatierungen. Geben Sie in der API das Token als Wert für dasSecretStringEigentum.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager Manager-Geheimnis verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Versions 1 - 3
  • AWS IoT GreengrassCore-Software v1.7 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie in beschriebenSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass..

  • PythonVersion 2.7 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

  • Eine Twilio-Konto-SID, ein Authent-Token und eine Twilio-aktivierte Telefonnummer. Nachdem Sie ein Twilio-Projekt erstellt haben, stehen diese Werte im Projekt-Dashboard zur Verfügung.

    Anmerkung

    Sie können ein Twilio-Testkonto verwenden. Wenn Sie ein Testkonto verwenden, müssen Sie Telefonnummern, die nicht von Twilio stammen, zu einer Liste verifizierter Telefonnummern hinzufügen. Weitere Informationen finden Sie unterWie Sie mit Ihrem kostenlosen Twilio-Testkonto arbeiten können.

  • Ein Texttyp, der in AWS Secrets Manager geheim ist und das Twilio-Authent-Token speichert. Weitere Informationen finden Sie unterErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

    Anmerkung

    Um das Secret in der Secrets Manager Manager-Konsole zu erstellen, geben Sie Ihr Token auf derNur-Text-Registerkarten. Verwenden Sie keine Anführungszeichen oder andere Formatierungen. Geben Sie in der API das Token als Wert für dasSecretStringEigentum.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager Manager-Geheimnis verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Connector-Parameter

Dieser Konnektor stellt die folgenden Parameter bereit.

Version 5
TWILIO_ACCOUNT_SID

Die SID des Twilio-Kontos, mit der die Twilio-API aufgerufen wird.

Anzeigename in der -KonsoleAWS IoT-Konsole Twilililililio

Erforderlich:.true

Typ: string

Gülmuster:.+

TwilioAuthTokenSecretArn

Der ARN des Secrets Manager Manager-Secrets, das das Twilio Authent-Token speichert.

Anmerkung

Dies wird verwendet, um auf den Wert des lokalen Secrets auf dem Core zuzugreifen.

Anzeigename in der -KonsoleAWS IoT-Konsole ARN of Twilio auth token secret (ARN)

Erforderlich:.true

Typ: string

Gülmuster:arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

TwilioAuthTokenSecretArn-ResourceId

Die ID der geheimen Ressource in der Greengrass-Gruppe, die auf das Secret für das Twilio-Authent-Token verweist.

Anzeigename in der -KonsoleAWS IoT-Konsole Twilio-Authent-Token-Ressource

Erforderlich:.true

Typ: string

Gülmuster:.+

DefaultFromPhoneNumber

Die standardmäßige Twilio-aktivierte Telefonnummer, die Twilio zum Senden von Nachrichten verwendet. Twilio verwendet diese Nummer, um die Textnachricht oder den Anruf zu initiieren.

  • Wenn Sie keine Standard-Rufnummer konfigurieren, müssen Sie eine Rufnummer in der Eigenschaft from_number im Textkörper der Eingabemeldung angeben.

  • Wenn Sie eine Standard-Rufnummer konfigurieren, können Sie die Standardeinstellung optional überschreiben, indem Sie die Eigenschaft from_number im Textkörper der Eingabemeldung angeben.

Anzeigename in der -KonsoleAWS IoT-Konsole Default from phone phone number

Erforderlich:.false

Typ: string

Gülmuster:^$|\+[0-9]+

IsolationMode

Der Containerisierungsmodus für diesen Konnektor. Der Standardwert ist GreengrassContainer. Hierbei wird der Konnektor in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass-Containers ausgeführt.

Anmerkung

Die Standardeinstellung für Containerisierung für die Gruppe gilt nicht für Konnektoren.

Anzeigename in der -KonsoleAWS IoT-Konsole Containerisolierungsmodus

Erforderlich:.false

Typ: string

Gültige Werte: GreengrassContainer oder NoContainer.

Gülmuster:^NoContainer$|^GreengrassContainer$

Version 1 - 4
TWILIO_ACCOUNT_SID

Die SID des Twilio-Kontos, mit der die Twilio-API aufgerufen wird.

Anzeigename in der -KonsoleAWS IoT-Konsole Twilililililio

Erforderlich:.true

Typ: string

Gülmuster:.+

TwilioAuthTokenSecretArn

Der ARN des Secrets Manager Manager-Secrets, das das Twilio Authent-Token speichert.

Anmerkung

Dies wird verwendet, um auf den Wert des lokalen Secrets auf dem Core zuzugreifen.

Anzeigename in derAWS IoT-Konsole ARN of Twilio auth token secret (ARN)

Erforderlich:.true

Typ: string

Gülmuster:arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

TwilioAuthTokenSecretArn-ResourceId

Die ID der geheimen Ressource in der Greengrass-Gruppe, die auf das Secret für das Twilio-Authent-Token verweist.

Anzeigename in derAWS IoT-Konsole Twilio-Authent-Token-Ressource

Erforderlich:.true

Typ: string

Gülmuster:.+

DefaultFromPhoneNumber

Die standardmäßige Twilio-aktivierte Telefonnummer, die Twilio zum Senden von Nachrichten verwendet. Twilio verwendet diese Nummer, um die Textnachricht oder den Anruf zu initiieren.

  • Wenn Sie keine Standard-Rufnummer konfigurieren, müssen Sie eine Rufnummer in der Eigenschaft from_number im Textkörper der Eingabemeldung angeben.

  • Wenn Sie eine Standard-Rufnummer konfigurieren, können Sie die Standardeinstellung optional überschreiben, indem Sie die Eigenschaft from_number im Textkörper der Eingabemeldung angeben.

Anzeigename in der -KonsoleAWS IoT-Konsole Default from phone phone number

Erforderlich:.false

Typ: string

Gülmuster:^$|\+[0-9]+

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende -CLI-Beispiel-Befehl erstellt eineConnectorDefinitionmit einer Initialversion, die Konnektor für Twilio Benachrichtigungen enthält.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/5", "Parameters": { "TWILIO_ACCOUNT_SID": "abcd12345xyz", "TwilioAuthTokenSecretArn": "arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash", "TwilioAuthTokenSecretArn-ResourceId": "MyTwilioSecret", "DefaultFromPhoneNumber": "+19999999999", "IsolationMode" : "GreengrassContainer" } } ] }'

Tutorials, die Anleitung zum Hinzufügen des Konnektors für Twilio Benachrichtigungen zu einer Gruppe finden Sie unterErste Schritte mit Greengrass-Konnektoren (CLI)undErste Schritte mit Greengrass-Konnektoren (Konsole).

Eingabedaten

Dieser Konnektor akzeptiert Twilio-Nachrichteninformationen zu zwei MQTT-Themen. Eingabemeldungen müssen im JSON-Format vorliegen.

  • Textnachrichteninformationen zum Thema twilio/txt.

  • Telefonnachrichteninformationen zum Thema twilio/call.

Anmerkung

Die Nutzlast der Eingabemeldung kann eine Textnachricht (message) oder eine Sprachnachricht (voice_message_location) beinhalten, aber nicht beide.

Themenfilter: twilio/txt
Nachrichten-Eigenschaften
request

Informationen über die Twilio-Benachrichtigung.

Erforderlich:.true

Typ:object, das beinhaltet die folgenden Eigenschaften:

recipient

Der Nachrichtenempfänger. Nur ein Empfänger wird unterstützt.

Erforderlich:.true

Typ:object, das folgende Eigenschaften beinhaltet:

name

Der Name des Empfängers.

Erforderlich:.true

Typ: string

Gülmuster:.*

phone_number

Die Telefonnummer des Empfängers.

Erforderlich:.true

Typ: string

Gülmuster:\+[1-9]+

message

Der Textinhalt der Textnachricht. Zu diesem Thema werden nur Textnachrichten unterstützt. Für Sprachnachrichten verwenden Sie twilio/call.

Erforderlich:.true

Typ: string

Gülmuster:.+

from_number

Die Telefonnummer des Absenders. Twilio verwendet diese Telefonnummer, um die Nachricht zu senden. Diese Eigenschaft ist erforderlich, wenn der Parameter DefaultFromPhoneNumber nicht konfiguriert ist. Wenn DefaultFromPhoneNumber konfiguriert ist, können Sie diese Eigenschaft verwenden, um den Standard zu überschreiben.

Erforderlich:.false

Typ: string

Gülmuster:\+[1-9]+

retries

Die Anzahl der Wiederholungen Der Standardwert ist 0.

Erforderlich:.false

Typ: integer

id

Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen.

Erforderlich:.true

Typ: string

Gülmuster:.+

Beispieleingabe
{ "request": { "recipient": { "name": "Darla", "phone_number": "+12345000000", "message": "Hello from the edge" }, "from_number": "+19999999999", "retries": 3 }, "id": "request123" }
Themenfilter: twilio/call
Nachrichten-Eigenschaften
request

Informationen über die Twilio-Benachrichtigung.

Erforderlich:.true

Typ:object, das beinhaltet die folgenden Eigenschaften:

recipient

Der Nachrichtenempfänger. Nur ein Empfänger wird unterstützt.

Erforderlich:.true

Typ:object, das folgende Eigenschaften beinhaltet:

name

Der Name des Empfängers.

Erforderlich:.true

Typ: string

Gülmuster:.+

phone_number

Die Telefonnummer des Empfängers.

Erforderlich:.true

Typ: string

Gülmuster:\+[1-9]+

voice_message_location

Die URL des Audioinhalts für die Sprachnachricht. Diese muss im TwiML-Format vorliegen. Zu diesem Thema werden nur Sprachnachrichten unterstützt. Für Textnachrichten verwenden Sie twilio/txt.

Erforderlich:.true

Typ: string

Gülmuster:.+

from_number

Die Telefonnummer des Absenders. Twilio verwendet diese Telefonnummer, um die Nachricht zu senden. Diese Eigenschaft ist erforderlich, wenn der Parameter DefaultFromPhoneNumber nicht konfiguriert ist. Wenn DefaultFromPhoneNumber konfiguriert ist, können Sie diese Eigenschaft verwenden, um den Standard zu überschreiben.

Erforderlich:.false

Typ: string

Gülmuster:\+[1-9]+

retries

Die Anzahl der Wiederholungen Der Standardwert ist 0.

Erforderlich:.false

Typ: integer

id

Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen.

Erforderlich:.true

Typ: string

Gülmuster:.+

Beispieleingabe
{ "request": { "recipient": { "name": "Darla", "phone_number": "+12345000000", "voice_message_location": "https://some-public-TwiML" }, "from_number": "+19999999999", "retries": 3 }, "id": "request123" }

Ausgabedaten

Dieser Connector veröffentlicht Statusinformationen als Ausgabedaten im MQTT-Thema.

Themenfilter im Abonnement

twilio/message/status

Beispielausgabe: Herzlichen Glückwunsch
{ "response": { "status": "success", "payload": { "from_number": "+19999999999", "messages": { "message_status": "queued", "to_number": "+12345000000", "name": "Darla" } } }, "id": "request123" }
Beispielausgabe: Fehler
{ "response": { "status": "fail", "error_message": "Recipient name cannot be None", "error": "InvalidParameter", "payload": None } }, "id": "request123" }

Die Eigenschaft payload in der Ausgabe ist die Antwort der Twilio-API beim Senden der Nachricht. Wenn der Konnektor erkennt, dass die Eingabedaten ungültig sind (z. B. kein erforderliches Eingabefeld angegeben ist), gibt der Konnektor einen Fehler zurück und setzt den Wert auf None. Im Folgenden finden Sie Beispiele für Nutzlasten:

{ 'from_number':'+19999999999', 'messages': { 'name':'Darla', 'to_number':'+12345000000', 'message_status':'undelivered' } }
{ 'from_number':'+19999999999', 'messages': { 'name':'Darla', 'to_number':'+12345000000', 'message_status':'queued' } }

Nutzungsbeispiele

Führen Sie die folgenden allgemeinen Schritte aus, um eine Python 3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

Anmerkung

DieErste Schritte mit Greengrass-Konnektoren (Konsole)undErste Schritte mit Greengrass-Konnektoren (CLI)Themen enthalten end-to-end Schritte, die Einrichtung, Bereitstellung und das Testen des Konnektors für Twilio Benachrichtigungen zeigen.

  1. Stellen Sie sicher, dass Sie die Anforderungen für den Konnektor erfüllen.

  2. Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Konnektor sendet.

    Speichern Sie den Beispielcode als PY-Datei. Downloaden und entpacken Sie esAWS IoT GreengrassColio SDK für Python. Erstellen Sie dann ein ZIP-Paket, das die PY-Datei und den Ordner greengrasssdk auf Stammebene enthält. Dieses ZIP-Paket ist das Bereitstellungspaket, das Sie auf hochladenAWS Lambda.

    Nachdem Sie die Python 3.7-Lambda-Funktion erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

  3. Konfigurieren Sie Ihre Greengrass-Gruppe.

    1. Fügen Sie die Lambda-Funktion über ihren Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder"Pinned": truein der CLI).

    2. Fügen Sie die erforderliche Secret-Ressource hinzu und gewähren Sie Lesezugriff auf die Lambda-Funktion.

    3. Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.

    4. Fügen Sie Abonnements hinzu, die es dem Konnektor ermöglichen, Eingabedaten zu empfangen und Ausgabedaten zu unterstützten Themenfiltern zu senden.

      • Legen Sie die Lambda-Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemenfilter.

      • Legen Sie den Konnektor als Quelle und AWS IoT Core als Ziel fest und verwenden Sie einen unterstützten Ausgabethemenfilter. Sie verwenden dieses Abonnement zum Anzeigen von Statusmeldungen in derAWS IoTconsole.

  4. Stellen Sie die Gruppe bereit.

  5. In derAWS IoT-Konsole auf der -KonsoleTestdas Thema Ausgabedaten abonnieren, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt sofort nach der Bereitstellung der Gruppe mit dem Senden von Nachrichten.

    Wenn Sie mit dem Testen fertig sind, können Sie den Lambda-Lebenszyklus auf On-Demand (oder"Pinned": falsein der CLI) und stellen Sie die Gruppe bereit. Dadurch wird verhindert, dass die Funktion Nachrichten sendet.

Beispiel

Die folgende Lambda-Beispielfunktion sendet eine Eingabenachricht an den Konnektor. Dieses Beispiel löst eine Textnachricht aus.

import greengrasssdk import json iot_client = greengrasssdk.client('iot-data') TXT_INPUT_TOPIC = 'twilio/txt' CALL_INPUT_TOPIC = 'twilio/call' def publish_basic_message(): txt = { "request": { "recipient" : { "name": "Darla", "phone_number": "+12345000000", "message": 'Hello from the edge' }, "from_number" : "+19999999999" }, "id" : "request123" } print("Message To Publish: ", txt) client.publish(topic=TXT_INPUT_TOPIC, payload=json.dumps(txt)) publish_basic_message() def lambda_handler(event, context): return

Lizenzen

Der Konnektor für Twilio Benachrichtigungen enthält die folgende Drittanbieter-Software/Lizenz:

Dieser Connector wird unter demLizenzvereinbarung für die Greengrass Core-Software.

Änderungsprotokoll

In der folgenden Tabelle werden die wichtigen Änderungen in jeder Version des -Konnektors für beschrieben.

Version

Änderungen

5

Der Parameter IsolationMode wurde hinzugefügt, um den Containerisierungsmodus für den Konnektor zu konfigurieren.

4

Die Lambda-Laufzeit wurde auf Python 3.7 aktualisiert, wodurch sich die Laufzeitanforderung ändert.

3

Beheben, um übermäßige Protokollierung zu reduzieren.

2

Kleinere Fehlerbehebungen und Verbesserungen.

1

Erstversion.

Eine Greengrass-Gruppe kann nur eine Version des -Konnektors gleichzeitig enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter Aktualisieren von Konnektorversionen.

Weitere Informationen finden Sie auch unter