Firehose - AWS IoT Greengrass

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-Lieferdatenströme 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 Developer Guide.

Um mit dieser Komponente in einem Kinesis-Zustellungsstream zu veröffentlichen, veröffentlichen Sie eine Nachricht zu einem Thema, das diese Komponente abonniert. Standardmäßig abonniert diese Komponente die Themen „Publizieren/Abonnieren“ kinesisfirehose/message und „kinesisfirehose/message/binary/#Lokales Veröffentlichen“. 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.

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-Kern 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-Kerngeräten installiert werden.

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

  • Ihr Kerngerät muss die Anforderungen für die Ausführung von Lambda-Funktionen erfüllen. 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.

  • Python-Version 3.7 wurde auf dem Core-Gerät installiert und zur PATH Umgebungsvariablen hinzugefügt.

  • Die Greengrass-Geräterolle muss die firehose:PutRecordBatch Aktionen firehose:PutRecord und zulassen, wie in der folgenden IAM Beispielrichtlinie gezeigt.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/stream-name" ] } ] }

    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 erhalten, müssen Sie bei der Bereitstellung dieser Komponente das folgende Konfigurationsupdate für die ältere Abonnement-Router-Komponente (aws.greengrass.LegacySubscriptionRouter) zusammenführen. Diese Konfiguration gibt das Thema an, zu dem diese Komponente Antworten veröffentlicht.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "component:aws.greengrass.KinesisFirehose", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    • Ersetzen region mit dem AWS-Region , das Sie verwenden.

    • Ersetzen version mit der Version der Lambda-Funktion, die diese Komponente ausführt. Um die Version der Lambda-Funktion zu finden, müssen Sie sich das Rezept für die Version dieser Komponente ansehen, die Sie bereitstellen möchten. Öffnen Sie die Detailseite dieser Komponente in der AWS IoT Greengrass Konsole und suchen Sie nach dem Schlüssel-Wert-Paar der Lambda-Funktion. Dieses Schlüssel-Wert-Paar enthält den Namen und die Version der Lambda-Funktion.

    Wichtig

    Sie müssen die Lambda-Funktionsversion auf dem älteren Abonnement-Router jedes Mal aktualisieren, wenn Sie diese Komponente bereitstellen. Dadurch wird sichergestellt, dass Sie die richtige Lambda-Funktionsversion für die Komponentenversion verwenden, die Sie bereitstellen.

    Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.

  • Die Firehose-Komponente wird für die Ausführung in a VPC unterstützt. Um diese Komponente in a bereitzustellenVPC, ist Folgendes erforderlich.

    • Die Firehose-Komponente muss über eine Konnektivität verfügenfirehose.region.amazonaws.com, zu der der VPC com.amazonaws.region.kinesis-firehose Endpunkt ist.

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 Zulassen von Gerätedatenverkehr über einen Proxy oder eine Firewall.

Endpunkt Port Erforderlich Beschreibung

firehose.region.amazonaws.com

443 Ja

Laden Sie Daten auf Firehose hoch.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. 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 auch die Abhängigkeiten für jede Version der Komponente in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.1.8

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.8 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.14.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.13.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.12.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.11.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.10.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.9.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.2

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.8.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.7.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.8 - 2.1.0

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.0.8 und 2.1.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.6.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.5.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.4.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.3.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.2.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.3 <2.1.0 Hart
Lambda-Launcher >=1.0.0 Hart
Lambda-Laufzeiten >=1,0.0 Weich
Token-Austauschdienst >=1.0.0 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zu den Komponentenrezepten.

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 Standard-Firehose-Lieferstream, in den die Komponente Daten sendet. Sie können den Zielstream mit der delivery_stream_arn Eigenschaft 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 Anzahl von Sekunden, die gewartet werden soll, bevor die Komponente Batchdaten in Firehose veröffentlicht. Um die Komponente so zu konfigurieren, dass sie Metriken so veröffentlicht, wie sie sie empfängt, d. h. ohne Batchverarbeitung, geben Sie Folgendes an. 0

Dieser 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 wird nicht in einer isolierten Laufzeitumgebung ausgeführt.

  • GreengrassContainer— Die Komponente läuft in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers.

Standard: GreengrassContainer

containerParams

