Kinesis Firehose - AWS IoT Greengrass

AWS IoT Greengrass Version 1 hat am 30. Juni 2023 in die Phase der verlängerten Lebensdauer aufgenommen. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie . Nach diesem Datum AWS IoT Greengrass V1 wurden keine Updates veröffentlicht, die Funktionen, Verbesserungen, Fehlerbehebungen oder Sicherheitspatches bereitstellen. Geräte, die auf ausgeführt AWS IoT Greengrass V1 werden, werden nicht unterbrochen und werden weiterhin betrieben und eine Verbindung zur Cloud herstellen. Wir empfehlen dringend, zu zu migrieren AWS IoT Greengrass Version 2, was erhebliche neue Funktionen und Unterstützung für zusätzliche Plattformen hinzufügt.

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.

Kinesis Firehose

Der Kinesis-Firehose-Konnektor veröffentlicht Daten über einen Amazon-Data-Firehose-Bereitstellungsdatenstrom an Ziele wie Amazon S3, Amazon Redshift oder Amazon OpenSearch Service.

Dieser Konnektor ist ein Datenproduzent für einen Kinesis-Bereitstellungsdatenstrom. Er empfängt Eingabedaten zu einem MQTT-Thema und sendet die Daten an einen angegebenen Bereitstellungs-Stream. Der Bereitstellungs-Stream sendet dann den Datensatz an das konfigurierte Ziel (z. B. einen S3-Bucket).

Dieser Konnektor hat die folgenden Versionen.

Version

ARN

5

arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/5

4

arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/4

3

arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/3

2

arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/2

1

arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/1

Informationen über Versionsänderungen finden Sie im Änderungsprotokoll.

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

Version 4 - 5
  • AWS IoT Greengrass Core-Software v1.9.3 oder höher.

  • Python Version 3.7 oder 3.8 ist auf dem Core-Gerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python-3.7-Installationsordner zu den installierten Python-3.8-Binärdateien zu erstellen.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • Ein konfigurierter Kinesis-Bereitstellungs-Stream. Weitere Informationen finden Sie unter Erstellen eines Amazon-Data-Firehose-Bereitstellungsdatenstroms im Amazon Kinesis Firehose-Entwicklerhandbuch.

  • Die Greengrass-Gruppenrolle, die so konfiguriert ist, dass sie die firehose:PutRecordBatch Aktionen firehose:PutRecord und für den Zielbereitstellungsdatenstrom zulässt, wie in der folgenden Beispiel-IAM-Richtlinie gezeigt.

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

    Mit diesem Konnektor können Sie den standardmäßigen Bereitstellungs-Stream in der Nutzlast der Input-Message dynamisch überschreiben. Wenn Ihre Implementierung diese Funktion verwendet, sollte die IAM-Richtlinie alle Zielstreams als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

Versions 2 - 3
  • AWS IoT Greengrass Core-Software v1.7 oder höher.

  • Python Version 2.7 ist auf dem Core-Gerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • Ein konfigurierter Kinesis-Bereitstellungs-Stream. Weitere Informationen finden Sie unter Erstellen eines Amazon-Data-Firehose-Bereitstellungsdatenstroms im Amazon Kinesis Firehose-Entwicklerhandbuch.

  • Die Greengrass-Gruppenrolle, die so konfiguriert ist, dass die firehose:PutRecordBatch Aktionen firehose:PutRecord und im Zielbereitstellungsdatenstrom zugelassen werden, wie in der folgenden Beispiel-IAM-Richtlinie gezeigt.

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

    Mit diesem Konnektor können Sie den standardmäßigen Bereitstellungs-Stream in der Nutzlast der Input-Message dynamisch überschreiben. Wenn Ihre Implementierung diese Funktion verwendet, sollte die IAM-Richtlinie alle Zielstreams als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

Version 1
  • AWS IoT Greengrass Core-Software v1.7 oder höher.

  • Python Version 2.7 ist auf dem Core-Gerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • Ein konfigurierter Kinesis-Bereitstellungs-Stream. Weitere Informationen finden Sie unter Erstellen eines Amazon-Data-Firehose-Bereitstellungsdatenstroms im Amazon Kinesis Firehose-Entwicklerhandbuch.

  • Die Greengrass-Gruppenrolle, die so konfiguriert ist, dass sie die firehose:PutRecord Aktion im Zielbereitstellungsdatenstrom zulässt, wie in der folgenden Beispiel-IAM-Richtlinie gezeigt.

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

    Mit diesem Konnektor können Sie den standardmäßigen Bereitstellungs-Stream in der Nutzlast der Input-Message dynamisch überschreiben. Wenn Ihre Implementierung diese Funktion verwendet, sollte die IAM-Richtlinie alle Zielstreams als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

Connector-Parameter

