Erste Schritte mit Greengrass-Konnektoren (Konsole) - AWS IoT Greengrass

AWS IoT Greengrass Version 1 hat am 30. Juni 2023 in die Phase der verlängerten Lebensdauer aufgenommen. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie . Nach diesem Datum AWS IoT Greengrass V1 wurden keine Updates veröffentlicht, die Funktionen, Verbesserungen, Fehlerbehebungen oder Sicherheitspatches bereitstellen. Geräte, die auf ausgeführt AWS IoT Greengrass V1 werden, werden nicht unterbrochen und werden weiterhin betrieben und eine Verbindung zur Cloud herstellen. Wir empfehlen dringend, zu zu migrieren AWS IoT Greengrass Version 2, was erhebliche neue Funktionen und Unterstützung für zusätzliche Plattformen hinzufügt.

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.

Datenfluss von der Lambda-Funktion zum Twilio-Benachrichtigungs-Konnektor zu Twilio.

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.

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

  2. Wählen Sie Store a new secret (Ein neues Secret speichern).

  3. UnderSecret-Typ wählen, wählenOther type of secret (Andere Art von Secret).

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

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

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

  7. Dieses Tutorial erfordert keine Rotation. Wählen Sie also Disable automatic rotation (Automatische Rotation deaktivieren) und danachWeiter.

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

  1. In derAWS IoTNavigationsbereich der -Konsole, unterVerwalten, erweitern SieGreengrass-Geräteund wählen Sie dannGruppen (V1).

  2. Wählen Sie die Gruppe, zu der Sie die geheime Ressource hinzufügen möchten.

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

  4. Klicken Sie aufAddimSecretsAbschnitts erstellt.

  5. Auf derHinzufügen einer geheimen RessourceSeite, geben SieMyTwilioAuthTokenfürRessourcenname.

  6. Für denSecret, wählengreengrass-TwilioAuthToken.

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

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

  1. Wählen Sie auf der Gruppenkonfigurationsseite die Option Connectors (Konnektoren), und wählen Sie dann Add a connector (Konnektor hinzufügen).

  2. Auf derHinzufügen eines Connector-Seite wählen SieTwilio-Benachrichtigungen.

  3. Wählen Sie die -Version aus.

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

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

  1. AusAWS IoT GreengrassCore-SDKDownloads-Seite, laden Sie dieAWS IoT GreengrassCore SDK für Python auf Ihrem Computer.

  2. Entpacken Sie das heruntergeladene Paket, um das SDK zu erhalten. Das SDK ist der greengrasssdk-Ordner.

  3. 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)) }
  4. 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.

  1. Zunächst erstellen Sie die Lambda-Funktion.

    1. Wählen Sie in der AWS Management Console Services und öffnen Sie die AWS Lambda-Konsole.

    2. Klicken Sie aufFunktion erstellenund wählen Sie dannAuthor from scratch.

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

    4. Klicken Sie unten auf der Seite auf Create function.

  2. Registrieren Sie jetzt den Handler und laden Sie Ihr Bereitstellungspaket für Lambda-Funktion hoch

    1. Auf derCodeTab, unterQuellcode, wählenHochladen von. Klicken Sie in der Dropdown-Liste aufZIP-Datei.

      
                Die Dropdownliste Upload from mit hervorgehobener ZIP-Datei.
    2. Klicken Sie aufHochladenund wählen Sie dann Ihrtemp_monitor_python.zipBereitstellungspaket. Wählen Sie dann Save (Speichern) aus.

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

    4. 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 Beispielgreengrass_common) werden für die Funktionen bereitgestellt, nachdem sie in Ihrem Greengrass-Kern bereitgestellt wurden.

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

    1. Wählen Sie im Menü Actions die Option Publish new version aus.

    2. Geben Sie unter Version description (Versionsbeschreibung) den Wert First version ein und wählen Sie dann Publish (Veröffentlichen) aus.

    3. Auf derTempMonitor: 1-Konfigurationsseite, von derAktionenMenü wählen SieErstellen eines Alias.

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

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

  1. Wählen Sie auf der Gruppenkonfigurationsseite die OptionLambda-FunktionenRegisterkarte.

  2. UnderMeine Lambda-Funktionen, wählenAdd.

  3. Auf derHinzufügen von Lambda-Funktion-Seite wählen SieTempMonitorfür Ihre Lambda-Funktion.

  4. FürVersioning der Lambda-Funktion, wählenAlias: GG_TempMonitor.

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

  1. Wählen Sie auf der Gruppenkonfigurationsseite die OptionAbonnementsund wählen Sie dannAbo hinzufügen.

  2. Auf derErstellen eines Abonnements-Seite, konfigurieren Sie die Quelle und das Ziel wie folgt:

    1. FürRessourcentyp, wählenLambda-Funktionund wählen Sie dannTempMonitor.

    2. FürZieltyp, wählen-Konnektorund wählen Sie dannTwilio-Benachrichtigungen.

  3. Für denThemenfilter, wählentwilio/txt.

  4. Wählen Sie Create subscription (Abonnement erstellen) aus.

  5. Wiederholen Sie die Schritte 1 - 4, um ein Abonnement zu erstellen, das es AWS IoT ermöglicht, Nachrichten an die Funktion zu veröffentlichen.

    1. FürRessourcentyp, wählenServiceund wählen Sie dannIoT Cloud.

    2. FürWählen Sie ein Ziel aus, wählenLambda-Funktionund wählen Sie dannTempMonitor.

    3. Geben Sie für Topic filter (Themenfilter) die Zeichenfolge temperature/input ein.

  6. Wiederholen Sie die Schritte 1 - 4, um ein Abonnement zu erstellen, das es dem Konnektor ermöglicht, Nachrichten an AWS IoT zu veröffentlichen.

    1. FürRessourcentyp, wählen-Konnektorund wählen Sie dannTwilio-Benachrichtigungen.

    2. FürZieltyp, wählenServiceund wählen Sie dannIoT Cloud.

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

  1. Stellen Sie sicher, dass dieAWS IoT Greengrasscore läuft. Führen Sie im Raspberry Pi-Terminal die folgenden Befehle aus, falls nötig.

    1. So prüfen Sie, ob der Daemon ausgeführt wird:

      ps aux | grep -E 'greengrass.*daemon'

      Wenn die Ausgabe einen root-Eintrag für /greengrass/ggc/packages/ggc-version/bin/daemon enthält, dann wird der Daemon ausgeführt.

      Anmerkung

      Die Version in dem Pfad hängt von der AWS IoT Greengrass-Core-Softwareversion ab, die auf Ihrem Core-Gerät installiert ist.

    2. So starten Sie den Daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Wählen Sie auf der Gruppenkonfigurationsseite die OptionBereitstellen.

    1. In derLambda-Funktionenunter der RegisterkarteSystem-Lambda-FunktionenAbschnitt, wählen SieIP-Detektorund wähleBearbeiten.

    2. In derEinstellungen für IP-Detektor bearbeiten-Dialogfeld wählen SieAutomatisches Erkennen und Überschreiben von MQTT-Broker-.

    3. Wählen Sie Save (Speichern) aus.

      Damit können Geräte automatisch Core-Verbindungsinformationen abrufen, z. B. die IP-Adresse, DNS und die Portnummer. Die automatische Ermittlung wird empfohlen, aber AWS IoT Greengrass unterstützt auch manuell angegebene Endpunkte. Sie werden nur bei der ersten Bereitstellung der Gruppe zur Angabe der Ermittlungsmethode aufgefordert.

      Anmerkung

      Erteilen Sie bei Aufforderung die Berechtigung zum Erstellen desGreengrass-Servicerolleund assoziiere es mit deinemAWS-Kontoim aktuellenAWS-Region. Diese Rolle erlaubtAWS IoT Greengrassum auf Ihre -Ressourcen in zuzugreifenAWS-Services.

      Auf der Seite Deployments werden der Zeitstempel, die Versions-ID und der Status der Bereitstellung angegeben. Nach abgeschlossener Bereitstellung sollte der StatusCompleted (Abgeschlossen).

      Hilfe zur Problembehebung finden Sie unter Fehlerbehebung für AWS IoT Greengrass.

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

  1. Auf derAWS IoT-Konsolen-Startseite, wählen SieTest.

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

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

    ErsetzenEmpfängernamemit einem Namen undrecipient-phone-numbermit 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 auf 29 und veröffentlichen Sie. Da dies weniger als 30 ist, ist der TempMonitor -Funktion löst keine Twilio-Nachricht aus.

Weitere Informationen finden Sie auch unter