(Optional) Ein Objekt, das die Container-Parameter für diese Komponente enthält. Die Komponente verwendet diese Parameter, wenn Sie GreengrassContainer fü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 lokale Themen zum Veröffentlichen/Abonnieren abonniert.

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 Typ der Veröffentlichungs-/Abonnementnachrichten, die diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:

  • PUB_SUB — Abonnieren Sie lokale Veröffentlichen/Abonnement-Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine Platzhalter enthalten. MQTT Weitere Informationen zum Senden von Nachrichten von einer benutzerdefinierten Komponente aus, wenn Sie diese Option angeben, finden Sie unterLokale Nachrichten veröffentlichen/abonnieren.

  • IOT_CORE— AWS IoT Core MQTT Nachrichten abonnieren. Wenn Sie diese Option wählen, kann das Thema MQTT Platzhalter enthalten. Weitere Informationen zum Senden von Nachrichten aus benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unterNachrichten veröffentlichen/abonnieren AWS IoT Core MQTT.

Standard: PUB_SUB

topic

(Optional) Das Thema, das die Komponente abonniert, um Nachrichten zu empfangen. Wenn Sie IotCore für angebentype, können Sie in diesem MQTT Thema Platzhalter (+und#) verwenden.

Beispiel: Aktualisierung der Konfigurationszusammenführung (Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
Beispiel: Aktualisierung der Konfigurationszusammenführung (kein Container-Modus)
{ "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-Lieferstream. Die Komponente akzeptiert zwei Arten von Eingabedaten:

  • JSONDaten zum kinesisfirehose/message Thema.

  • Binäre Daten zum kinesisfirehose/message/binary/#-Thema.

Standardthema für JSON Daten (lokal veröffentlichen/abonnieren): 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: object der 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 id Eigenschaft im Antwortobjekt auf diesen Wert.

Typ: string

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 (lokales Veröffentlichen/Abonnieren): 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 an kinesisfirehose/message/binary/request123 veröffentlichen, wird die Eigenschaft id im Antwortobjekt auf request123 gesetzt.

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 angeben. Weitere Informationen zum Abonnieren von Nachrichten zu diesem Thema in Ihren benutzerdefinierten Komponenten finden Sie unterNachrichten veröffentlichen/abonnieren AWS IoT Core MQTT.

Standardthema (AWS IoT Core MQTT): kinesisfirehose/message/status

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 erkennt, der erneut versucht werden kann, z. B. einen Verbindungsfehler, versucht sie erneut, im nächsten Batch zu veröffentlichen.

Lokale Protokolldatei

Diese Komponente verwendet die folgende Protokolldatei.

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
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. /greengrass/v2Ersetzen Sie durch den Pfad zum AWS IoT Greengrass Stammordner.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log

Lizenzen

Diese Komponente umfasst die folgende Software/Lizenzierung von Drittanbietern:

Diese Komponente wird im Rahmen der Greengrass Core Software-Lizenzvereinbarung veröffentlicht.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

Version

Änderungen

2.1.8

Die Version wurde für die Version 2.13.0 von Greengrass Nucleus aktualisiert.

2.1.7

Die Version wurde für die Version 2.12.0 von Greengrass Nucleus aktualisiert.

2.1.6

Die Version wurde für die Version 2.11.0 von Greengrass Nucleus aktualisiert.

2.1.5

Die Version wurde für die Version 2.10.0 von Greengrass Nucleus aktualisiert.

2.1.4

Die Version wurde für die Version 2.9.0 von Greengrass Nucleus aktualisiert.

2.1.3

Die Version wurde für die Version 2.8.0 von Greengrass Nucleus aktualisiert.

2.1.2

Die Version wurde für die Version 2.7.0 von Greengrass Nucleus aktualisiert.

2.1.1

Die Version wurde für die Version 2.6.0 von Greengrass Nucleus aktualisiert.

2.1.0

Neue Features

2.0.8

Die Version wurde für die Version 2.5.0 von Greengrass Nucleus aktualisiert.

2.0.7

Die Version wurde für die Version 2.4.0 von Greengrass Nucleus aktualisiert.

2.0.6

Die Version wurde für die Version 2.3.0 von Greengrass Nucleus aktualisiert.

2.0.5

Die Version wurde für die Version 2.2.0 von Greengrass Nucleus aktualisiert.

2.0.4

Die Version wurde für die Version 2.1.0 von Greengrass Nucleus aktualisiert.

2.0.3

Erste Version

Weitere Informationen finden Sie auch unter