Erste Schritte mit Greengrass-Konnektoren (CLI) - 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 (CLI)

Diese Funktion ist verfügbar fürAWS IoT GreengrassCore v1.7 und höher.

Dieses Tutorial zeigt, wie man die AWS CLI 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 den bereitTwilio-Benachrichtigungen-Konnektor 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 Notifications -Konnektor und 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 30 Minuten.

Verwenden der AWS IoT Greengrass-API

Es ist hilfreich, die folgenden Muster zu verstehen, wenn Sie mit Greengrass-Gruppen und -Gruppenkomponenten arbeiten (z. B. die Konnektoren, Funktionen und Ressourcen in der Gruppe).

  • An der Spitze der Hierarchie befindet sich ein Definition-Objekt, das ein Container für Version-Objekte ist. Eine Version wiederum ist ein Container für die Konnektoren, Funktionen oder andere Komponententypen.

  • Wenn Sie im Greengrass Core bereitstellen, stellen Sie eine bestimmte Gruppenversion bereit. Eine Gruppenversion kann eine Version jeder Art von Komponente enthalten. Ein Core ist erforderlich, aber die anderen werden bei Bedarf einbezogen.

  • Versionen sind unveränderlich, daher müssen Sie neue Versionen anlegen, wenn Sie Änderungen vornehmen möchten.

Tipp

Wenn Sie beim Ausführen eines AWS CLI-Befehls einen Fehler erhalten, fügen Sie den Parameter --debug hinzu und führen Sie den Befehl erneut aus, um weitere Informationen über den Fehler zu erhalten.

Mit der AWS IoT Greengrass-API können Sie mehrere Definitionen für einen Komponententyp erstellen. Beispielsweise können Sie jedes Mal, wenn Sie ein FunctionDefinition-Objekt erstellen, ein FunctionDefinitionVersion erstellen, oder Sie können neue Versionen zu einer bestehenden Definition hinzufügen. Diese Flexibilität ermöglicht es Ihnen, Ihr Versionsmanagementsystem individuell anzupassen.

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

    Anmerkung

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

  • 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 unterSo arbeiten Sie mit Ihrem kostenlosen Twilio-Testkontoaus.

  • Die AWS CLI ist auf Ihrem Computer installiert und konfiguriert. Weitere Informationen finden Sie unterInstallieren vonAWS Command Line InterfaceundKonfigurieren vonAWS CLIimAWS Command Line Interface-Benutzerhandbuchaus.

     

    Die Beispiele in diesem Tutorial sind für Linux und andere Unix-basierte Systeme geschrieben. Wenn Sie Windows verwenden, lesen Sie Folgendes:Angeben von Parameterwerten für dieAWS Command Line Interfaceum mehr über Unterschiede in der Syntax zu erfahren.

    Wenn der Befehl eine JSON-Zeichenkette enthält, zeigt das Tutorial ein Beispiel, das das JSON auf einer einzigen Zeile hat. Auf einigen Systemen ist es möglicherweise einfacher, Befehle in diesem Format zu bearbeiten und auszuführen.

Schritt 1: Secret-Manager-Secret

In diesem Schritt verwenden Sie die AWS Secrets Manager-API, um ein Secret für Ihren Twilio-Authent-Token zu erstellen.

  1. Erstellen Sie zunächst das Secret.

    • Ersetzentwilio-auth-tokenmit Ihrem Twilio-Authent-Token.

    aws secretsmanager create-secret --name greengrass-TwilioAuthToken --secret-string twilio-auth-token
    Anmerkung

    Die Greengrass-Servicerolle ermöglicht standardmäßigAWS IoT Greengrassum den Wert von Secrets mit Namen zu erhalten, die mitgreengrassaus. Weitere Informationen finden Sie unter Anforderungen für Secrets.

  2. Kopieren Sie den ARN des Secrets aus der Ausgabe. Damit erstellen Sie die geheime Ressource und konfigurieren den Twilio-Benachrichtigungs-Konnektor.

Schritt 2: Erstellen einer Ressourcendefinition und -version

