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 |
|
4 |
|
3 |
|
2 |
|
1 |
|
Informationen über Versionsänderungen finden Sie im Änderungsprotokoll.
Voraussetzungen
Dieser Konnektor hat die folgenden Anforderungen:
Connector-Parameter
Dieser Konnektor stellt die folgenden Parameter bereit.
Beispiel für das Erstellen eines Konnektors (AWS CLI)
Der folgende -CLI-Beispiel-Befehl erstellt eineConnectorDefinition
mit 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. WennDefaultFromPhoneNumber
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. WennDefaultFromPhoneNumber
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 aufNone
. 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.
Stellen Sie sicher, dass Sie die Anforderungen für den Konnektor erfüllen.
-
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.
-
Konfigurieren Sie Ihre Greengrass-Gruppe.
-
Fügen Sie die Lambda-Funktion über ihren Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder
"Pinned": true
in der CLI). -
Fügen Sie die erforderliche Secret-Ressource hinzu und gewähren Sie Lesezugriff auf die Lambda-Funktion.
-
Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.
-
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.
-
-
Stellen Sie die Gruppe bereit.
-
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": false
in 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:
twilio-python
/MIT
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 |
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.