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.
Exportieren von Konfigurationen für unterstützteAWS CloudDestinationen
Benutzerdefinierte Lambda-Funktionen verwendenStreamManagerClient
imAWS IoT GreengrassCore-SDK zur Interaktion mit dem Stream-Manager. Wenn eine Lambda-Funktionerstellt einen Streamoderaktualisiert einen Stream, es passiert einMessageStreamDefinition
-Objekt, das Stream-Eigenschaften darstellt, einschließlich der Exportdefinition. DieExportDefinition
object enthält die Exportkonfigurationen, die für den Stream definiert sind. Stream Manager verwendet diese Exportkonfigurationen, um zu bestimmen, wo und wie der Stream exportiert werden soll.
Sie können null oder mehr Exportkonfigurationen in einem Stream definieren, einschließlich mehrerer Exportkonfigurationen für einen einzelnen Zieltyp. Sie können beispielsweise einen Stream in zwei exportierenAWS IoT Analytics-Kanäle und ein Kinesis-Data-Stream.
Bei fehlgeschlagenen Exportversuchen versucht der Stream-Manager kontinuierlich, Daten in dieAWS Cloudin Intervallen von bis zu fünf Minuten. Die Anzahl der Wiederholungsversuche hat kein maximales Limit.
Anmerkung
StreamManagerClient
Bietet auch ein Zielziel, mit dem Sie Streams auf einen HTTP-Server exportieren können. Dieses Ziel dient nur zu Testzwecken. Es ist nicht stabil oder wird nicht für die Verwendung in Produktionsumgebungen unterstützt.
UnterstützteAWS CloudDestinationen
Sie sind dafür verantwortlich, diese beizubehaltenAWS CloudRessourcen schätzen.
AWS IoT Analytics-Kanäle
Stream Manager unterstützt automatische Exporte nachAWS IoT Analyticsaus.AWS IoT Analyticsermöglicht es Ihnen, erweiterte Analysen Ihrer Daten durchzuführen, um Geschäftsentscheidungen zu treffen und Modelle für maschinelles Lernen zu verbessern. Weitere Informationen finden Sie unterWas ist ?AWS IoT Analytics?imAWS IoT Analytics-Benutzerhandbuchaus.
In derAWS IoT GreengrassCore SDK, Ihre Lambda-Funktionen nutzen dasIoTAnalyticsConfig
um die Exportkonfiguration für diesen Zieltyp zu definieren. Weitere Informationen finden Sie in der SDK-Referenz für Ihre Zielsprache:
-
IotAnalyticsConfig
im Python SDK -
IotAnalyticsConfig
im Java SDK -
IotAnalyticsConfig
im SDK Node.js
Voraussetzungen
Dieses Exportziel hat die folgenden Anforderungen:
-
Zielkanäle inAWS IoT Analyticsin derselbenAWS-KontoundAWS-Regionals Greengrass-Gruppe.
-
DieGreengrass-Gruppenrolle.muss das erlauben
iotanalytics:BatchPutMessage
Berechtigung zum Zielen von Kanälen. Zum Beispiel:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotanalytics:BatchPutMessage" ], "Resource": [ "arn:aws:iotanalytics:
region
:account-id
:channel/channel_1_name
", "arn:aws:iotanalytics:region
:account-id
:channel/channel_2_name
" ] } ] }Sie können granularen oder bedingten Zugriff gewähren, etwa mit einem Platzhaltern
*
Benennungsschema. Weitere Informationen finden Sie unterHinzufügen und Entfernen von IAM-RichtlinienimIAM User Guideaus.
Exportieren in AWS IoT Analytics
So erstellen Sie einen Stream, der nachAWS IoT Analytics, Ihre Lambda-FunktionenErstellen eines -Streamsmit einer Exportdefinition, die eine oder mehrere enthältIoTAnalyticsConfig
-Objekte. Dieses Objekt definiert Exporteinstellungen wie den Zielkanal, die Stapelgröße, das Stapelintervall und die Priorität.
Wenn Ihre Lambda-Funktionen Daten von Geräten empfangen, werden sieAnhängen von Nachrichtendie einen Datenblob zum Zielstream enthalten.
Dann exportiert der Stream Manager die Daten basierend auf den Batch-Einstellungen und der Priorität, die in den Exportkonfigurationen des Streams definiert sind.
Amazon Kinesis Kinesis-Datenströme
Der Stream-Manager unterstützt automatische Exporte zu Amazon Kinesis Data Streams. Kinesis Data Streams wird häufig verwendet, um Daten mit hohem Volumen zu aggregieren und in ein Data Warehouse oder einen Map-Reduce-Cluster zu laden. Weitere Informationen finden Sie unterWas ist Amazon Kinesis Data Streams?imAmazon Kinesis Developer Guideaus.
In derAWS IoT GreengrassCore SDK, Ihre Lambda-Funktionen nutzen dasKinesisConfig
um die Exportkonfiguration für diesen Zieltyp zu definieren. Weitere Informationen finden Sie in der SDK-Referenz für Ihre Zielsprache:
-
KinesisConfig
im Python SDK -
KinesisConfig
im Java SDK -
KinesisConfig
im SDK Node.js
Voraussetzungen
Dieses Exportziel hat die folgenden Anforderungen:
-
Zielstreams in Kinesis Data Streams müssen im selben seinAWS-KontoundAWS-Regionals Greengrass-Gruppe.
-
DieGreengrass-Gruppenrolle.muss das erlauben
kinesis:PutRecords
Berechtigung zum Zielen von Datenströmen. Zum Beispiel:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords" ], "Resource": [ "arn:aws:kinesis:
region
:account-id
:stream/stream_1_name
", "arn:aws:kinesis:region
:account-id
:stream/stream_2_name
" ] } ] }Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren, etwa mit einem Platzhaltern
*
Benennungsschema. Weitere Informationen finden Sie unterHinzufügen und Entfernen von IAM-RichtlinienimIAM User Guideaus.
Exportieren in Kinesis Data Streams
Um einen Stream zu erstellen, der in Kinesis Data Streams exportiert, funktioniert Ihr Lambda-FunktionenErstellen eines -Streamsmit einer Exportdefinition, die eine oder mehrere enthältKinesisConfig
-Objekte. Dieses Objekt definiert Exporteinstellungen wie den Zieldatenstrom, die Stapelgröße, das Stapelintervall und die Priorität.
Wenn Ihre Lambda-Funktionen Daten von Geräten empfangen, werden sieAnhängen von Nachrichtendie einen Datenblob zum Zielstream enthalten. Dann exportiert der Stream Manager die Daten basierend auf den Batch-Einstellungen und der Priorität, die in den Exportkonfigurationen des Streams definiert sind.
Der Stream-Manager generiert eine eindeutige, zufällige UUID als Partitionsschlüssel für jeden auf Amazon Kinesis hochgeladenen Datensatz.
AWS IoT SiteWiseKomponenteneigenschaften
Stream Manager unterstützt automatische Exporte nachAWS IoT SiteWiseaus.AWS IoT SiteWiseMit können Sie Daten von Industrieanlagen skalierbar sammeln, organisieren und analysieren. Weitere Informationen finden Sie unterWas ist ?AWS IoT SiteWise?imAWS IoT SiteWise-Benutzerhandbuchaus.
In derAWS IoT GreengrassCore SDK, Ihre Lambda-Funktionen nutzen dasIoTSiteWiseConfig
um die Exportkonfiguration für diesen Zieltyp zu definieren. Weitere Informationen finden Sie in der SDK-Referenz für Ihre Zielsprache:
-
iotsiteWiseConfig
im Python SDK -
iotsiteWiseConfig
im Java SDK -
iotsiteWiseConfig
im SDK Node.js
Anmerkung
AWSbietet auchIoT SiteWise -Konnektor, eine vorgefertigte Lösung, die Sie mit OPC-UA-Quellen verwenden können.
Voraussetzungen
Dieses Exportziel hat die folgenden Anforderungen:
-
Zielobjekte inAWS IoT SiteWisein derselbenAWS-KontoundAWS-Regionals Greengrass-Gruppe.
Anmerkung
Eine Liste der Regionen, dieAWS IoT SiteWiseunterstützt, sieheAWS IoT SiteWise-Endpunkte und -KontingenteimAWS– Allgemeine Referenzaus.
-
DieGreengrass-Gruppenrolle.muss das erlauben
iotsitewise:BatchPutAssetPropertyValue
Berechtigung zur Ausrichtung von Asset-Eigenschaften. Die folgende Beispielrichtlinie verwendetiotsitewise:assetHierarchyPath
Bedingungsschlüssel zum Gewähren von Zugriff auf ein Ziel-Root-Asset und seine untergeordneten Elemente Sie können dasCondition
Von der Richtlinie aus, um Zugriff auf alle Ihre zu ermöglichenAWS IoT SiteWiseVermögenswerte oder geben Sie ARNs einzelner Vermögenswerte an.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/
root node asset ID
", "/root node asset ID
/*" ] } } } ] }Sie können granularen oder bedingten Zugriff gewähren, etwa mit einem Platzhaltern
*
Benennungsschema. Weitere Informationen finden Sie unterHinzufügen und Entfernen von IAM-RichtlinienimIAM User Guideaus.Wichtige Sicherheitsinformationen finden Sie unter BatchPutAssetPropertyValue AutorisierungimAWS IoT SiteWise-Benutzerhandbuchaus.
Exportieren in AWS IoT SiteWise
So erstellen Sie einen Stream, der nachAWS IoT SiteWise, Ihre Lambda-FunktionenErstellen eines -Streamsmit einer Exportdefinition, die eine oder mehrere enthältIoTSiteWiseConfig
-Objekte. Dieses Objekt definiert Exporteinstellungen wie Stapelgröße, Stapelintervall und Priorität.
Wenn Ihre Lambda-Funktionen Asset-Eigenschaftsdaten von Geräten erhalten, hängen sie Nachrichten an, die die Daten enthalten, an den Zielstream an. Nachrichten werden JSON-serialisiertPutAssetPropertyValueEntry
-Objekte, die Eigenschaftswerte für eine oder mehrere Asset-Eigenschaften enthalten. Weitere Informationen finden Sie unterAnhängen einer NachrichtzumAWS IoT SiteWiseExportieren von -Zielen
Anmerkung
Wenn Sie Daten anAWS IoT SiteWise, müssen Ihre Daten die Anforderungen desBatchPutAssetPropertyValue
Aktion Weitere Informationen finden Sie unter BatchPutAssetPropertyValue in der AWS IoT SiteWise-API-Referenz.
Dann exportiert der Stream Manager die Daten basierend auf den Batch-Einstellungen und der Priorität, die in den Exportkonfigurationen des Streams definiert sind.
Sie können Ihre Stream-Manager-Einstellungen und die Lambda-Funktionslogik anpassen, um Ihre Exportstrategie zu entwerfen. Zum Beispiel:
-
Legen Sie für nahezu Echtzeit-Exporte die Einstellungen für niedrige Chargengröße und Intervall fest und hängen Sie die Daten an den Stream an, wenn sie empfangen werden.
-
Um das Batching zu optimieren, Bandbreitenbeschränkungen zu mindern oder Kosten zu minimieren, können Ihre Lambda-Funktionen timestamp-quality-value (TQV) Datenpunkte, die für eine einzelne Asset-Eigenschaft empfangen wurden, bevor die Daten an den Stream angehängt werden. Eine Strategie besteht darin, Einträge für bis zu 10 verschiedene Eigenschaft-Asset-Kombinationen oder Eigenschaftsaliase in einer Nachricht zu stapeln, anstatt mehr als einen Eintrag für dieselbe Eigenschaft zu senden. Dies hilft dem Stream-Manager, innerhalb zu bleibenAWS IoT SiteWiseQuotenaus.
Amazon S3 S3-Objekte
Der Stream-Manager unterstützt automatische Exporte nach Amazon S3. Mit Amazon S3 können Sie große Datenmengen speichern und abrufen. Weitere Informationen finden Sie unterWas ist Amazon S3?imAmazon Simple Storage Service – Entwicklerhandbuchaus.
In derAWS IoT GreengrassCore SDK, Ihre Lambda-Funktionen nutzen dasS3ExportTaskExecutorConfig
um die Exportkonfiguration für diesen Zieltyp zu definieren. Weitere Informationen finden Sie in der SDK-Referenz für Ihre Zielsprache:
-
s3ExportTaskExecutorConfig
im Python SDK -
s3ExportTaskExecutorConfig
im Java SDK -
s3ExportTaskExecutorConfig
im SDK Node.js
Voraussetzungen
Dieses Exportziel hat die folgenden Anforderungen:
-
Amazon S3 S3-Zielbuckets müssen im selben seinAWS-Kontoals Greengrass-Gruppe.
-
Wenn das SymbolStandardcontainerisierungFür die Greengrass-Gruppe istGreengrass-Containereinstellen, müssen SieSTREAM_MANAGER_READ_ONLY_DIRSParameter zur Verwendung eines Eingabedateiverzeichnisses unter
/tmp
oder befindet sich nicht im Root-Dateisystem. -
Wenn eine Lambda-Funktion in läuftGreengrass-Containermode schreibt Eingabedateien in das Eingabedateiverzeichnis, Sie müssen eine lokale Volume-Ressource für das Verzeichnis erstellen und das Verzeichnis mit Schreibberechtigungen in den Container einhängen. Dies stellt sicher, dass die Dateien in das Root-Dateisystem geschrieben und außerhalb des Containers sichtbar sind. Weitere Informationen finden Sie unter Greifen Sie mit Lambda-Funktionen und -Konnektoren auf lokale Ressourcen zu.
-
DieGreengrass-Gruppenrolle.muss die folgenden Berechtigungen für die Ziel-Buckets zulassen. Zum Beispiel:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::
bucket-1-name
/*", "arn:aws:s3:::bucket-2-name
/*" ] } ] }Sie können granularen oder bedingten Zugriff gewähren, etwa mit einem Platzhaltern
*
Benennungsschema. Weitere Informationen finden Sie unterHinzufügen und Entfernen von IAM-RichtlinienimIAM User Guideaus.
Exportieren nach Amazon S3
Um einen Stream zu erstellen, der nach Amazon S3 exportiert, verwenden Ihre Lambda-Funktionen dieS3ExportTaskExecutorConfig
-Objekt, um die Exportrichtlinie zu konfigurieren. Die Richtlinie definiert Exporteinstellungen wie den Schwellenwert für den mehrteiligen Upload und die Priorität. Bei Amazon S3 S3-Exporten lädt der Stream Manager Daten hoch, die er aus lokalen Dateien auf dem Kerngerät liest. Um einen Upload zu initiieren, hängen Ihre Lambda-Funktionen eine Exportaufgabe an den Zielstream an. Die Exportaufgabe enthält Informationen über die Eingabedatei und das Zielobjekt von Amazon S3. Der Stream-Manager führt Aufgaben in der Reihenfolge aus, in der sie an den Stream angehängt werden.
Anmerkung
Der Ziel-Bucket muss in Ihrem bereits vorhanden seinAWS-Kontoaus. Wenn ein Objekt für den angegebenen Schlüssel nicht vorhanden ist, erstellt der Stream-Manager das Objekt für Sie.
Dieser Workflow auf hoher Ebene ist im folgenden Diagramm dargestellt.
Der Stream-Manager verwendet die Eigenschaft Multipart-Upload-Schwellenwert,Minimale TeilegrößeEinstellung und Größe der Eingabedatei, um zu bestimmen, wie Daten hochgeladen werden sollen. Der Mehrpart-Upload-Schwellenwert muss größer oder gleich der minimalen Teilegröße sein. Wenn Sie Daten parallel hochladen möchten, können Sie mehrere Streams erstellen.
Die Schlüssel, die Ihre Amazon S3 S3-Zielobjekte angeben, können gültig enthaltenJava DateTimeFormatter!{timestamp:
Platzhalter. Sie können diese Zeitstempel-Platzhalter verwenden, um Daten in Amazon S3 basierend auf dem Zeitpunkt zu partitionieren, zu dem die Eingabedateidaten hochgeladen wurden. Der folgende Schlüsselname wird beispielsweise in einen Wert wievalue
}my-key/2020/12/31/data.txt
aus.
my-key/!{timestamp:YYYY}/!{timestamp:MM}/!{timestamp:dd}/data.txt
Anmerkung
Wenn Sie den Exportstatus für einen Stream überwachen möchten, erstellen Sie zuerst einen Statusstream und konfigurieren Sie dann den Exportstream, um ihn zu verwenden. Weitere Informationen finden Sie unter Überwachen von Exportaufgaben.
Verwalten von Eingabedaten
Sie können Code erstellen, den IoT-Anwendungen verwenden, um den Lebenszyklus der Eingabedaten zu verwalten. Der folgende Beispielworkflow zeigt, wie Sie Lambda-Funktionen verwenden können, um diese Daten zu verwalten.
-
Ein lokaler Prozess empfängt Daten von Geräten oder Peripheriegeräten und schreibt die Daten dann in Dateien in einem Verzeichnis auf dem Kerngerät. Dies sind die Eingabedateien für den Stream-Manager.
Anmerkung
Um festzustellen, ob Sie den Zugriff auf das Eingabedateiverzeichnis konfigurieren müssen, lesen Sie dieSTREAM_MANAGER_READ_ONLY_DIRS-Parameter.
Der Vorgang, in dem der Stream-Manager ausgeführt wird, erbt alle Dateisystemberechtigungen desStandardzugriffsidentitätfür die Gruppe. Der Stream-Manager muss zum Zugriff auf die Eingabedateien berechtigt sein. Sie können das
chmod(1)
-Befehl, um die Berechtigung der Dateien gegebenenfalls zu ändern. -
Eine Lambda-Funktion scannt das Verzeichnis undhängt eine Exportaufgabezum Zielstream, wenn eine neue Datei erstellt wird. Die Aufgabe ist ein JSON-serialisiertes
S3ExportTaskDefinition
-Objekt, das die URL der Eingabedatei, den Amazon S3 S3-Ziel-Bucket und Schlüssel sowie optionale Benutzermetadaten angibt. -
Der Stream-Manager liest die Eingabedatei und exportiert die Daten in der Reihenfolge der angehängten Aufgaben nach Amazon S3. Der Ziel-Bucket muss in Ihrem bereits vorhanden seinAWS-Kontoaus. Wenn ein Objekt für den angegebenen Schlüssel nicht vorhanden ist, erstellt der Stream-Manager das Objekt für Sie.
-
Die Lambda-Funktionliest Nachrichtenaus einem Statusstream, um den Exportstatus zu überwachen. Nachdem Exportaufgaben abgeschlossen sind, kann die Lambda-Funktion die entsprechenden Eingabedateien löschen. Weitere Informationen finden Sie unter Überwachen von Exportaufgaben.
Überwachen von Exportaufgaben
Sie können Code erstellen, mit dem IoT-Anwendungen den Status Ihrer Amazon S3 S3-Exporte überwachen. Ihre Lambda-Funktionen müssen einen Status-Stream erstellen und dann den Exportstream so konfigurieren, dass Statusaktualisierungen in den Statusstream geschrieben werden. Ein einzelner Statusstream kann Statusaktualisierungen von mehreren Streams erhalten, die nach Amazon S3 exportieren.
Erstens:Erstellen eines -Streamsals Statusstream zu verwenden. Sie können die Größe und Aufbewahrungsrichtlinien für den Stream konfigurieren, um die Lebensdauer der Statusmeldungen zu steuern. Zum Beispiel:
-
Legen Sie fest.
Persistence
zuMemory
wenn Sie die Statusmeldungen nicht speichern möchten. -
Legen Sie fest.
StrategyOnFull
zuOverwriteOldestData
damit neue Statusmeldungen nicht verloren gehen.
Erstellen oder aktualisieren Sie dann den Exportstream, um den Statusstream zu verwenden. Legen Sie insbesondere die Statuskonfigurationseigenschaft des Streams festS3ExportTaskExecutorConfig
Exportieren der Konfiguration. Dies weist Stream-Manager an, Statusmeldungen über die Exportaufgaben in den Statusstream zu schreiben. In derStatusConfig
-Objekt, geben Sie den Namen des Status-Streams und die Ausführlichkeitsstufe an. Die folgenden unterstützten Werte reichen von am wenigsten ausführlich (ERROR
) auf ausführlichste (TRACE
) enthalten. Der Standardwert ist INFO
.
-
ERROR
-
WARN
-
INFO
-
DEBUG
-
TRACE
Der folgende Beispiel-Workflow zeigt, wie Lambda-Funktionen einen Statusstream verwenden können, um den Exportstatus zu überwachen.
-
Wie im vorherigen Workflow beschrieben, ist eine Lambda-Funktionhängt eine Exportaufgabein einen Stream, der so konfiguriert ist, dass Statusmeldungen über Exportaufgaben in einen Statusstream geschrieben werden. Der Append-Vorgang gibt eine Sequenznummer zurück, die die Aufgaben-ID darstellt.
-
Eine Lambda-Funktionliest Nachrichtensequenziell aus dem Status-Stream und filtert die Nachrichten dann basierend auf dem Stream-Namen und der Aufgaben-ID oder basierend auf einer Exportaufgabeneigenschaft aus dem Nachrichtenkontext. Beispielsweise kann die Lambda-Funktion nach der Eingabedatei-URL der Exportaufgabe filtern, die durch die
S3ExportTaskDefinition
-Objekt im Nachrichtenkontext.Die folgenden Statuscodes zeigen an, dass eine Exportaufgabe den Status „Abgeschlossen“ erreicht hat:
-
Success
aus. Der Upload wurde erfolgreich abgeschlossen. -
Failure
aus. Der Stream-Manager ist auf einen Fehler gestoßen, z. B. existiert der angegebene Bucket nicht. Nachdem Sie das Problem behoben haben, können Sie die Exportaufgabe erneut an den Stream anhängen. -
Canceled
aus. Die Aufgabe wurde abgebrochen, weil die Stream- oder Exportdefinition gelöscht wurde, oder die time-to-live (TTL) Der Zeitraum der Aufgabe ist abgelaufen.
Anmerkung
Die Aufgabe könnte auch den Status von haben
InProgress
oderWarning
aus. Der Stream-Manager gibt Warnungen aus, wenn ein Ereignis einen Fehler zurückgibt, der sich nicht auf die Ausführung der Aufgabe auswirkt. Ein Fehler beim Bereinigen eines abgebrochenen teilweisen Uploads gibt beispielsweise eine Warnung zurück. -
-
Nachdem Exportaufgaben abgeschlossen sind, kann die Lambda-Funktion die entsprechenden Eingabedateien löschen.
Das folgende Beispiel zeigt, wie eine Lambda-Funktion Statusmeldungen lesen und verarbeiten könnte.