Integrieren von Services und Protokollen mit Greengrass-Konnektoren - 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.

Integrieren von Services und Protokollen mit Greengrass-Konnektoren

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

Konnektoren inAWS IoT Greengrasssind vorgefertigte Module, die Interaktion mit der lokalen Infrastruktur effizienter machen, Geräteprotokolle,AWSund andere Cloud-Services. Durch die Verwendung von Konnektoren können Sie weniger Zeit mit dem Erlernen neuer Protokolle und APIs verbringen und mehr Zeit für diefolgerichtigdas ist wichtig für Ihr Unternehmen.

Das folgende Diagramm zeigt, an welcher Stelle Konnektoren in dieAWS IoT Greengrass Landschaftaus.

Konnektoren verbinden sich mit Geräten, Services und lokalen Ressourcen.

Viele Konnektoren verwenden MQTT-Nachrichten für die Kommunikation mit Client-Geräten und Greengrass Lambda--Funktionen in der Gruppe oder mitAWS IoTund der lokale Shadow-Service. Im folgenden Beispiel empfängt der Twilio-Benachrichtigungs-Connector MQTT-Nachrichten von einer benutzerdefinierten Lambda-Funktion und verwendet eine lokale Referenz eines Secrets vonAWS Secrets Managerund ruft die Twilio-API auf.

Ein Konnektor empfängt eine MQTT-Nachricht von einer Lambda-Funktion und ruft einen Service auf.

Ein Tutorial zum Erstellen dieser Lösung finden Sie unter Erste Schritte mit Greengrass-Konnektoren (Konsole) und Erste Schritte mit Greengrass-Konnektoren (CLI).

Greengrass-Konnektoren können Ihnen helfen, die Gerätefunktionen zu erweitern oder Einzweck-Geräte zu erstellen. Durch die Verwendung von Connectors können Sie:

  • Implementieren einer wiederverwendbaren Geschäftslogik.

  • Interagieren mit der Cloud und lokalen Services, einschließlichAWSund Drittanbieterdienste.

  • Erfassen und Verarbeiten von Gerätedaten.

  • Aktivieren von device-to-device ruft über MQTT-Themenabonnements und benutzerdefinierte Lambda--Funktionen auf.

AWSbietet eine Reihe von Greengrass-Konnektoren, die Interaktion mit gängigen Services und Datenquellen vereinfachen. Diese vorgefertigten Module ermöglichen Szenarien für Protokollierung und Diagnose, Nachschubplanung, industrielle Datenverarbeitung sowie für Alarm und Meldung. Weitere Informationen finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.

Voraussetzungen

Beachten Sie die folgenden Punkte, um Konnektoren zu verwenden:

  • Jeder Connector, den Sie verwenden, hat Anforderungen, die Sie erfüllen müssen. Diese Anforderungen können die Mindestversion der AWS IoT Greengrass Core-Software, Gerätevoraussetzungen, erforderliche Berechtigungen und Limits umfassen. Weitere Informationen finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.

  • Eine Greengrass-Gruppe kann nur eine konfigurierte Instance eines bestimmten Konnektors enthalten. Sie können die Instance jedoch in mehreren Abonnements verwenden. Weitere Informationen finden Sie unter Konfigurationsparameter.

  • Wenn die Standardcontainerisierung für die Greengrass-Gruppe auf No container (Kein Container) festgelegt ist, müssen die Connectors (Konnektoren) in der Gruppe ohne Containerisierung ausgeführt werden. Informationen zum Suchen von Konnektoren, die den No Container (Kein Container)-Modus unterstützen, finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.

Verwenden von Greengrass-Konnektoren

Ein Konnektorist eine Art Gruppenkomponente. Wie bei anderen Gruppenkomponenten, z. B. Client-Geräte und benutzerdefinierte Lambda-Funktionen, fügen Sie Konnektoren zu Gruppen hinzu, konfigurieren ihre Einstellungen und stellen sie für bereitAWS IoT GreengrassKern. Konnektoren werden in der Core-Umgebung ausgeführt.