In diesem Schritt verwenden Sie denAWS IoT GreengrassAPI zum Erstellen einer geheimen Ressource für Ihr Secret-Manager-Secret

  1. Erstellen Sie eine Ressourcendefinition, die eine Initialversion enthält.

    • Ersetzen Sie secret-arn durch den ARN des Secrets, das Sie im vorherigen Schritt kopiert haben.

     

    JSON Expanded
    aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{ "Resources": [ { "Id": "TwilioAuthToken", "Name": "MyTwilioAuthToken", "ResourceDataContainer": { "SecretsManagerSecretResourceData": { "ARN": "secret-arn" } } } ] }'
    JSON Single-line
    aws greengrass create-resource-definition \ --name MyGreengrassResources \ --initial-version '{"Resources": [{"Id": "TwilioAuthToken", "Name": "MyTwilioAuthToken", "ResourceDataContainer": {"SecretsManagerSecretResourceData": {"ARN": "secret-arn"}}}]}'
  2. Kopieren Sie den LatestVersionArn der Ressourcendefinition aus der Ausgabe. Mit diesem Wert fügen Sie die Version der Ressourcendefinition der Gruppenversion hinzu, die Sie im Core bereitstellen.

Schritt 3: Erstellen einer Konnektordefinition und -version

In diesem Schritt konfigurieren Sie die Parameter für den Twilio Notifications -Konnektor.

  1. Erstellen Sie eine Konnektordefinition mit einer Initialversion.

    • Ersetzen Sie account-sid durch Ihre Twilio-Konto-SID.

    • Ersetzengeheim-arnmit demARNIhres Secrets-Manager-Secrets Der Konnektor verwendet dies, um den Wert des lokalen Secrets zu erhalten.

    • Ersetzen Sie phone-number durch Ihre Twilio-aktivierte Telefonnummer. Twilio verwendet sie, um die Textnachricht zu initiieren. Dies kann in der Nutzlast der Eingabenachricht überschrieben werden. Verwenden Sie das folgende Format: +19999999999.

     

    JSON Expanded
    aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Parameters": { "TWILIO_ACCOUNT_SID": "account-sid", "TwilioAuthTokenSecretArn": "secret-arn", "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken", "DefaultFromPhoneNumber": "phone-number" } } ] }'
    JSON Single-line
    aws greengrass create-connector-definition \ --name MyGreengrassConnectors \ --initial-version '{"Connectors": [{"Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Parameters": {"TWILIO_ACCOUNT_SID": "account-sid", "TwilioAuthTokenSecretArn": "secret-arn", "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken", "DefaultFromPhoneNumber": "phone-number"}}]}'
    Anmerkung

    TwilioAuthToken ist die ID, die Sie im vorherigen Schritt zum Erstellen der geheimen Ressource verwendet haben.

  2. Kopieren Sie den LatestVersionArn der Konnektordefinition aus der Ausgabe. Mit diesem Wert fügen Sie die Version der Konnektordefinition der Gruppenversion hinzu, die Sie im Core bereitstellen.

Schritt 4: Erstellen eines Bereitstellungspakets für Lambda

Zum Erstellen einer Lambda-Funktion müssen Sie zuerst eine Lambda-Funktion erstellenBereitstellungspaketdas den Funktionscode und Abhängigkeiten enthält. 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. Aus demAWS 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.

Schritt 5: Erstellen einer Lambda-Funktion

Erstellen Sie nun eine Lambda-Funktion, die das Bereitstellungspaket verwendet.

  1. Erstellen Sie eine IAM-Rolle, damit Sie beim Anlegen der Funktion den Rollen-ARN übergeben können.

    JSON Expanded
    aws iam create-role --role-name Lambda_empty --assume-role-policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
    JSON Single-line
    aws iam create-role --role-name Lambda_empty --assume-role-policy '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"},"Action": "sts:AssumeRole"}]}'
    Anmerkung

    AWS IoT Greengrassverwendet diese Rolle nicht, da Berechtigungen für Ihre Greengrass-Lambda-Funktionen in der Greengrass-Gruppenrolle angegeben sind. Für dieses Tutorial erstellen Sie eine leere Rolle.

  2. Kopieren Sie die Arn aus der Ausgabe.

  3. Verwenden derAWS LambdaAPI zum Erstellen der TempMonitor Funktion. Der folgende Befehl geht davon aus, dass sich die Zip-Datei im aktuellen Verzeichnis befindet.

    • Ersetzen Sie role-arn durch den kopierten Arn.

    aws lambda create-function \ --function-name TempMonitor \ --zip-file fileb://temp_monitor_python.zip \ --role role-arn \ --handler temp_monitor.function_handler \ --runtime python3.7
  4. Veröffentlichen einer Version der Funktion.

    aws lambda publish-version --function-name TempMonitor --description 'First version'
  5. Erstellen Sie einen Alias für die veröffentlichte Version.

    Greengrass-Gruppen können eine Lambda-Funktion über einen 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 auf den Alias auf die neue Funktionsversion.

    Anmerkung

    AWS IoT Greengrassunterstützt keine Lambda-Aliase für$LATEST-Versionen.

    aws lambda create-alias --function-name TempMonitor --name GG_TempMonitor --function-version 1
  6. Kopieren Sie die AliasArn aus der Ausgabe. Diesen Wert verwenden Sie bei der Konfiguration der Funktion für AWS IoT Greengrass und beim Anlegen eines Abonnements.