Dieser Konnektor stellt die folgenden Parameter bereit:

Versions 5
DefaultDeliveryStreamArn

Der ARN des standardmäßigen Firehose-Bereitstellungsdatenstroms, an den Daten gesendet werden sollen. Der Ziel-Stream kann durch die Eigenschaft delivery_stream_arn in der Nutzlast der Eingangsnachricht überschrieben werden.

Anmerkung

Die Gruppenrolle muss die entsprechenden Aktionen für alle Zielbereitstellungsströme ermöglichen. Weitere Informationen finden Sie unter Voraussetzungen.

Anzeigename in der AWS IoT Konsole: Standard-ARN des Bereitstellungsdatenstroms

Erforderlich: true

Typ: string

Gültiges Muster: arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$

DeliveryStreamQueueSize

Die maximale Anzahl der im Speicher behaltenen Datensätze, bevor neue Datensätze für den gleichen Bereitstellungsstrom abgelehnt werden. Der minimale Wert beträgt 2000.

Anzeigename in der AWS IoT Konsole: Maximale Anzahl von Datensätzen, die gepuffert werden sollen (pro Stream)

Erforderlich: true

Typ: string

Gültiges Muster: ^([2-9]\\d{3}|[1-9]\\d{4,})$

MemorySize

Die Speichergröße (in KB), die diesem Konnektor zugewiesen werden soll.

Anzeigename in der AWS IoT Konsole: Speichergröße

Erforderlich: true

Typ: string

Gültiges Muster: ^[0-9]+$

PublishInterval

Das Intervall (in Sekunden) für die Veröffentlichung von Datensätzen in Firehose. Setzen Sie diesen Wert auf 0, um die Stapelverarbeitung zu deaktivieren.

Anzeigename in der AWS IoT Konsole: Publish interval

Erforderlich: true

Typ: string

Zulässige Werte: 0 - 900

Gültiges Muster: [0-9]|[1-9]\\d|[1-9]\\d\\d|900

IsolationMode

Der Containerisierungsmodus für diesen Konnektor. Der Standardwert ist GreengrassContainer, was bedeutet, dass der Konnektor in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers ausgeführt wird.

Anmerkung

Die Standardeinstellung für Containerisierung für die Gruppe gilt nicht für Konnektoren.

Anzeigename in der AWS IoT Konsole: Container-Isolationsmodus

Erforderlich: false

Typ: string

Gültige Werte: GreengrassContainer oder NoContainer.

Gültiges Muster: ^NoContainer$|^GreengrassContainer$

Versions 2 - 4
DefaultDeliveryStreamArn

Der ARN des standardmäßigen Firehose-Bereitstellungsdatenstroms, an den Daten gesendet werden sollen. Der Ziel-Stream kann durch die Eigenschaft delivery_stream_arn in der Nutzlast der Eingangsnachricht überschrieben werden.

Anmerkung

Die Gruppenrolle muss die entsprechenden Aktionen für alle Zielbereitstellungsströme ermöglichen. Weitere Informationen finden Sie unter Voraussetzungen.

Anzeigename in der AWS IoT Konsole: Standard-ARN des Bereitstellungsdatenstroms

Erforderlich: true

Typ: string

Gültiges Muster: arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$

DeliveryStreamQueueSize

Die maximale Anzahl der im Speicher behaltenen Datensätze, bevor neue Datensätze für den gleichen Bereitstellungsstrom abgelehnt werden. Der minimale Wert beträgt 2000.

Anzeigename in der AWS IoT Konsole: Maximale Anzahl von Datensätzen, die gepuffert werden sollen (pro Stream)

Erforderlich: true

Typ: string

Gültiges Muster: ^([2-9]\\d{3}|[1-9]\\d{4,})$

MemorySize

Die Speichergröße (in KB), die diesem Konnektor zugewiesen werden soll.

Anzeigename in der AWS IoT Konsole: Speichergröße

Erforderlich: true

Typ: string

Gültiges Muster: ^[0-9]+$

PublishInterval

Das Intervall (in Sekunden) für die Veröffentlichung von Datensätzen in Firehose. Setzen Sie diesen Wert auf 0, um die Stapelverarbeitung zu deaktivieren.

Anzeigename in der AWS IoT Konsole: Publish interval

Erforderlich: true

Typ: string

Zulässige Werte: 0 - 900

Gültiges Muster: [0-9]|[1-9]\\d|[1-9]\\d\\d|900

Version 1
DefaultDeliveryStreamArn

Der ARN des standardmäßigen Firehose-Bereitstellungsdatenstroms, an den Daten gesendet werden sollen. Der Ziel-Stream kann durch die Eigenschaft delivery_stream_arn in der Nutzlast der Eingangsnachricht überschrieben werden.

Anmerkung