Sie können einige Konnektoren als einfache, eigenständige Anwendungen bereitstellen. Beispielsweise liest der Device Defender-Connector Systemmetriken vom Core-Gerät und sendet sie anAWS IoT Device Defenderzur Analyse.

Sie können weitere Konnektoren als Bausteine in größeren Lösungen hinzufügen. Die folgende Beispiellösung verwendet den Modbus-RTU-Protokolladapter-Konnektor zur Verarbeitung von Meldungen von Sensoren und den Twilio-Meldungs-Konnektor zur Initiierung von Twilio

Datenfluss von der Lambda-Funktion zum Modbus-RTU-Protokoll Adapter-Connector zur Lambda-Funktion zum Twilio Notifications-Connector zu Twilio.

Lösungen beinhalten oft benutzerdefinierte Lambda--Funktionen, die sich neben den Konnektoren befinden und die Daten verarbeiten, die der -Konnektor sendet oder empfängt. In diesem Beispiel fehlt bei der Aktion TempMonitorempfängt Daten vom Modbus-RTU-Protokolladapter, führt einige Geschäftslogik aus und sendet dann Daten an Twilio-Benachrichtigungen.

Um eine Lösung zu erstellen und bereitzustellen, folgen Sie diesem allgemeinen Prozess:

  1. Bilden Sie den übergeordneten Datenfluss ab. Identifizieren Sie die Datenquellen, Datenkanäle, Services, Protokolle und Ressourcen, mit denen Sie arbeiten müssen. In der Beispiellösung beinhaltet dies Daten über das Modbus RTU-Protokoll, die physikalische serielle Modbus-Schnittstelle und Twilio.

  2. Identifizieren Sie die Konnektoren, die in die Lösung aufgenommen werden sollen, und fügen Sie sie zu Ihrer Gruppe hinzu. Die Beispiellösung verwendet Modbus-RTU-Protokolladapter und Twilio-Benachrichtigungen. Damit Sie die Konnektoren leichter finden, die auf Ihr Szenario zutreffen, und um mehr über deren individuelle Anforderungen zu erfahren, konsultieren Sie die AWSVon bereitgestellte Greengrass-Konnektoren.

  3. Identifizieren Sie, ob benutzerdefinierte Lambda--Funktionen, Client-Geräte oder Ressourcen benötigt werden, und erstellen Sie sie dann und fügen Sie sie der Gruppe hinzu. Dies kann Funktionen beinhalten, die Geschäftslogik enthalten oder Daten in ein Format verarbeiten, das von einer anderen Entity in der Lösung benötigt wird. Die Beispiellösung verwendet -Funktionen, um Modbus RTU-Anforderungen zu senden und Twilio-Benachrichtigungen einzuleiten Sie enthält auch eine lokale Geräteressource für die serielle Schnittstelle Modbus RTU und eine geheime Ressource für das Twilio-Authentifizierungstoken.

    Anmerkung

    Eine geheime Ressource meint Passwörter, Token und andere Secrets vom AWS Secrets Manager. Secrets können von Konnektoren und Lambda--Funktionen für die Authentifizierung bei Services und Anwendungen verwendet werden. Standardmäßig kann AWS IoT Greengrass auf Secrets mit Namen zugreifen, die mit "greengrass-" beginnen. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

  4. Erstellen Sie Abonnements, die es den Entitäten in der Lösung ermöglichen, MQTT-Nachrichten auszutauschen. Wenn ein Konnektor in einem Abonnement verwendet wird, müssen der Konnektor und die Nachrichtenquelle oder das Ziel die vordefinierte Themensyntax verwenden, die von dem Konnektor unterstützt wird. Weitere Informationen finden Sie unter Eingaben und Ausgaben.

  5. Bereitstellen der Gruppe auf Greengrass Core.

Informationen zum Erstellen und Bereitstellen eines Konnektors finden Sie in den folgenden Tutorials:

Konfigurationsparameter

