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.
Firehose
Die Firehose-Komponente (aws.greengrass.KinesisFirehose) veröffentlicht Daten über Amazon Data Firehose-Lieferstreams an Ziele wie Amazon S3, Amazon Redshift und Amazon Service. OpenSearch Weitere Informationen finden Sie unter Was ist Amazon Data Firehose? im Amazon Data Firehose-Entwicklerhandbuch.
Um diese Komponente in einem Kinesis-Lieferstream zu veröffentlichen, veröffentlichen Sie eine Nachricht zu einem Thema, für das diese Komponente abonniert wurde. Standardmäßig abonniert diese Komponente die lokalen Themen kinesisfirehose/message und kinesisfirehose/message/binary/#. publish/subscribe Sie können andere Themen, einschließlich AWS IoT Core MQTT-Themen, angeben, wenn Sie diese Komponente bereitstellen.
Anmerkung
Diese Komponente bietet ähnliche Funktionen wie der Firehose-Anschluss in AWS IoT Greengrass V1. Weitere Informationen finden Sie unter Firehose-Anschluss im AWS IoT Greengrass V1-Entwicklerhandbuch.
Themen
Versionen
Diese Komponente hat die folgenden Versionen:
-
2.1.x
-
2.0.x
Typ
Diese Komponente ist eine Lambda-Komponente ()aws.greengrass.lambda. Der Greengrass-Nukleus führt die Lambda-Funktion dieser Komponente mithilfe der Lambda-Launcher-Komponente aus.
Weitere Informationen finden Sie unter Komponententypen.
Betriebssystem
Diese Komponente kann nur auf Linux-Core-Geräten installiert werden.
Voraussetzungen
Für diese Komponente gelten die folgenden Anforderungen:
-
Ihr Kerngerät muss die Anforderungen erfüllen, um Lambda-Funktionen ausführen zu können. Wenn Sie möchten, dass das Kerngerät containerisierte Lambda-Funktionen ausführt, muss das Gerät die entsprechenden Anforderungen erfüllen. Weitere Informationen finden Sie unter Anforderungen an die Lambda-Funktion.
-
https://www.python.org/
Python-Version 3.7 wurde auf dem Kerngerät installiert und der PATH-Umgebungsvariablen hinzugefügt. -
Die Greengrass-Geräterolle muss die
firehose:PutRecordBatchAktionenfirehose:PutRecordund zulassen, wie im folgenden Beispiel für eine IAM-Richtlinie gezeigt.Sie können den Standardzustellungsstream in der Nutzlast der Eingabenachricht für diese Komponente dynamisch überschreiben. Wenn Ihre Anwendung diese Funktion verwendet, muss die IAM-Richtlinie alle Zielstreams als Ressourcen enthalten. Sie können Ressourcen granularen oder bedingten Zugriff gewähren (etwa mit einem Benennungsschema mit Platzhaltern
*). -
Um Ausgabedaten von dieser Komponente zu empfangen, müssen Sie das folgende Konfigurationsupdate für die ältere Abonnement-Router-Komponente (
aws.greengrass.LegacySubscriptionRouter) zusammenführen, wenn Sie diese Komponente bereitstellen. Diese Konfiguration gibt das Thema an, zu dem diese Komponente Antworten veröffentlicht.Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.
-
Die Ausführung der Firehose-Komponente wird in einer VPC unterstützt. Um diese Komponente in einer VPC bereitzustellen, ist Folgendes erforderlich.
-
Die Firehose-Komponente muss über eine Konnektivität verfügen, zu
firehose---region.amazonaws.com.rproxy.govskope.cader der VPC-Endpunkt von lautet.com.amazonaws.region.kinesis-firehose
-
Endpunkte und Ports
Diese Komponente muss in der Lage sein, ausgehende Anfragen an die folgenden Endpunkte und Ports auszuführen, zusätzlich zu den Endpunkten und Ports, die für den Basisbetrieb erforderlich sind. Weitere Informationen finden Sie unter Geräteverkehr über einen Proxy oder eine Firewall zulassen.
| Endpoint | Port | Erforderlich | Description |
|---|---|---|---|
|
|
443 | Ja |
Laden Sie Daten auf Firehose hoch. |
Abhängigkeiten
Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können die Abhängigkeiten für jede Version der Komponente auch in der AWS IoT Greengrass Konsole
Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Komponentenrezeptreferenz.
Konfiguration
Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.
Anmerkung
Die Standardkonfiguration dieser Komponente umfasst Lambda-Funktionsparameter. Wir empfehlen, dass Sie nur die folgenden Parameter bearbeiten, um diese Komponente auf Ihren Geräten zu konfigurieren.
lambdaParams-
Ein Objekt, das die Parameter für die Lambda-Funktion dieser Komponente enthält. Dieses Objekt enthält die folgenden Informationen:
EnvironmentVariables-
Ein Objekt, das die Parameter der Lambda-Funktion enthält. Dieses Objekt enthält die folgenden Informationen:
DEFAULT_DELIVERY_STREAM_ARN-
Der ARN des standardmäßigen Firehose-Lieferstreams, an den die Komponente Daten sendet. Sie können den Zielstream mit der
delivery_stream_arnEigenschaft in der Nutzlast der Eingabenachricht überschreiben.Anmerkung
Die zentrale Geräterolle muss die erforderlichen Aktionen für alle Zielzustellungsstreams zulassen. Weitere Informationen finden Sie unter Voraussetzungen.
PUBLISH_INTERVAL-
(Optional) Die maximale Wartezeit in Sekunden, bis die Komponente Batchdaten in Firehose veröffentlicht. Um die Komponente so zu konfigurieren, dass sie Metriken so veröffentlicht, wie sie sie empfängt, also ohne Batching, geben Sie Folgendes an.
0Dieser Wert kann maximal 900 Sekunden betragen.
Standard: 10 Sekunden
DELIVERY_STREAM_QUEUE_SIZE-
(Optional) Die maximale Anzahl von Datensätzen, die im Speicher aufbewahrt werden sollen, bevor die Komponente neue Datensätze für denselben Lieferstream zurückweist.
Dieser Wert muss mindestens 2.000 Datensätze betragen.
Standard: 5.000 Datensätze
containerMode-
(Optional) Der Containerisierungsmodus für diese Komponente. Wählen Sie aus den folgenden Optionen aus:
-
NoContainer— Die Komponente läuft nicht in einer isolierten Laufzeitumgebung. -
GreengrassContainer— Die Komponente wird in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers ausgeführt.
Standard:
GreengrassContainer -
containerParams-
(Optional) Ein Objekt, das die Containerparameter für diese Komponente enthält. Die Komponente verwendet diese Parameter, wenn Sie
GreengrassContainerfür angebencontainerMode.Dieses Objekt enthält die folgenden Informationen:
memorySize-
(Optional) Die Speichermenge (in Kilobyte), die der Komponente zugewiesen werden soll.
Der Standardwert ist 64 MB (65.535 KB).
pubsubTopics-
(Optional) Ein Objekt, das die Themen enthält, in denen die Komponente den Empfang von Nachrichten abonniert. Sie können jedes Thema angeben und angeben, ob die Komponente MQTT-Themen von AWS IoT Core oder lokalen Themen abonniert. publish/subscribe
Dieses Objekt enthält die folgenden Informationen:
0— Dies ist ein Array-Index als Zeichenfolge.-
Ein Objekt, das die folgenden Informationen enthält:
type-
(Optional) Der publish/subscribe Nachrichtentyp, den diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:
-
PUB_SUB— Abonnieren Sie lokale publish/subscribe Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine MQTT-Platzhalter enthalten. Weitere Hinweise zum Senden von Nachrichten aus einer benutzerdefinierten Komponente, wenn Sie diese Option angeben, finden Sie unter. Lokale Nachrichten veröffentlichen/abonnieren -
IOT_CORE— Abonnieren Sie AWS IoT Core MQTT-Nachrichten. Wenn Sie diese Option wählen, kann das Thema MQTT-Platzhalter enthalten. Weitere Hinweise zum Senden von Nachrichten von benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unter. Publish/subscribe AWS IoT Core MQTT-Nachrichten
Standard:
PUB_SUB -
topic-
(Optional) Das Thema, für das die Komponente den Empfang von Nachrichten abonniert. Wenn Sie
IotCorefür angebentype, können Sie in diesem Thema MQTT-Platzhalter (+und#) verwenden.
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (kein Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }
Eingabedaten
Diese Komponente akzeptiert Stream-Inhalte zu den folgenden Themen und sendet die Inhalte an den Ziel-Delivery-Stream. Die Komponente akzeptiert zwei Arten von Eingabedaten:
-
JSON-Daten zum
kinesisfirehose/message-Thema. -
Binäre Daten zum
kinesisfirehose/message/binary/#-Thema.
- Standardthema für JSON-Daten (lokal publish/subscribe):
kinesisfirehose/message -
Die Nachricht akzeptiert die folgenden Eigenschaften. Eingabenachrichten müssen im JSON-Format vorliegen.
request-
Die zu sendenden Daten an den Lieferstrom und den Ziel-Lieferstrom, falls sie sich vom Standard-Stream unterscheiden.
Typ:
objectder die folgenden Informationen enthält:data-
Die Daten, die an den Lieferstrom gesendet werden sollen.
Typ:
string delivery_stream_arn-
(Optional) Der ARN des Firehose-Ziel-Lieferstreams. Geben Sie diese Eigenschaft an, um den Standard-Lieferstream zu überschreiben.
Typ:
string
id-
Eine willkürliche ID für die Anforderung. Verwenden Sie diese Eigenschaft, um eine Eingabeanforderung einer Ausgabeantwort zuzuordnen. Wenn Sie diese Eigenschaft angeben, setzt die Komponente die
idEigenschaft im Antwortobjekt auf diesen Wert.Typ:
string
Beispiel Beispieleingabe
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" } - Standardthema für Binärdaten (lokal publish/subscribe):
kinesisfirehose/message/binary/# -
Verwenden Sie dieses Thema, um eine Nachricht zu senden, die binäre Daten enthält. Die Komponente analysiert keine Binärdaten. Die Komponente streamt die Daten unverändert.
Um die Eingabeaufforderung einer Ausgabeaufgabe zuzuordnen, ersetzen Sie den Platzhalter
#im Meldungsthema durch eine beliebige Anforderungs-ID. Wenn Sie beispielsweise eine Nachricht ankinesisfirehose/message/binary/request123veröffentlichen, wird die Eigenschaftidim Antwortobjekt aufrequest123gesetzt.Wenn Sie eine Anfrage nicht auf eine Antwort abbilden möchten, können Sie Ihre Nachrichten unter
kinesisfirehose/message/binary/veröffentlichen. Achten Sie darauf, den abschließenden Schrägstrich ()/einzufügen.
Ausgabedaten
Diese Komponente veröffentlicht standardmäßig Antworten als Ausgabedaten zum folgenden MQTT-Thema. Sie müssen dieses Thema subject in der Konfiguration für die ältere Abonnement-Router-Komponente als das angeben. Weitere Informationen zum Abonnieren von Nachrichten zu diesem Thema in Ihren benutzerdefinierten Komponenten finden Sie unterPublish/subscribe AWS IoT Core MQTT-Nachrichten.
Standardthema (AWS IoT Core MQTT): kinesisfirehose/message/status
Beispiel Beispielausgabe
Die Antwort enthält den Status jedes im Stapel gesendeten Datensatzes.
{ "response": [ { "ErrorCode": "error", "ErrorMessage": "test error", "id": "request123", "status": "fail" }, { "firehose_record_id": "xyz2", "id": "request456", "status": "success" }, { "firehose_record_id": "xyz3", "id": "request890", "status": "success" } ] }
Anmerkung
Wenn die Komponente einen Fehler feststellt, der erneut versucht werden kann, z. B. einen Verbindungsfehler, versucht sie die Veröffentlichung im nächsten Batch erneut.
Lokale Protokolldatei
Diese Komponente verwendet die folgende Protokolldatei.
/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
Um die Protokolle dieser Komponente einzusehen
-
Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen.
Ersetzen Sie es durch den Pfad zum AWS IoT Greengrass Stammordner./greengrass/v2sudo tail -f/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
Lizenzen
Diese Komponente umfasst die folgenden Drittanbieter software/licensing:
-
AWS SDK für Python (Boto3)
/Apache-Lizenz 2.0 -
botocore
/Apache-Lizenz 2.0 -
dateutil
/PSF-Lizenz -
docutils
/BSD-Lizenz, GNU General Public License (GPL), Python Software Foundation License, Public Domain -
jmespath
/MIT-Lizenz -
s3transfer
/Apache-Lizenz 2.0 -
urllib3
/MIT-Lizenz
Diese Komponente wird im Rahmen der Greengrass Core Software-Lizenzvereinbarung
Änderungsprotokoll
In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.
|
Version |
Änderungen |
|---|---|
|
2.1.10 |
Die Version wurde für die Greengrass Nucleus-Version 2.15.0 aktualisiert. |
|
2.1.9 |
Version für Greengrass Nucleus Version 2.14.0 aktualisiert. |
|
2.1.8 |
Die Version wurde für die Greengrass Nucleus-Version 2.13.0 aktualisiert. |
|
2.1.7 |
Die Version wurde für die Greengrass Nucleus-Version 2.12.0 aktualisiert. |
|
2.1.6 |
Die Version wurde für die Greengrass Nucleus-Version 2.11.0 aktualisiert. |
|
2.1.5 |
Die Version wurde für die Greengrass Nucleus-Version 2.10.0 aktualisiert. |
|
2.1.4 |
Die Version wurde für die Greengrass Nucleus-Version 2.9.0 aktualisiert. |
|
2.1.3 |
Die Version wurde für die Greengrass Nucleus-Version 2.8.0 aktualisiert. |
|
2.1.2 |
Version für die Greengrass Nucleus-Version 2.7.0 aktualisiert. |
|
2.1.1 |
Die Version wurde für die Greengrass Nucleus-Version 2.6.0 aktualisiert. |
|
2.1.0 |
|
|
2.0.8 |
Version für Greengrass Nucleus Version 2.5.0 aktualisiert. |
|
2.0.7 |
Die Version wurde für die Greengrass Nucleus-Version 2.4.0 aktualisiert. |
|
2.0.6 |
Die Version wurde für die Greengrass Nucleus-Version 2.3.0 aktualisiert. |
|
2.0.5 |
Die Version wurde für die Greengrass Nucleus-Version 2.2.0 aktualisiert. |
|
2.0.4 |
Die Version wurde für die Greengrass Nucleus-Version 2.1.0 aktualisiert. |
|
2.0.3 |
Erste Version |
Weitere Informationen finden Sie auch unter
-
Was ist Amazon Data Firehose? im Amazon Data Firehose-Entwicklerhandbuch