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.
Erste Schritte mit Greengrass-Konnektoren (Konsole)
Diese Funktion ist verfügbar für diese FunktionAWS IoT GreengrassCore v1.7 und höher.
Dieses Tutorial zeigt, wie man die AWS Management Console verwendet, um mit Konnektoren zu arbeiten.
Verwenden Sie Konnektoren, um Ihren Entwicklungslebenszyklus zu beschleunigen. Konnektoren sind vorgefertigte, wiederverwendbare Module, die die Interaktion mit Services, Protokollen und Ressourcen erleichtern können. Sie können Ihnen helfen, die Geschäftslogik schneller auf Greengrass-Geräten zu implementieren. Weitere Informationen finden Sie unter Integrieren von Services und Protokollen mit Greengrass-Konnektoren.
In diesem Tutorial konfigurieren und stellen Sie denTwilio-BenachrichtigungenKonnektor. Der Konnektor empfängt Twilio-Nachrichteninformationen als Eingangsdaten und löst dann eine Twilio-SMS aus. Der Datenfluss ist in der folgenden Abbildung dargestellt.
Nach dem Konfigurieren des Konnektors erstellen Sie eine Lambda-Funktion und ein Abonnement.
Die Funktion wertet simulierte Daten eines Temperatursensors aus. Es veröffentlicht bedingt die Twilio-Nachrichteninformationen zu einem MQTT-Thema. Dies ist das Thema, dass der Konnektor abonniert hat.
Das Abonnement ermöglicht es der Funktion, zum Thema zu veröffentlichen, und dem Konnektor, die Daten vom Thema zu empfangen.
Der Twilio-Benachrichtigungs-Konnektor erfordert einen Twilio-Authentifizierungs-Token für die Interaktion mit der Twilio-API. Das Token ist ein Texttyp-Secret, das in AWS Secrets Manager erstellt und von einer Gruppenressource referenziert wird. Dies ermöglicht es AWS IoT Greengrass, eine lokale Kopie des Secrets auf dem Greengrass Core zu erstellen, wo es verschlüsselt und dem Konnektor zur Verfügung gestellt wird. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.
Das Tutorial enthält die folgenden allgemeinen Schritte:
Für dieses Tutorial benötigen Sie ungefähr 20 Minuten.
Voraussetzungen
Zum Durchführen dieses Tutorials benötigen Sie Folgendes:
-
Eine Greengrass-Gruppe und ein Greengrass-Core (v1.9.3 oder höher). Weitere Informationen zum Erstellen einer Greengrass-Gruppe und Greengrass Core finden Sie unter Erste Schritte mit AWS IoT Greengrass. Das Tutorial „Erste Schritte“ enthält auch die Schritte zur Installation der AWS IoT Greengrass-Core Software.
-
Python 3.7 auf dem AWS IoT Greengrass Core-Gerät.
-
AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie unterSecrets 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 abzurufen, die mitgreengrass-.
-
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
.
Schritt 1: Secrets Manager erstellen
In diesem Schritt verwenden Sie die AWS Secrets Manager-Console, um ein Texttyp-Secret für Ihren Twilio-Authent-Token zu erstellen.
-
Melden Sie sich an der AWS Secrets Manager-Konsole
an. Anmerkung
Weitere Informationen zu diesem Verfahren finden Sie unterSchritt 1: Erstellen und Speichern des Secrets inAWS Secrets ManagerimAWS Secrets ManagerBenutzerhandbuch.
-
Wählen Sie Store a new secret (Ein neues Secret speichern).
-
UnderSecret-Typ wählen, wählenOther type of secret (Andere Art von Secret).
-
UnderAngabe der Schlüssel/Wert-Paare, die für dieses Geheimnis gespeichert werden sollen), auf derNur-Text, geben Sie Ihren Twilio auth token ein. Entfernen Sie alle JSON-Formatierungen und geben Sie nur den Token-Wert ein.
-
Behalten Sieaws/secretsmanagerfür den Verschlüsselungscode ausgewählt und wählen Sie dannWeiter.
Anmerkung
Sie werden nicht von belastetAWS KMSwenn Sie die Standardeinstellung verwendenAWSverwalteter Schlüssel, den Secrets Manager in Ihrem Konto erstellt.
-
Geben Sie für Secret name (Secret-Name)
greengrass-TwilioAuthToken
ein und klicken Sie auf Next (Weiter).Anmerkung
Standardmäßig ermöglicht die Greengrass-ServicerolleAWS IoT Greengrassum den Wert von Secrets zu erhalten, deren Namen mit beginnengreengrass-. Weitere Informationen finden Sie unter Anforderungen für Secrets.
-
Dieses Tutorial erfordert keine Rotation. Wählen Sie also Disable automatic rotation (Automatische Rotation deaktivieren) und danachWeiter.
-
Prüfen Sie auf der Seite Review (Prüfen) Ihre Einstellungen und wählen Sie Store (Speichern).
Als nächstes erstellen Sie in Ihrer Greengrass-Gruppe eine geheime Ressource, die auf das Secret verweist.
Schritt 2: Hinzufügen einer geheimen Ressource zu einer Greengrass-Gruppe
In diesem Schritt fügen Sie eine geheime Ressource zur Greengrass-Gruppe hinzu. Diese Ressource ist eine Referenz auf das Secret, das Sie im vorherigen Schritt angelegt haben.
In derAWS IoTNavigationsbereich der -Konsole, unterVerwalten, erweitern SieGreengrass-Geräteund wählen Sie dannGruppen (V1).
-
Wählen Sie die Gruppe, zu der Sie die geheime Ressource hinzufügen möchten.
-
Wählen Sie auf der Gruppenkonfigurationsseite die OptionRessourcenund scrollen Sie dann nach unten zur RegisterkarteSecretsAbschnitts erstellt. DieSecretszeigt die geheimen Ressourcen an, die zur Gruppe gehören. In diesem Abschnitt können Sie geheime Ressourcen hinzufügen, bearbeiten und entfernen.
Anmerkung
Alternativ können Sie mit der Konsole eine geheime und geheime Ressource erstellen, wenn Sie einen Connector oder eine Lambda-Funktion konfigurieren. Hierfür können Sie den -Konnektoren verwendenKonfigurationsparameter-Seite oder die Lambda-FunktionRessourcenangezeigten.
-
Klicken Sie aufAddimSecretsAbschnitts erstellt.
-
Auf derHinzufügen einer geheimen RessourceSeite, geben Sie
MyTwilioAuthToken
fürRessourcenname. -
Für denSecret, wählengreengrass-TwilioAuthToken.
-
In derBeschriftungen auswählen (optional)-Abschnitt erstellt AWSCURRENT Staging-Label stellt die neueste Version des Secrets dar. Dieses Label ist immer in einer geheimen Ressource enthalten.
Anmerkung
Dieses Tutorial erfordert das AWSCURRENT Nur label (Bezeichnung) Sie können optional Bezeichnungen hinzufügen, die von Ihrer Lambda-Funktion oder vom -Konnektor benötigt werden.
-
Wählen Sie Add resource (Ressource hinzufügen) aus.
Schritt 3: Hinzufügen eines Konnektors zur Greengrass-Gruppe
In diesem Schritt konfigurieren Sie die Parameter für denTwilio-Konnektor fürund fügen Sie es der Gruppe hinzu.
-
Wählen Sie auf der Gruppenkonfigurationsseite die Option Connectors (Konnektoren), und wählen Sie dann Add a connector (Konnektor hinzufügen).
-
Auf derHinzufügen eines Connector-Seite wählen SieTwilio-Benachrichtigungen.
-
Wählen Sie die -Version aus.
-
In derKonfigurationAbschnitts erstellt:
-
FürTwilio auth token-Ressource), geben Sie die Ressource ein, die Sie im vorherigen Schritt erstellt haben.
Anmerkung
Wenn Sie die Ressource eingeben, wirdARN des Twilio-auth Token-Secrets-Eigenschaft ist für Sie eingetragen.
-
Geben Sie unter Default from phone number (Standard Telefonnummer) Ihre Twilio-aktivierte Telefonnummer ein.
-
Geben Sie für Twilio account SID (Twilio-Konto-SID) Ihre Twilio-Konto-SID ein.
-
-
Wählen Sie Add resource (Ressource hinzufügen) aus.
Schritt 4: Bereitstellungspaket für die Lambda-Funktion erstellen
Zum Erstellen einer Lambda-Funktion müssen Sie zunächst eine Lambda-Funktion erstellenBereitstellungspaketdas enthält den Funktionscode und Abhängigkeiten. Greengrass Lambda-Funktionen erfordern dieAWS IoT GreengrassCore-SDKfür Aufgaben wie die Kommunikation mit MQTT-Nachrichten in der Kernumgebung und den Zugriff auf lokale Geheimnisse. In diesem Tutorial wird eine Python-Funktion erstellt, sodass Sie die Python-Version des SDK im Bereitstellungspaket verwenden.
-
AusAWS IoT GreengrassCore-SDKDownloads-Seite, laden Sie dieAWS IoT GreengrassCore SDK für Python auf Ihrem Computer.
-
Entpacken Sie das heruntergeladene Paket, um das SDK zu erhalten. Das SDK ist der
greengrasssdk
-Ordner. -
Speichern Sie die folgende Pythoncode-Funktion in einer lokalen Datei namens
temp_monitor.py
.import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
-
Packen Sie die folgenden Elemente in einer ZIP-Datei mit dem Namen
temp_monitor_python.zip
. Verwenden Sie zum Erstellen der ZIP-Datei nur den Code und die entsprechenden Abhängigkeiten und nicht den dazugehörigen Ordner.-
temp_monitor.py. App-Logik.
-
greengrasssdk. Erforderliche Bibliothek für Python Greengrass Lambda-Funktionen, die MQTT-Nachrichten veröffentlichen.
Dies ist das Bereitstellungspaket Ihrer Lambda-Funktion.
-
Erstellen Sie nun eine Lambda-Funktion, die das Bereitstellungspaket verwendet.
Schritt 5: Erstellen Sie eine Lambda-Funktion im FeldAWS LambdaKonsole
In diesem Schritt verwenden Sie denAWS Lambda-Konsole erstellen Sie eine Lambda-Funktion und konfigurieren diese zur Verwendung des Bereitstellungspakets. Anschließend veröffentlichen Sie eine Funktionsversion und erstellen einen Alias.
-
Zunächst erstellen Sie die Lambda-Funktion.
-
Wählen Sie in der AWS Management Console Services und öffnen Sie die AWS Lambda-Konsole.
-
Klicken Sie aufFunktion erstellenund wählen Sie dannAuthor from scratch.
-
Verwenden Sie im Abschnitt Basic information (Basisinformationen) folgende Werte:
-
Geben Sie für Function name (Funktionsname)
TempMonitor
ein. -
Wählen Sie für Runtime (Laufzeit) die Option Python 3.7 aus.
-
FürBerechtigungenverwenden, behalten Sie die Standardeinstellung bei. Dadurch wird eine Ausführungsrolle erstellt, die grundlegende Lambda-Berechtigungen gewährt. Diese Rolle wird nicht von verwendetAWS IoT Greengrass.
-
-
Klicken Sie unten auf der Seite auf Create function.
-
-
Registrieren Sie jetzt den Handler und laden Sie Ihr Bereitstellungspaket für Lambda-Funktion hoch
-
Auf derCodeTab, unterQuellcode, wählenHochladen von. Klicken Sie in der Dropdown-Liste aufZIP-Datei.
-
Klicken Sie aufHochladenund wählen Sie dann Ihr
temp_monitor_python.zip
Bereitstellungspaket. Wählen Sie dann Save (Speichern) aus. -
Auf derCodefür die Funktion, unterRuntime-Einstellungen, wählenBearbeiten, und geben Sie dann die folgenden Werte ein.
-
Wählen Sie für Runtime (Laufzeit) die Option Python 3.7 aus.
-
Geben Sie unter Handler
temp_monitor.function_handler
ein.
-
-
Wählen Sie Save (Speichern) aus.
Anmerkung
DieTest-Schaltfläche aufAWS Lambda-Konsole funktioniert nicht mit dieser Funktion. DieAWS IoT GreengrassDas Core SDK enthält keine Module, die erforderlich sind, um Ihre Greengrass Lambda-Funktionen unabhängig imAWS Lambdaconsole. Diese Module (zum Beispiel
greengrass_common
) werden für die Funktionen bereitgestellt, nachdem sie in Ihrem Greengrass-Kern bereitgestellt wurden.
-
-
Veröffentlichen Sie jetzt die erste Version der Lambda-Funktion und erstellen Sie eineAlias für die Version.
Anmerkung
Greengrass-Gruppen können eine Lambda-Funktion per Alias (empfohlen) oder nach Version referenzieren. Mit einem Alias lassen sich Code-Updates einfacher verwalten, da die Abonnementtabelle oder Gruppendefinition nicht geändert werden muss, wenn der Funktionscode aktualisiert wird. Stattdessen verweisen Sie einfach den Alias auf die neue Funktionsversion.
-
Auf derTempMonitor: 1-Konfigurationsseite, von derAktionenMenü wählen SieErstellen eines Alias.
-
Geben Sie auf der Seite Create a new alias folgende Werte an:
-
Geben Sie unter Name
GG_TempMonitor
ein. -
Wählen Sie für Version die Option 1.
Anmerkung
AWS IoT Greengrassunterstützt keine Lambda-Aliassen für$LATESTVersionen erstellt.
-
-
Wählen Sie Create (Erstellen) aus.
-
Jetzt sind Sie bereit, die Lambda-Funktion zu Ihrer Greengrass-Gruppe hinzuzufügen.
Schritt 6: Hinzufügen einer Lambda-Funktion zur Greengrass-Gruppe
In diesem Schritt fügen Sie die Lambda-Funktion der Gruppe hinzu und konfigurieren dann den Lebenszyklus und die Umgebungsvariablen. Weitere Informationen finden Sie unter Steuern der Ausführung von Greengrass-Lambda-Funktionen mithilfe einer gruppenspezifischen Konfiguration.
-
Wählen Sie auf der Gruppenkonfigurationsseite die OptionLambda-FunktionenRegisterkarte.
-
UnderMeine Lambda-Funktionen, wählenAdd.
-
Auf derHinzufügen von Lambda-Funktion-Seite wählen SieTempMonitorfür Ihre Lambda-Funktion.
-
FürVersioning der Lambda-Funktion, wählenAlias: GG_TempMonitor.
-
Klicken Sie aufHinzufügen von Lambda-Funktion.
Schritt 7: Hinzufügen von Abonnements zur Greengrass-Gruppe
In diesem Schritt fügen Sie ein Abonnement hinzu, mit dem die Lambda-Funktion Eingabedaten an den Konnektor senden kann. Der Konnektor definiert die MQTT-Themen, die er abonniert, und dieses Abonnement verwendet eines dieser Themen. Es ist das gleiche Thema, zu dem die Beispielfunktion veröffentlicht.
In diesem Tutorial erstellen Sie auch Abonnements, die es der Funktion ermöglichen, simulierte Temperaturmessungen von AWS IoT zu empfangen, und dem AWS IoT gestatten, Statusinformationen vom Konnektor zu empfangen.
-
Auf derErstellen eines Abonnements-Seite, konfigurieren Sie die Quelle und das Ziel wie folgt:
-
FürRessourcentyp, wählenLambda-Funktionund wählen Sie dannTempMonitor.
-
FürZieltyp, wählen-Konnektorund wählen Sie dannTwilio-Benachrichtigungen.
-
-
Für denThemenfilter, wählen
twilio/txt
. -
Wählen Sie Create subscription (Abonnement erstellen) aus.
-
Wiederholen Sie die Schritte 1 - 4, um ein Abonnement zu erstellen, das es AWS IoT ermöglicht, Nachrichten an die Funktion zu veröffentlichen.
-
FürRessourcentyp, wählenServiceund wählen Sie dannIoT Cloud.
-
FürWählen Sie ein Ziel aus, wählenLambda-Funktionund wählen Sie dannTempMonitor.
-
Geben Sie für Topic filter (Themenfilter) die Zeichenfolge
temperature/input
ein.
-
-
Wiederholen Sie die Schritte 1 - 4, um ein Abonnement zu erstellen, das es dem Konnektor ermöglicht, Nachrichten an AWS IoT zu veröffentlichen.
-
FürRessourcentyp, wählen-Konnektorund wählen Sie dannTwilio-Benachrichtigungen.
-
FürZieltyp, wählenServiceund wählen Sie dannIoT Cloud.
-
Für Themenfilter wird automatisch
twilio/message/status
eingegeben. Dies ist das vordefinierte Thema, in das der Konnektor veröffentlicht.
-
Schritt 8: Bereitstellen der Greengrass-Gruppe
Stellen Sie die Gruppe auf dem Core-Gerät bereit.
Anmerkung
Eine Greengrass-Gruppe kann nur eine Version des Konnektors gleichzeitig enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter Aktualisieren von Konnektorversionen.
Testen der Lösung
-
Auf derAWS IoT-Konsolen-Startseite, wählen SieTest.
-
FürAbonnieren eines -Themas, verwenden Sie die folgenden Werte und wählen Sie dannAbonnieren. Die Statusinformationen zu diesem Thema veröffentlicht der Twilio-Benachrichtigungs-Konnektor.
Property (Eigenschaft)
Wert
Abonnementthema
twilio/message/status
MQTT-Nutzlast-Anzeige
Zeigt Nutzlasten als Zeichenfolgen an
-
FürVeröffentlichung für ein Thema, verwenden Sie die folgenden Werte und wählen Sie dannVeröffentlichenum die Funktion aufzurufen.
Property (Eigenschaft)
Wert
Topic
Temperatur/Input
Fehlermeldung
Ersetzen
Empfängername
mit einem Namen undrecipient-phone-number
mit der Telefonnummer des Empfängers der SMS. Beispiel:+12345000000
{ "to_name": "
recipient-name
", "to_number": "recipient-phone-number
", "temperature": 31 }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 unterÜberprüfen Ihrer persönlichen Telefonnummer
. Wenn erfolgreich, erhält der Empfänger die Textnachricht und die Konsole zeigt den Status
success
für die Ausgangsdaten.Ändern Sie nun den
temperature
in der Eingabemeldung auf29
und veröffentlichen Sie. Da dies weniger als 30 ist, ist der TempMonitor -Funktion löst keine Twilio-Nachricht aus.