Viele Konnektoren stellen Parameter bereit, mit denen Sie Verhalten oder Ausgabe anpassen können. Diese Parameter werden während der Initialisierung, zur Laufzeit oder zu anderen Zeiten im Lebenszyklus des Konnektors verwendet.

Die Parametertypen und -verwendung variieren je nach Konnektor. Beispielsweise hat der SNS-Connector einen Parameter, der das Standard-SNS-Thema konfiguriert, und Device Defender hat einen Parameter, der die Datenabtastrate konfiguriert.

Eine Gruppenversion kann mehrere Konnektoren enthalten, aber nur eine Instance eines bestimmten Konnektor auf einmal. Dies bedeutet, dass jeder Konnektor in der Gruppe nur über eine aktive Konfiguration verfügen kann. Die Konnektor-Instance kann jedoch in mehreren Abonnements in der Gruppe verwendet werden. Beispiel: Sie können Abonnements erstellen, die es vielen Geräten ermöglichen, Daten an den Kinesis Firehose-Connector zu senden.

Parameter für den Zugriff auf Gruppenressourcen

Greengrass-Konnektoren verwenden Gruppenressourcen für den Zugriff auf das Dateisystem, Ports, Peripheriegeräte und andere lokale Ressourcen auf dem Core-Gerät. Wenn ein Konnektor den Zugriff auf eine Gruppenressource erfordert, stellt er zugehörige Konfigurationsparameter zur Verfügung.

Gruppenressourcen beinhalten:

  • Lokale Ressourcen. Verzeichnisse, Dateien, Ports, Pins und Peripheriegeräte, die auf dem Greengrass Core-Gerät vorhanden sind.

  • Ressourcen für maschinelles Lernen. Machine Learning-Modelle, die in der Cloud geschult und für den Core für lokale Inferenzen bereitgestellt werden.

  • Geheime Ressourcen. Lokale, verschlüsselte Kopien von Passwörtern, Schlüsseln, Token oder beliebigem Text aus AWS Secrets Manager. Konnektoren können auf diese lokalen Geheimnisse sicher zugreifen und sie verwenden, um sich auf Services oder in der lokalen Infrastruktur zu authentifizieren.

Beispielsweise ermöglichen Parameter für Device Defender den Zugriff auf Systemmetriken im Host/procund Parameter für Twilio-Benachrichtigungen ermöglichen den Zugriff auf einen lokal gespeicherten Twilio-Authentifizierungstoken.

Aktualisieren von Konnektorparametern

Die Parameter werden konfiguriert, wenn der Konnektor zu einer Greengrass-Gruppe hinzugefügt wird. Sie können die Parameterwerte ändern, nachdem der Konnektor hinzugefügt wurde.

  • In der -Konsole: Öffnen Sie auf der Gruppenkonfigurationsseite dieKonnektorenund wählen Sie im Konnektor-Kontextmenü aufBearbeitenaus.

    Anmerkung

    Wenn der Konnektor eine geheime Ressource verwendet, die später geändert wird, um auf ein anderes Secret zu verweisen, müssen Sie die Parameter des Konnektors bearbeiten und die Änderung bestätigen.

  • In der API: Erstellen Sie eine weitere Version des Konnektors, die neue Konfiguration definiert.

    DieAWS IoT GreengrassDie API verwendet Versionen, um Gruppen zu verwalten. Versionen sind unveränderlich. Um Gruppenkomponenten hinzuzufügen oder zu ändern — z. B. die Client-Geräte, -Funktionen und Ressourcen der Gruppe — müssen Sie Versionen neuer oder aktualisierter Komponenten erstellen. Anschließend erstellen und stellen Sie eine Gruppenversion bereit, die Zielversion jeder Komponente enthält.

Nachdem Sie Änderungen an der Konnektor-Konfiguration der Gruppe vorgenommen haben, müssen Sie die Gruppe bereitstellen, damit die Änderungen zum Core propagiert werden.

Eingaben und Ausgaben