Jetzt sind Sie bereit, die Funktion für AWS IoT Greengrass zu konfigurieren.

Schritt 6: Erstellen einer Funktionsdefinition und -version

So verwenden Sie eine Lambda-Funktion für eineAWS IoT Greengrasscore erstellen Sie eine Funktionsdefinitionsversion, die die Lambda-Funktion über einen Alias referenziert und die Konfiguration auf Gruppenebene definiert. Weitere Informationen finden Sie unter Steuern der Ausführung von Greengrass-Lambda-Funktionen mithilfe einer gruppenspezifischen Konfiguration.

  1. Erstellen Sie eine Funktionsdefinition, die eine Initialversion enthält.

    • Ersetzen Sie alias-arn durch den AliasArn, den Sie beim Erstellen des Alias kopiert haben.

     

    JSON Expanded
    aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{ "Functions": [ { "Id": "TempMonitorFunction", "FunctionArn": "alias-arn", "FunctionConfiguration": { "Executable": "temp_monitor.function_handler", "MemorySize": 16000, "Timeout": 5 } } ] }'
    JSON Single-line
    aws greengrass create-function-definition \ --name MyGreengrassFunctions \ --initial-version '{"Functions": [{"Id": "TempMonitorFunction", "FunctionArn": "alias-arn", "FunctionConfiguration": {"Executable": "temp_monitor.function_handler", "MemorySize": 16000,"Timeout": 5}}]}'
  2. Kopieren Sie die LatestVersionArn aus der Ausgabe. Mit diesem Wert fügen Sie die Version der Funktionsdefinition der Gruppenversion hinzu, die Sie im Core bereitstellen.

  3. Kopieren Sie die Id aus der Ausgabe. Diesen Wert verwenden Sie später, wenn Sie die Funktion aktualisieren.

Schritt 7: Erstellen einer Abonnementdefinition und -version

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. Erstellen Sie eine Abonnementdefinition, die eine Initialversion enthält, die die Abonnements umfasst.

    • Ersetzen Sie alias-arn durch den AliasArn, den Sie beim Erstellen des Alias für die Funktion kopiert haben. Verwenden Sie diesen ARN für beide Abonnements, die ihn verwenden.

     

    JSON Expanded
    aws greengrass create-subscription-definition --initial-version '{ "Subscriptions": [ { "Id": "TriggerNotification", "Source": "alias-arn", "Subject": "twilio/txt", "Target": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4" }, { "Id": "TemperatureInput", "Source": "cloud", "Subject": "temperature/input", "Target": "alias-arn" }, { "Id": "OutputStatus", "Source": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Subject": "twilio/message/status", "Target": "cloud" } ] }'
    JSON Single-line
    aws greengrass create-subscription-definition \ --initial-version '{"Subscriptions": [{"Id": "TriggerNotification", "Source": "alias-arn", "Subject": "twilio/txt", "Target": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4"},{"Id": "TemperatureInput", "Source": "cloud", "Subject": "temperature/input", "Target": "alias-arn"},{"Id": "OutputStatus", "Source": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Subject": "twilio/message/status", "Target": "cloud"}]}'
  2. Kopieren Sie die LatestVersionArn aus der Ausgabe. Mit diesem Wert fügen Sie die Version der Abonnementdefinition der Gruppenversion hinzu, die Sie im Core bereitstellen.

Schritt 8: Erstellen einer Gruppenversion

Jetzt können Sie eine Gruppenversion erstellen, die alle Elemente enthält, die Sie bereitstellen möchten. Dazu legen Sie eine Gruppenversion an, die auf die Zielversion jedes Komponententyps verweist.