Die Gruppenrolle muss die entsprechenden Aktionen für alle Zielbereitstellungsströme ermöglichen. Weitere Informationen finden Sie unter Voraussetzungen.

Anzeigename in der AWS IoT Konsole: Standard-ARN des Bereitstellungsdatenstroms

Erforderlich: true

Typ: string

Gültiges Muster: arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende CLI-Befehl erstellt eine ConnectorDefinition mit einer Anfangsversion, die den Konnektor enthält.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyKinesisFirehoseConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/KinesisFirehose/versions/5", "Parameters": { "DefaultDeliveryStreamArn": "arn:aws:firehose:region:account-id:deliverystream/stream-name", "DeliveryStreamQueueSize": "5000", "MemorySize": "65535", "PublishInterval": "10", "IsolationMode" : "GreengrassContainer" } } ] }'

In der AWS IoT Greengrass -Konsole können Sie einen Connector über die Seite Connectors der Gruppe hinzufügen. Weitere Informationen finden Sie unter Erste Schritte mit Greengrass-Konnektoren (Konsole).

Eingabedaten

Dieser Konnektor akzeptiert Stream-Inhalte zu MQTT-Themen und sendet die Inhalte dann an den Ziel-Bereitstellungs-Stream. Er akzeptiert zwei Arten von Eingabedaten:

  • JSON-Daten zum kinesisfirehose/message-Thema.

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

Versions 2 - 5
Themenfilter: kinesisfirehose/message

Verwenden Sie dieses Thema, um eine Nachricht zu senden, die JSON-Daten enthält.

Nachrichten-Eigenschaften
request

Die zu sendenden Daten an den Lieferstrom und den Ziel-Lieferstrom, falls sie sich vom Standard-Stream unterscheiden.

Erforderlich: true

Typ: object, der die folgenden Eigenschaften enthält:

data

Die Daten, die an den Lieferstrom gesendet werden sollen.

Erforderlich: true

Typ: string

delivery_stream_arn

Der ARN des Ziel-Kinesis-Bereitstellungs-Streams. Fügen Sie diese Eigenschaft hinzu, um den standardmäßigen Lieferstrom zu überschreiben.

Erforderlich: false

Typ: string

Gültiges Muster: arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$

id

Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen. Wenn angegeben, wird die Eigenschaft id im Antwortobjekt auf diesen Wert gesetzt. Wenn Sie diese Funktion nicht verwenden, können Sie diese Eigenschaft weglassen oder eine leere Zeichenkette angeben.

Erforderlich: false

Typ: string

Gültiges Muster: .*

Beispieleingabe
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }

 

Themenfilter: kinesisfirehose/message/binary/#

Verwenden Sie dieses Thema, um eine Nachricht zu senden, die binäre Daten enthält. Der Konnektor analysiert keine binären Daten. Die Daten werden unverändert gestreamt.

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, dass Sie den nachlaufenden Schrägstrich verwenden.

Version 1
Themenfilter: kinesisfirehose/message

Verwenden Sie dieses Thema, um eine Nachricht zu senden, die JSON-Daten enthält.

Nachrichten-Eigenschaften
request

Die zu sendenden Daten an den Lieferstrom und den Ziel-Lieferstrom, falls sie sich vom Standard-Stream unterscheiden.

Erforderlich: true

Typ: object, der die folgenden Eigenschaften enthält:

data

Die Daten, die an den Lieferstrom gesendet werden sollen.

Erforderlich: true

Typ: string

delivery_stream_arn

Der ARN des Ziel-Kinesis-Bereitstellungs-Streams. Fügen Sie diese Eigenschaft hinzu, um den standardmäßigen Lieferstrom zu überschreiben.

Erforderlich: false

Typ: string

Gültiges Muster: arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$

id

Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen. Wenn angegeben, wird die Eigenschaft id im Antwortobjekt auf diesen Wert gesetzt. Wenn Sie diese Funktion nicht verwenden, können Sie diese Eigenschaft weglassen oder eine leere Zeichenkette angeben.

Erforderlich: false

Typ: string

Gültiges Muster: .*

Beispieleingabe
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }

 

Themenfilter: kinesisfirehose/message/binary/#

Verwenden Sie dieses Thema, um eine Nachricht zu senden, die binäre Daten enthält. Der Konnektor analysiert keine binären Daten. Die Daten werden unverändert gestreamt.

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, dass Sie den nachlaufenden Schrägstrich verwenden.

Ausgabedaten

Dieser Connector veröffentlicht Statusinformationen als Ausgabedaten im MQTT-Thema.

Versions 2 - 5
Themenfilter im Abonnement

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 der Konnektor einen wiederholbaren Fehler erkennt (z. B. Verbindungsfehler), wiederholt er die Veröffentlichung im nächsten Batch. Exponentielles Backoff wird vom AWS SDK abgewickelt. Anfragen, die mit wiederholbaren Fehlern fehlschlagen, werden zur weiteren Veröffentlichung wieder am Ende der Warteschlange hinzugefügt.