Greengrass-Konnektoren können mit anderen Entitäten kommunizieren, indem sie MQTT-Nachrichten senden und empfangen. Die MQTT-Kommunikation wird durch Abonnements gesteuert, die dem Konnektor den Austausch von Daten mit Lambda-Funktionen, Client-Geräten, anderen Konnektoren in der Greengrass-Gruppe, ermöglichen,AWS IoTund der lokale Shadow-Service. Um diese Kommunikation zuzulassen, müssen Sie Abonnements in der Gruppe erstellen, zu der der Konnektor gehört. Weitere Informationen finden Sie unter Verwaltete Abonnements im MQTT Messaging-Workflow.

Konnektoren können Nachrichtenabonnenten, Nachrichtenherausgeber oder beides sein. Jeder Konnektor definiert die MQTT-Themen, die er veröffentlicht oder abonniert. Diese vordefinierten Themen müssen in den Abonnements verwendet werden, wobei der Konnektor eine Nachrichtenquelle oder ein Nachrichtenziel ist. Tutorials mit den Schritten für die Konfiguration von Abonnements für einen Konnektor finden Sie unter Erste Schritte mit Greengrass-Konnektoren (Konsole) und Erste Schritte mit Greengrass-Konnektoren (CLI).

Anmerkung

Viele Konnektoren haben auch eingebaute Kommunikationsmodi, um mit Cloud- oder lokalen Services zu interagieren. Diese variieren je nach Konnektor und können erfordern, dass Sie Parameter konfigurieren oder der Gruppenrolle Berechtigungen hinzufügen. Weitere Informationen zu den Anforderungen für Konnektoren finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.

Eingabethemen

Die meisten Konnektoren empfangen Eingabedaten zu MQTT-Themen. Einige Konnektoren abonnieren mehrere Themen für Eingabedaten. Beispielsweise unterstützt der Serial Stream-Connector zwei Themen:

  • serial/+/read/#

  • serial/+/write/#

Für diesen Konnektor werden Lese- und Schreibanforderungen an das zugehörige Thema gesendet. Wenn Sie Abonnements erstellen, stellen Sie sicher, dass Sie das Thema verwenden, das zu Ihrer Implementierung passt.

Die Zeichen + und # in den vorherigen Beispielen sind Platzhalter. Diese Platzhalter ermöglichen es Abonnenten, Nachrichten zu mehreren Themen zu empfangen, und Herausgebern, die Themen, zu denen sie veröffentlichen, anzupassen.

  • Der Platzhalter + kann an beliebiger Stelle in der Themenhierarchie erscheinen. Es kann durch ein Hierarchie-Element ersetzt werden.

    Zum Beispiel können für das Thema sensor/+/input Nachrichten zu den Themen sensor/id-123/input veröffentlicht werden, nicht aber zu sensor/group-a/id-123/input.

  • Der # Platzhalter kann nur am Ende der Themenhierarchie erscheinen. Es kann durch null oder mehr Hierarchieelemente ersetzt werden..

    Zum Beispiel können für das Thema sensor/# Nachrichten zu sensor/, sensor/id-123 und sensor/group-a/id-123 veröffentlicht werden, nicht aber zu sensor.

Platzhalterzeichen sind nur gültig, wenn Sie Themen abonnieren. Nachrichten können nicht zu Themen veröffentlicht werden, die Platzhalter enthalten. Weitere Informationen zu den Anforderungen an das Input- oder Output-Thema finden Sie in der Dokumentation für den Konnektor Weitere Informationen finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren.

Unterstützung der Containerisierung

Standardmäßig werden die meisten Konnektoren auf dem Greengrass Core in einer isolierten Laufzeitumgebung ausgeführt, die von verwaltet wird AWS IoT Greengrass. Diese Laufzeitumgebungen, Container genannt, bieten Isolation zwischen Konnektoren und dem Hostsystem. Dies erhöht die Sicherheit für den Host und den Konnektor.