Zuerst erhalten Sie die Gruppen-ID und den ARN der Core-Definitionsversion. Diese Werte sind erforderlich, um die Gruppenversion zu erstellen.

  1. Rufen Sie die ID der Gruppe und die neueste Gruppenversion ab:

    1. Rufen Sie die IDs der Greengrass-Zielgruppen und die Gruppenversion ab. Dieses Verfahren setzt voraus, dass es sich um die neueste Gruppe und Gruppenversion handelt. Die folgende Abfrage gibt die zuletzt erstellte Gruppe zurück.

      aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

      Sie können auch nach Namen abfragen. Gruppennamen müssen nicht eindeutig sein, sodass mehrere Gruppen zurückgegeben werden können.

      aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
      Anmerkung

      Sie finden diese Werte auch inAWS IoTconsole. Die Gruppen-ID wird auf der Seite Einstellungen der Gruppe angezeigt. Gruppenversions-IDs werden auf denBereitstellungenRegisterkarte.

    2. Kopieren Sie die Id der Zielgruppe aus der Ausgabe. Sie verwenden sie, um die Core-Definitionsversion zu erhalten, und wenn Sie die Gruppe bereitstellen.

    3. Kopieren Sie die LatestVersion aus der Ausgabe, d. h. die ID der letzten Version, die der Gruppe hinzugefügt wurde. Damit erhalten Sie die Core-Definitionsversion.

  2. Abrufen des ARN der Core-Definitionsversion:

    1. Abrufen der Gruppenversion. Für diesen Schritt gehen wir davon aus, dass die neueste Gruppenversion eine Core-Definitionsversion enthält.

      • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

      • Ersetzengroup-version-idmit demLatestVersiondie du für die Gruppe kopiert hast.

      aws greengrass get-group-version \ --group-id group-id \ --group-version-id group-version-id
    2. Kopieren Sie die CoreDefinitionVersionArn aus der Ausgabe.

  3. Erstellen einer Gruppenversion

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzencore-definition-version-arnmit demCoreDefinitionVersionArndie Sie für die Core-Definitionsversion kopiert haben.

    • Ersetzenresource-definition-version-arnmit demLatestVersionArndie Sie für die Rollenressourcendefinition kopiert haben.

    • Ersetzenconnector-definition-version-arnmit demLatestVersionArndie Sie für die Konnektordefinition kopiert haben.

    • Ersetzenfunction-definition-version-arnmit demLatestVersionArndie Sie für die Funktionsdefinition kopiert haben.

    • Ersetzensubscription-definition-version-arnmit demLatestVersionArndie Sie für die Abonnementdefinition kopiert haben.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --connector-definition-version-arn connector-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  4. Kopieren Sie den Wert Version aus der Ausgabe. Dies ist die ID der Gruppenversion. Mit diesem Wert können Sie die Gruppenversion bereitstellen.

Schritt 9: Eine Bereitstellung auswählen

Stellen Sie die Gruppe auf dem Core-Gerät bereit.

  1. Stellen Sie in einem Core-Gerät-Terminal sicher, dass der AWS IoT Greengrass-Daemon läuft.

    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/1.11.6/bin/daemon enthält, dann wird der Daemon ausgeführt.

    2. So starten Sie den Daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Erstellen einer Bereitstellung.

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzengroup-version-idmit demVersiondie Sie für die neue Gruppe kopiert haben.

    aws greengrass create-deployment \ --deployment-type NewDeployment \ --group-id group-id \ --group-version-id group-version-id
  3. Kopieren Sie die DeploymentId aus der Ausgabe.

  4. Abrufen des Bereitstellungsstatus.

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzen Sie deployment-id durch die DeploymentId, die Sie für die Bereitstellung kopiert haben.

    aws greengrass get-deployment-status \ --group-id group-id \ --deployment-id deployment-id

    Wenn der Status lautetSuccesswar die Bereitstellung erfolgreich. Hilfe zur Problembehebung finden Sie unter Fehlerbehebung für AWS IoT Greengrass.

Testen der Lösung

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

  2. FürAbonnieren eines -Themas, verwenden Sie die folgenden Werte und wählen SieAbonnierenaus. Der Twilio-Benachrichtigungs-Konnektor veröffentlicht Statusinformationen zu diesem Thema.

    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 SieVerö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 Sie Ihre persönliche Telefonnummeraus.

    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, TempMonitor -Funktion löst keine Twilio-Nachricht aus.

Weitere Informationen finden Sie auch unter