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.
Exportkonfigurationen für unterstützte AWS Cloud Ziele
Benutzerdefinierte Greengrass-Komponenten verwenden StreamManagerClient
im Stream Manager SDK, um mit dem Stream Manager zu interagieren. Wenn eine Komponente einen Stream erstellt oder einen Stream aktualisiert, übergibt sie ein MessageStreamDefinition
Objekt, das Stream-Eigenschaften darstellt, einschließlich der Exportdefinition. Das -ExportDefinition
Objekt enthält die für den Stream definierten Exportkonfigurationen. Stream Manager verwendet diese Exportkonfigurationen, um zu bestimmen, wo und wie der Stream exportiert werden soll.
Sie können null oder mehr Exportkonfigurationen für einen Stream definieren, einschließlich mehrerer Exportkonfigurationen für einen einzelnen Zieltyp. Sie können beispielsweise einen Stream in zwei AWS IoT Analytics Kanäle und einen Kinesis-Datenstrom exportieren.
Bei fehlgeschlagenen Exportversuchen versucht der Stream-Manager kontinuierlich, Daten AWS Cloud in Intervallen von bis zu fünf Minuten nach zu exportieren. Die Anzahl der Wiederholungsversuche hat kein maximales Limit.
Anmerkung
StreamManagerClient
bietet auch ein Ziel, 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ützte AWS Cloud Ziele
Sie sind für die Wartung dieser AWS Cloud Ressourcen verantwortlich.
AWS IoT Analytics-Kanäle
Stream Manager unterstützt automatische Exporte nach AWS IoT Analytics. AWS IoT Analytics ermöglicht Ihnen eine erweiterte Analyse Ihrer Daten, um Geschäftsentscheidungen zu treffen und Machine-Learning-Modelle zu verbessern. Weitere Informationen finden Sie unter Was ist AWS IoT Analytics? im AWS IoT Analytics -Benutzerhandbuch.
Im Stream Manager SDK verwenden Ihre Greengrass-Komponenten die , IoTAnalyticsConfig
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 Node.js SDK
Voraussetzungen
Für dieses Exportziel gelten die folgenden Anforderungen:
-
Zielkanäle in AWS IoT Analytics müssen sich im selben AWS-Konto und in demselben AWS-Region wie das Greengrass-Kerngerät befinden.
-
Der Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS muss der -
iotanalytics:BatchPutMessage
Berechtigung erlauben, Kanäle anzuvisieren. Beispielsweise:{ "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 auf -Ressourcen gewähren, z. B. durch die Verwendung eines Platzhalter-
*
Namensschemas. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien im IAM-Benutzerhandbuch.
Exportieren in AWS IoT Analytics
Um einen Stream zu erstellen, der nach exportiert wirdAWS IoT Analytics, erstellen Ihre Greengrass-Komponenten einen Stream mit einer Exportdefinition, die ein oder mehrere IoTAnalyticsConfig
Objekte enthält. Dieses Objekt definiert Exporteinstellungen wie Zielkanal, Batch-Größe, Batch-Intervall und Priorität.
Wenn Ihre Greengrass-Komponenten Daten von Geräten empfangen, hängen sie Nachrichten an, die einen Blob von Daten enthalten, an den Ziel-Stream an.
Anschließend exportiert Stream Manager die Daten basierend auf den Batch-Einstellungen und der Priorität, die in den Exportkonfigurationen des Streams definiert sind.
Amazon Kinesis-Datenströme
Stream Manager unterstützt automatische Exporte nach 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 MapReduce Cluster zu laden. Weitere Informationen finden Sie unter Was ist Amazon Kinesis Data Streams? im Amazon Kinesis-Entwicklerhandbuch.
Im Stream Manager SDK verwenden Ihre Greengrass-Komponenten die , KinesisConfig
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 Node.js SDK
Voraussetzungen
Für dieses Exportziel gelten die folgenden Anforderungen:
-
Zielstreams in Kinesis Data Streams müssen sich im selben AWS-Konto und im selben AWS-Region wie das Greengrass-Kerngerät befinden.
-
Der Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS muss der -
kinesis:PutRecords
Berechtigung das Ziel von Datenströmen erlauben. Beispielsweise:{ "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, z. B. durch die Verwendung eines Platzhalter-
*
Namensschemas. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien im IAM-Benutzerhandbuch.
Exportieren zu Kinesis Data Streams
Um einen Stream zu erstellen, der nach Kinesis Data Streams exportiert wird, erstellen Ihre Greengrass-Komponenten einen Stream mit einer Exportdefinition, die ein oder mehrere KinesisConfig
Objekte enthält. Dieses Objekt definiert Exporteinstellungen wie den Zieldatenstrom, die Batchgröße, das Batchintervall und die Priorität.
Wenn Ihre Greengrass-Komponenten Daten von Geräten empfangen, hängen sie Nachrichten an, die einen Blob von Daten enthalten, an den Ziel-Stream an. Anschließend exportiert Stream Manager die Daten basierend auf den Batch-Einstellungen und der Priorität, die in den Exportkonfigurationen des Streams definiert sind.
Stream Manager generiert eine eindeutige, zufällige UUID als Partitionsschlüssel für jeden Datensatz, der in Amazon Kinesis hochgeladen wird.
AWS IoT SiteWise Komponenteneigenschaften
Stream Manager unterstützt automatische Exporte nach AWS IoT SiteWise. AWS IoT SiteWise Mit können Sie Daten von Industrieanlagen erfassen, organisieren und analysieren. Weitere Informationen finden Sie unter Was ist AWS IoT SiteWise? im AWS IoT SiteWise -Benutzerhandbuch.
Im Stream Manager SDK verwenden Ihre Greengrass-Komponenten die , IoTSiteWiseConfig
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 Node.js SDK
Anmerkung
AWS bietet auch AWS IoT SiteWise Komponenten, die eine vorgefertigte Lösung bieten, mit der Sie Daten aus OPC-UA-Quellen streamen können. Weitere Informationen finden Sie unter SiteWise OPCIoT-UA-Kollektor.
Voraussetzungen
Für dieses Exportziel gelten die folgenden Anforderungen:
-
Die Eigenschaften der Zielkomponente in AWS IoT SiteWise müssen sich in derselben AWS-Konto und demselben AWS-Region wie das Greengrass-Kerngerät befinden.
Anmerkung
Eine Liste der AWS-Regionen, die AWS IoT SiteWise unterstützt, finden Sie unter -AWS IoT SiteWiseEndpunkte und -Kontingente in der AWS Allgemeinen Referenz zu .
-
Der Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS muss der -
iotsitewise:BatchPutAssetPropertyValue
Berechtigung erlauben, auf Komponenteneigenschaften abzuzielen. Die folgende Beispielrichtlinie verwendet den -iotsitewise:assetHierarchyPath
Bedingungsschlüssel, um Zugriff auf eine Ziel-Root-Komponente und ihre untergeordneten Elemente zu gewähren. Sie können dieCondition
aus der Richtlinie entfernen, um den Zugriff auf alle Ihre AWS IoT SiteWise Komponenten zu erlauben, oder ARNs einzelner Komponenten angeben.{ "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 auf -Ressourcen gewähren, z. B. durch die Verwendung eines Platzhalter-
*
Namensschemas. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien im IAM-Benutzerhandbuch.Wichtige Sicherheitsinformationen finden Sie unter - BatchPutAssetPropertyValue Autorisierung im AWS IoT SiteWise -Benutzerhandbuch.
Exportieren in AWS IoT SiteWise
Um einen Stream zu erstellen, der nach exportiert wirdAWS IoT SiteWise, erstellen Ihre Greengrass-Komponenten einen Stream mit einer Exportdefinition, die ein oder mehrere IoTSiteWiseConfig
Objekte enthält. Dieses Objekt definiert Exporteinstellungen wie Batchgröße, Batchintervall und Priorität.
Wenn Ihre Greengrass-Komponenten Komponenteneigenschaftsdaten von Geräten erhalten, hängen sie Nachrichten, die die Daten enthalten, an den Ziel-Stream an. Nachrichten sind JSON-serialisierte PutAssetPropertyValueEntry
Objekte, die Eigenschaftswerte für eine oder mehrere Komponenteneigenschaften enthalten. Weitere Informationen finden Sie unter Nachricht für AWS IoT SiteWise Exportziele anhängen.
Anmerkung
Wenn Sie Daten an sendenAWS IoT SiteWise, müssen Ihre Daten die Anforderungen der BatchPutAssetPropertyValue
Aktion erfüllen. Weitere Informationen finden Sie unter BatchPutAssetPropertyValue in der AWS IoT SiteWise-API-Referenz.
Anschließend exportiert 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 Greengrass-Komponentenlogik anpassen, um Ihre Exportstrategie zu entwerfen. Beispielsweise:
-
Legen Sie für Exporte nahezu in Echtzeit niedrige Batch-Größen- und Intervalleinstellungen fest und fügen Sie die Daten an den Stream an, wenn sie empfangen werden.
-
Um die Stapelverarbeitung zu optimieren, Bandbreitenbeschränkungen zu minimieren oder die Kosten zu minimieren, können Ihre Greengrass-Komponenten die timestamp-quality-value (TQV)-Datenpunkte, die für eine einzelne Komponenteneigenschaft empfangen wurden, bündeln, bevor die Daten an den Stream angehängt werden. Eine Strategie besteht darin, Einträge für bis zu 10 verschiedene Eigenschafts-Asset-Kombinationen oder Eigenschaftsaliasnamen in einer Nachricht zu sammeln, anstatt mehr als einen Eintrag für dieselbe Eigenschaft zu senden. Dies hilft dem Stream-Manager, die AWS IoT SiteWise Kontingente von einzuhalten.
Amazon S3-Objekte
Stream Manager unterstützt automatische Exporte nach Amazon S3. Sie können Amazon S3 verwenden, um große Datenmengen zu speichern und abzurufen. Weitere Informationen finden Sie unter Was ist Amazon S3? im Amazon Simple Storage Service-Entwicklerhandbuch.
Im Stream Manager SDK verwenden Ihre Greengrass-Komponenten die , S3ExportTaskExecutorConfig
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 Node.js SDK
Voraussetzungen
Für dieses Exportziel gelten die folgenden Anforderungen:
-
Ziel-Amazon S3-Buckets müssen sich in derselben AWS-Konto wie das Greengrass-Kerngerät befinden.
-
Wenn eine Lambda-Funktion, die im Greengrass-Container-Modus ausgeführt wird, Eingabedateien in ein Eingabedateiverzeichnis schreibt, müssen Sie das Verzeichnis als Volume im Container mit Schreibberechtigungen mounten. Dadurch wird sichergestellt, dass die Dateien in das Stammdateisystem geschrieben und für die Stream-Manager-Komponente sichtbar sind, die außerhalb des Containers ausgeführt wird.
-
Wenn eine Docker-Containerkomponente Eingabedateien in ein Eingabedateiverzeichnis schreibt, müssen Sie das Verzeichnis als Volume im Container mit Schreibberechtigungen mounten. Dadurch wird sichergestellt, dass die Dateien in das Stammdateisystem geschrieben und für die Stream-Manager-Komponente sichtbar sind, die außerhalb des Containers ausgeführt wird.
-
Der Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS muss die folgenden Berechtigungen für die Ziel-Buckets zulassen. Beispielsweise:
{ "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 auf -Ressourcen gewähren, z. B. durch die Verwendung eines Platzhalter-
*
Namensschemas. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien im IAM-Benutzerhandbuch.
Exportieren nach Amazon S3
Um einen Stream zu erstellen, der nach Amazon S3 exportiert wird, verwenden Ihre Greengrass-Komponenten das -S3ExportTaskExecutorConfig
Objekt, um die Exportrichtlinie zu konfigurieren. Die Richtlinie definiert Exporteinstellungen wie den Schwellenwert und die Priorität des mehrteiligen Uploads. Für Amazon S3-Exporte lädt der Stream-Manager Daten hoch, die er aus lokalen Dateien auf dem Core-Gerät liest. Um einen Upload zu initiieren, hängen Ihre Greengrass-Komponenten eine Exportaufgabe an den Ziel-Stream an. Die Exportaufgabe enthält Informationen über die Eingabedatei und das Amazon S3-Zielobjekt. Stream Manager führt Aufgaben in der Reihenfolge aus, in der sie an den Stream angehängt werden.
Anmerkung
Der Ziel-Bucket muss bereits in Ihrem vorhanden seinAWS-Konto. Wenn kein Objekt für den angegebenen Schlüssel vorhanden ist, erstellt Stream Manager das Objekt für Sie.
Stream Manager verwendet die Eigenschaft für den Schwellenwert für mehrteilige Uploads, die Einstellung für die minimale Teilegröße und die Größe der Eingabedatei, um zu bestimmen, wie Daten hochgeladen werden sollen. Der Schwellenwert für mehrteilige Uploads 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-Zielobjekte angeben, können gültige Java DateTimeFormatter!{timestamp:
Platzhaltern enthalten. 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 wie aufgelöstvalue
}my-key/2020/12/31/data.txt
.
my-key/!{timestamp:YYYY}/!{timestamp:MM}/!{timestamp:dd}/data.txt
Anmerkung
Wenn Sie den Exportstatus für einen Stream überwachen möchten, erstellen Sie zunächst einen Status-Stream und konfigurieren Sie dann den Export-Stream für dessen Verwendung. 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 Beispiel-Workflow zeigt, wie Sie Greengrass-Komponenten verwenden können, um diese Daten zu verwalten.
-
Ein lokaler Prozess empfängt Daten von Geräten oder Telefonie und schreibt die Daten dann in Dateien in einem Verzeichnis auf dem Core-Gerät. Dies sind die Eingabedateien für Stream Manager.
-
Eine Greengrass-Komponente scannt das Verzeichnis und fügt eine Exportaufgabe an den Ziel-Stream an, wenn eine neue Datei erstellt wird. Die Aufgabe ist ein JSON-serialisiertes
S3ExportTaskDefinition
Objekt, das die URL der Eingabedatei, den Amazon S3-Ziel-Bucket und -Schlüssel sowie optionale Benutzermetadaten angibt. -
Stream Manager liest die Eingabedatei und exportiert die Daten in der Reihenfolge der angehängten Aufgaben nach Amazon S3. Der Ziel-Bucket muss bereits in Ihrem vorhanden seinAWS-Konto. Wenn kein Objekt für den angegebenen Schlüssel vorhanden ist, erstellt Stream Manager das Objekt für Sie.
-
Die Greengrass-Komponente liest Nachrichten aus einem Statusstream, um den Exportstatus zu überwachen. Nach Abschluss der Exportaufgaben kann die Greengrass-Komponente die entsprechenden Eingabedateien löschen. Weitere Informationen finden Sie unter Überwachen von Exportaufgaben.
Überwachen von Exportaufgaben
Sie können Code erstellen, den IoT-Anwendungen verwenden, um den Status Ihrer Amazon S3-Exporte zu überwachen. Ihre Greengrass-Komponenten müssen einen Statusstream 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.
Erstellen Sie zunächst einen Stream, der als Statusstream verwendet werden soll. Sie können die Größe und die Aufbewahrungsrichtlinien für den Stream konfigurieren, um die Lebensdauer der Statusmeldungen zu steuern. Beispielsweise:
-
Setzen Sie
Persistence
aufMemory
, wenn Sie die Statusmeldungen nicht speichern möchten. -
Setzen Sie den Wert
StrategyOnFull
auf ,OverwriteOldestData
damit keine neuen Statusmeldungen verloren gehen.
Erstellen oder aktualisieren Sie dann den Exportstream, um den Statusstream zu verwenden. Legen Sie insbesondere die Statuskonfigurationseigenschaft der S3ExportTaskExecutorConfig
Exportkonfiguration des Streams fest. Diese Einstellung weist den Stream-Manager an, Statusmeldungen zu den Exportaufgaben in den Status-Stream zu schreiben. Geben Sie im StatusConfig
Objekt den Namen des Statusstreams und die Ausführlichkeitsstufe an. Die folgenden unterstützten Werte reichen von am wenigsten ausführlich (ERROR
) bis am ausführlichsten (TRACE
). Der Standardwert ist INFO
.
-
ERROR
-
WARN
-
INFO
-
DEBUG
-
TRACE
Der folgende Beispiel-Workflow zeigt, wie Greengrass-Komponenten einen Statusstream verwenden können, um den Exportstatus zu überwachen.
-
Wie im vorherigen Workflow beschrieben, hängt eine Greengrass-Komponente eine Exportaufgabe an einen Stream an, der so konfiguriert ist, dass Statusmeldungen über Exportaufgaben in einen Statusstream geschrieben werden. Die Append-Operation gibt eine Sequenznummer zurück, die die Aufgaben-ID darstellt.
-
Eine Greengrass-Komponente liest Nachrichten sequenziell aus dem Status-Stream und filtert dann die Nachrichten basierend auf dem Stream-Namen und der Aufgaben-ID oder basierend auf einer Exportaufgabeneigenschaft aus dem Nachrichtenkontext. Die Greengrass-Komponente kann beispielsweise nach der URL der Eingabedatei der Exportaufgabe filtern, die durch das
S3ExportTaskDefinition
Objekt im Nachrichtenkontext dargestellt wird.Die folgenden Statuscodes zeigen an, dass eine Exportaufgabe den Status „Abgeschlossen“ erreicht hat:
-
Success
. Der Upload wurde erfolgreich abgeschlossen. -
Failure
. Stream Manager ist auf einen Fehler gestoßen, z. B. ist der angegebene Bucket nicht vorhanden. Nachdem Sie das Problem behoben haben, können Sie die Exportaufgabe erneut an den Stream anhängen. -
Canceled
. Die Aufgabe wurde gestoppt, weil die Stream- oder Exportdefinition gelöscht wurde oder der time-to-live (TTL)-Zeitraum der Aufgabe abgelaufen ist.
Anmerkung
Die Aufgabe hat möglicherweise auch den Status
InProgress
oderWarning
. Stream Manager gibt Warnungen aus, wenn ein Ereignis einen Fehler zurückgibt, der sich nicht auf die Ausführung der Aufgabe auswirkt. Wenn beispielsweise ein teilweiser Upload nicht bereinigt werden kann, wird eine Warnung zurückgegeben. -
-
Nach Abschluss der Exportaufgaben kann die Greengrass-Komponente die entsprechenden Eingabedateien löschen.
Das folgende Beispiel zeigt, wie eine Greengrass-Komponente Statusmeldungen lesen und verarbeiten kann.