Diese Greengrass-Containerisierung wird jedoch in einigen Umgebungen nicht unterstützt, z. B. wenn Sie ausführenAWS IoT Greengrassin einem Docker-Container oder auf älteren Linux-Kernel ohne Cgroups. In diesen Umgebungen müssen die Konnektoren im Modus No container (Kein Container) ausgeführt werden. Informationen zum Suchen von Konnektoren, die den No Container (Kein Container)-Modus unterstützen, finden Sie unter AWSVon bereitgestellte Greengrass-Konnektoren. Einige Konnektoren werden in diesem Modus nativ ausgeführt und einige Konnektoren ermöglichen es Ihnen, den Isolationsmodus festzulegen.

Sie können den Isolationsmodus auch in Umgebungen, die die Greengrass-Containerisierung unterstützen, auf No container (Kein Container) festlegen. Wir empfehlen jedoch, wenn möglich den Modus Greengrass container (Greengrass-Container) zu verwenden.

Anmerkung

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

Aktualisieren von Konnektorversionen

Konnektoranbieter veröffentlichen möglicherweise neue Versionen eines Konnektors, die neue Funktionen bereitstellen, Probleme beheben oder die Leistung verbessern. Informationen zu verfügbaren Versionen und entsprechenden Änderungen finden Sie in der Dokumentation zu den einzelnen Konnektoren.

In derAWS IoT-Konsole können Sie nach neuen Versionen für die Konnektoren in Ihrer Greengrass-Gruppe suchen.

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

  2. UnderGreengrass Gruppenwählen Sie Ihre Gruppe aus.

  3. Wählen Sie Connectors (Konnektoren), um die Konnektoren in der Gruppe anzuzeigen.

    Wenn der Connector eine neue Version hat, wird einVerfügbarwird in derUpgradecolumn.

  4. So führen Sie ein Upgrade der Konnektorversion aus:

    1. Wählen Sie auf der Seite Connectors (Konnektoren) in der Spalte Upgrade die Option Available (Verfügbar). Die Seite Upgrade connector (Konnektor-Upgrade) wird geöffnet und zeigt gegebenenfalls die aktuellen Parametereinstellungen an.

      Wählen Sie die neue Konnektorversion, definieren Sie die Parameter wie erforderlich und wählen Sie dann Upgrade.

    2. Fügen Sie auf der Seite Subscriptions (Abonnements) neue Abonnements in der Gruppe hinzu, um alle Abonnements zu ersetzen, die den Konnektor als Quelle oder Ziel verwenden. Entfernen Sie dann die alten Abonnements.

      Abonnements verweisen nach Version auf Konnektoren, sodass sie ungültig werden, wenn Sie die Konnektorversion in der Gruppe ändern.

    3. Wählen Sie im Menü Actions (Aktionen) die Option Deploy (Bereitstellen), um Ihre Änderungen im Core bereitzustellen.

Um einen Konnektor über die AWS IoT Greengrass-API zu aktualisieren, erstellen Sie eine Gruppenversion, die den aktualisierten Konnektor und die Abonnements enthält, und stellen Sie sie bereit. Gehen Sie genauso vor wie beim Hinzufügen eines Konnektors zu einer Gruppe. Weitere Informationen zur Verwendung desAWS CLIInformationen zum Konfigurieren und Bereitstellen eines Beispielkonnektors für Twilio-Benachrichtigungen findenErste Schritte mit Greengrass-Konnektoren (CLI)aus.

Protokollieren für Konnektoren

Greengrass-Konnektoren enthalten Lambda--Funktionen, die Ereignisse und Fehler in Greengrass-Protokolle schreiben. Abhängig von Ihren Gruppeneinstellungen werden Protokolle in CloudWatch Protokolle, das lokale Dateisystem oder beides. Protokolle von Konnektoren enthalten den ARN der entsprechenden Funktion. Nachfolgend finden Sie ein Beispiel eines ARN von dem Kinesis Firehose-Connector.

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

Die Standardprotokollierungskonfiguration schreibt Info-Level-Protokolle mit der folgenden Verzeichnisstruktur in das Dateisystem:

greengrass-root/ggc/var/log/user/region/aws/function-name.log

Weitere Informationen zur Greengrass-Protokollierung finden Sie unterÜberwachen mit AWS IoT Greengrass-Protokollenaus.