Integrieren von Services und Protokollen mit Greengrass-Konnektoren - AWS IoT Greengrass

Sie sehen sich die Dokumentation fürAWS IoT Greengrass Version 1aus.AWS IoT Greengrass Version 2ist die neueste Hauptversion vonAWS IoT Greengrassaus. Weitere Informationen zur Verwendung vonAWS IoT Greengrass V2finden Sie unter denAWS IoT Greengrass Version 2Entwicklerhandbuchaus.

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 fürAWS IoT GreengrassCore v1.7 und höher.

Konnektoren inAWS IoT GreengrassDiese Module sind vorgefertigte Module, die die Interaktion mit der lokalen Infrastruktur, Geräteprotokollen, effizienter machen.AWSund anderen Cloudservices. Durch die Verwendung von Konnektoren können Sie weniger Zeit mit dem Erlernen neuer Protokolle und APIs verbringen und mehr Zeit für die-Logik, die für Ihr Unternehmen wichtig ist.

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


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

Viele Konnektoren verwenden MQTT-Nachrichten, um mit Geräten und Greengrass Lambda Funktionen in der Gruppe oder mitAWS IoTService und den lokalen Shadow-Service. Im folgenden Beispiel empfängt der Twilio-Benachrichtigungs-Konnektor 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 Steckverbindern können Sie:

  • Implementieren einer wiederverwendbaren Geschäftslogik.

  • Interagieren mit Cloud und lokalen Services, einschließlichAWSDrittanbieter-Dienste.

  • Erfassen und Verarbeiten von Gerätedaten.

  • Aktivieren von Gerät-zu-Gerät-Aufrufen mithilfe von MQTT-Themenabonnements und benutzerdefinierten Lambda Funktionen.

AWSEine Reihe von Greengrass -Konnektoren bietet, die 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 AWS-bereitgestellte Greengrass -Anschlüsse.

Requirements

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 AWS-bereitgestellte Greengrass -Anschlüsse.

  • 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 AWS-bereitgestellte Greengrass -Anschlüsse.

Verwenden von Greengrass-Konnektoren

Ein KonnektorEin ist eine Art Gruppenkomponente. Wie andere Gruppenkomponenten, wie z. B. Geräte und benutzerdefinierte Lambda Funktionen, fügen Sie Konnektoren zu Gruppen hinzu, konfigurieren deren Einstellungen und stellen sie für dieAWS IoT GreengrassKern. Konnektoren werden in der Core-Umgebung ausgeführt.

Einige Konnektoren können als einfache, eigenständige Anwendungen bereitgestellt werden. Beispielsweise liest der Device Defender-Konnektor Systemmetriken vom Core-Gerät und sendet sie anAWS IoT Device DefenderAnalyseschema.

Andere Konnektoren können in größeren Lösungen als Bausteine hinzugefügt werden. Die folgende Beispellösung verwendet den -Konnektor Modbus-RTU zur Verarbeitung von Meldungen von Sensoren und den -Konnektor zur Auslösung von Twilio-Meldungen.


                Datenfluss von Lambda Funktion zum Modbus-RTU Protocol Adapter-Anschluss zur Lambda-Funktion zum Twilio Notifications Anschluss an Twilio.

Lösungen beinhalten oft benutzerdefinierte Lambda Funktionen, die sich neben Konnektoren befinden und die Daten verarbeiten, die der Konnektor sendet oder empfängt. In diesem Beispiel empfängt die TempMonitor Funktion 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 AWS-bereitgestellte Greengrass -Anschlüsse.

  3. Identifizieren Sie, ob benutzerdefinierte Lambda Funktionen, 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 zu initiieren. 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-Konnektor 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. Beispielsweise können Sie Abonnements erstellen, die es vielen Geräten ermöglichen, Daten an den Kinesis Firehose-Konnektor 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 beispielsweise/procund Parameter für Twilio-Benachrichtigungen ermöglichen den Zugriff auf ein lokal gespeichertes 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 die OptionKonnektorenWählen Sie im Konnektor-Kontextmenü die OptionBearbeiten.

    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 die neue Konfiguration definiert.

    DieAWS IoT GreengrassAPI verwendet Versionen, um Gruppen zu verwalten. Versionen sind unveränderlich. Um Gruppenkomponenten hinzuzufügen oder zu ändern, z. B. 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 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, Geräten, anderen Konnektoren in der Greengrass -Gruppe, oder mitAWS IoTService und den lokalen 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 AWS-bereitgestellte Greengrass -Anschlüsse.

Eingabethemen

Die meisten Konnektoren empfangen Eingabedaten zu MQTT-Themen. Einige Konnektoren abonnieren mehrere Themen für Eingabedaten. Beispielsweise unterstützt der Serial Stream-Konnektor 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 des Konnektors. Weitere Informationen finden Sie unter AWS-bereitgestellte Greengrass -Anschlüsse.

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. beim Ausführen vonAWS 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 AWS-bereitgestellte Greengrass -Anschlüsse. 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 IoTIn der Greengrass-Konsole können Sie nach neuen Versionen für die Konnektoren in Ihrer Greengrass -Gruppe suchen.

  1. In derAWS IoTWählen Sie im Navigationsbereich -Konsole im Navigationsbereich der -KonsoleGreengrass,Klassisch (V1),-Gruppen.

  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. Ausführliche Schritte, die zeigen, wie Sie dasAWS CLIBeispielkonnektor für Twilio-Benachrichtigungen konfigurieren und bereitstellen, finden Sie unter.Erste Schritte mit Greengrass-Konnektoren (CLI).

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 Logs, das lokale Dateisystem oder beides geschrieben. Protokolle von Konnektoren enthalten den ARN der entsprechenden Funktion. Das folgende Beispiel-ARN stammt aus dem Kinesis Firehose-Konnektor:

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