Version 1
Themenfilter im Abonnement

kinesisfirehose/message/status

Beispielausgabe: Erfolg
{ "response": { "firehose_record_id": "1lxfuuuFomkpJYzt/34ZU/r8JYPf8Wyf7AXqlXm", "status": "success" }, "id": "request123" }
Beispielausgabe: Fehler
{ "response" : { "error": "ResourceNotFoundException", "error_message": "An error occurred (ResourceNotFoundException) when calling the PutRecord operation: Firehose test1 not found under account 123456789012.", "status": "fail" }, "id": "request123" }

Verwendungsbeispiel

Führen Sie die folgenden allgemeinen Schritte aus, um eine Python-3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

Anmerkung
  1. Stellen Sie sicher, dass Sie die Anforderungen für den Konnektor erfüllen.

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

  2. Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Konnektor sendet.

    Speichern Sie den Beispielcode als PY-Datei. Laden Sie das AWS IoT Greengrass Core SDK for Python herunter und entpacken Sie es. Erstellen Sie dann ein ZIP-Paket, das die PY-Datei und den Ordner greengrasssdk auf Stammebene enthält. Dieses ZIP-Paket ist das Bereitstellungspaket, das Sie in hochladen AWS Lambda.

    Nachdem Sie die Lambda-Funktion Python 3.7 erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

  3. Konfigurieren Sie Ihre Greengrass-Gruppe.

    1. Fügen Sie die Lambda-Funktion nach ihrem Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder "Pinned": true in der CLI).

    2. Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.

    3. Fügen Sie Abonnements hinzu, die es dem Konnektor ermöglichen, JSON-Eingabedaten zu empfangen und Ausgabedaten zu unterstützten Themenfiltern zu senden.

      • Legen Sie die Lambda-Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemafilter.

      • Legen Sie den Konnektor als Quelle und AWS IoT Core als Ziel fest und verwenden Sie einen unterstützten Ausgabethemenfilter. Sie verwenden dieses Abonnement, um Statusmeldungen in der - AWS IoT Konsole anzuzeigen.

  4. Stellen Sie die Gruppe bereit.

  5. Abonnieren Sie in der - AWS IoT Konsole auf der Seite Test das Ausgabedatenthema, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt sofort nach der Bereitstellung der Gruppe Nachrichten zu senden.

    Wenn Sie mit dem Testen fertig sind, können Sie den Lambda-Lebenszyklus auf On-Demand (oder "Pinned": false in der CLI) setzen und die Gruppe bereitstellen. Dadurch wird verhindert, dass die Funktion Nachrichten sendet.

Beispiel

Die folgende Lambda-Beispielfunktion sendet eine Eingabenachricht an den Konnektor. Diese Nachricht enthält JSON-Daten.

import greengrasssdk import time import json iot_client = greengrasssdk.client('iot-data') send_topic = 'kinesisfirehose/message' def create_request_with_all_fields(): return { "request": { "data": "Message from Firehose Connector Test" }, "id" : "req_123" } def publish_basic_message(): messageToPublish = create_request_with_all_fields() print("Message To Publish: ", messageToPublish) iot_client.publish(topic=send_topic, payload=json.dumps(messageToPublish)) publish_basic_message() def lambda_handler(event, context): return

Lizenzen

Der Kinesis-Firehose-Konnektor enthält die folgende Software/Lizenzierung von Drittanbietern:

Dieser Konnektor wurde gemäß der Greengrass Core Software License Agreement veröffentlicht.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in jeder Version des Konnektors beschrieben.

Version

Änderungen

5

Der Parameter IsolationMode wurde hinzugefügt, um den Containerisierungsmodus für den Konnektor zu konfigurieren.

4

Die Lambda-Laufzeit wurde auf Python 3.7 aktualisiert, was die Laufzeitanforderung ändert.

3

Korrektur, um übermäßige Protokollierung und andere kleinere Fehlerbehebungen zu reduzieren.

2

Unterstützung für das Senden von Batch-Datensätzen an Firehose in einem bestimmten Intervall hinzugefügt.

  • Außerdem ist die firehose:PutRecordBatch-Aktion in der Gruppenrolle erforderlich.

  • Neue MemorySize-, DeliveryStreamQueueSize- und PublishInterval-Parameter.

  • Die Ausgabenachricht enthält ein Array von Statusantworten für die veröffentlichten Datensätze.

1

Erstversion.

Eine Greengrass-Gruppe kann jeweils nur eine Version des Connectors enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter Aktualisieren von Konnektorversionen.

Weitere Informationen finden Sie auch unter