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.
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.
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.
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.
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.
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.
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).
Dieser Konnektor akzeptiert Stream-Inhalte zu MQTT-Themen und sendet die Inhalte dann an den Ziel-Bereitstellungs-Stream. Er akzeptiert zwei Arten von Eingabedaten:
- 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"
}
]
}
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.
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).
-
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.
-
Konfigurieren Sie Ihre Greengrass-Gruppe.
-
Fügen Sie die Lambda-Funktion nach ihrem Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder "Pinned": true
in der CLI).
-
Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.
-
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.
-
Stellen Sie die Gruppe bereit.
-
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