

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="kinesis-firehose-connector"></a>

Der Kinesis [Firehose-Konnektor](connectors.md) veröffentlicht Daten über einen Amazon Firehose Firehose-Lieferstream an Ziele wie Amazon S3, Amazon Redshift oder Amazon Service. OpenSearch 

Dieser Connector ist ein Datenproduzent für einen Kinesis-Lieferstream. 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](#kinesis-firehose-connector-changelog).

## Voraussetzungen
<a name="kinesis-firehose-connector-req"></a>

Dieser Konnektor hat die folgenden Anforderungen:

------
#### [ Version 4 - 5 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Kernsoftware v1.9.3 oder höher.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python-Version](https://www.python.org/) 3.7 oder 3.8 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
**Anmerkung**  <a name="use-runtime-py3.8"></a>
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.
+ <a name="req-kinesis-firehose-stream"></a>Ein konfigurierter Kinesis-Lieferstream. Weitere Informationen finden Sie unter [Creating a Amazon Data Firehose Delivery Stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Amazon Kinesis Firehose* Developer Guide.
+ <a name="req-kinesis-firehose-iam-policy-v2"></a>Die [Greengrass-Gruppenrolle](group-role.md) ist so konfiguriert, dass sie die `firehose:PutRecordBatch` Aktionen `firehose:PutRecord` und für den Zielzustellungsstream zulässt, wie in der folgenden IAM-Beispielrichtlinie gezeigt.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
          {
              "Sid":"Stmt1528133056761",
              "Action":[
                  "firehose:PutRecord",
                  "firehose:PutRecordBatch"
              ],
              "Effect":"Allow",
              "Resource":[
              "arn:aws:firehose:us-east-1:123456789012: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 \$1).

  <a name="set-up-group-role"></a>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. Für weitere Informationen siehe [Verwalten der Greengrass-Gruppenrolle (Konsole)](group-role.md#manage-group-role-console) oder [Verwalten der Greengrass-Gruppenrolle (CLI)](group-role.md#manage-group-role-cli).

------
#### [ Versions 2 - 3 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Kernsoftware v1.7 oder höher.
+ [Python-Version](https://www.python.org/) 2.7 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
+ <a name="req-kinesis-firehose-stream"></a>Ein konfigurierter Kinesis-Lieferstream. Weitere Informationen finden Sie unter [Creating a Amazon Data Firehose Delivery Stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Amazon Kinesis Firehose* Developer Guide.
+ <a name="req-kinesis-firehose-iam-policy-v2"></a>Die [Greengrass-Gruppenrolle](group-role.md) ist so konfiguriert, dass sie die `firehose:PutRecordBatch` Aktionen `firehose:PutRecord` und für den Zielzustellungsstream zulässt, wie in der folgenden IAM-Beispielrichtlinie gezeigt.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
          {
              "Sid":"Stmt1528133056761",
              "Action":[
                  "firehose:PutRecord",
                  "firehose:PutRecordBatch"
              ],
              "Effect":"Allow",
              "Resource":[
              "arn:aws:firehose:us-east-1:123456789012: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 \$1).

  <a name="set-up-group-role"></a>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. Für weitere Informationen siehe [Verwalten der Greengrass-Gruppenrolle (Konsole)](group-role.md#manage-group-role-console) oder [Verwalten der Greengrass-Gruppenrolle (CLI)](group-role.md#manage-group-role-cli).

------
#### [ Version 1 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Kernsoftware v1.7 oder höher.
+ [Python-Version](https://www.python.org/) 2.7 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
+ <a name="req-kinesis-firehose-stream"></a>Ein konfigurierter Kinesis-Lieferstream. Weitere Informationen finden Sie unter [Creating a Amazon Data Firehose Delivery Stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Amazon Kinesis Firehose* Developer Guide.
+ Die [Greengrass-Gruppenrolle](group-role.md) ist so konfiguriert, dass sie die `firehose:PutRecord` Aktion auf dem Zielzustellungsstream zulässt, wie in der folgenden IAM-Beispielrichtlinie gezeigt.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
          {
              "Sid":"Stmt1528133056761",
              "Action":[
                  "firehose:PutRecord"
              ],
              "Effect":"Allow",
              "Resource":[
              "arn:aws:firehose:us-east-1:123456789012:deliverystream/stream-name"
              ]
          }
      ]
   }
  ```

------

  <a name="role-resources"></a>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 \$1).

  <a name="set-up-group-role"></a>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. Für weitere Informationen siehe [Verwalten der Greengrass-Gruppenrolle (Konsole)](group-role.md#manage-group-role-console) oder [Verwalten der Greengrass-Gruppenrolle (CLI)](group-role.md#manage-group-role-cli).

------

## Konnektor-Parameter
<a name="kinesis-firehose-connector-param"></a>

Dieser Konnektor stellt die folgenden Parameter bereit:

------
#### [ Versions 5 ]

`DefaultDeliveryStreamArn`  <a name="kinesis-firehose-DefaultDeliveryStreamArn"></a>
Der ARN des Standard-Firehose-Lieferstreams, 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](#kinesis-firehose-connector-req).
Anzeigename in der AWS IoT Konsole: **Standard-Lieferstream-ARN**  
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`  <a name="kinesis-firehose-DeliveryStreamQueueSize"></a>
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 der zu puffernden Datensätze (pro Stream)**  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^([2-9]\\d{3}|[1-9]\\d{4,})$`

`MemorySize`  <a name="kinesis-firehose-MemorySize"></a>
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`  <a name="kinesis-firehose-PublishInterval"></a>
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: **Veröffentlichungsintervall**  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `0 - 900`  
Gültiges Muster: `[0-9]|[1-9]\\d|[1-9]\\d\\d|900`

`IsolationMode`  <a name="IsolationMode"></a>
Der [Containerisierungsmodus](connectors.md#connector-containerization) für diesen Konnektor. Die Standardeinstellung 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`  <a name="kinesis-firehose-DefaultDeliveryStreamArn"></a>
Der ARN des Standard-Firehose-Lieferstreams, 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](#kinesis-firehose-connector-req).
Anzeigename in der AWS IoT Konsole: **Standard-Lieferstream-ARN**  
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`  <a name="kinesis-firehose-DeliveryStreamQueueSize"></a>
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 der zu puffernden Datensätze (pro Stream)**  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^([2-9]\\d{3}|[1-9]\\d{4,})$`

`MemorySize`  <a name="kinesis-firehose-MemorySize"></a>
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`  <a name="kinesis-firehose-PublishInterval"></a>
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: **Veröffentlichungsintervall**  
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`  <a name="kinesis-firehose-DefaultDeliveryStreamArn"></a>
Der ARN des Standard-Firehose-Lieferstreams, 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](#kinesis-firehose-connector-req).
Anzeigename in der AWS IoT Konsole: **Standard-Lieferstream-ARN**  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `arn:aws:firehose:([a-z]{2}-[a-z]+-\d{1}):(\d{12}):deliverystream/([a-zA-Z0-9_\-.]+)$`

------

**Example**  <a name="kinesis-firehose-connector-create"></a>
**Beispiel für Connector erstellen (AWS CLI)**  
Der folgende CLI-Befehl erstellt eine `ConnectorDefinition` mit einer ersten Version, die den Connector 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 über die Connectors-Seite der Gruppe einen **Connector** hinzufügen. Weitere Informationen finden Sie unter [Erste Schritte mit Greengrass-Konnektoren (Konsole)](connectors-console.md).

## Eingabedaten
<a name="kinesis-firehose-connector-data-input"></a>

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 ]<a name="kinesis-firehose-input-data"></a>

**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 beinhaltet:    
`data`  
Die Daten, die an den Lieferstrom gesendet werden sollen.  
Erforderlich: `true`  
Typ: `string`  
`delivery_stream_arn`  
Der ARN des Kinesis-Ziel-Lieferstreams. 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 ]<a name="kinesis-firehose-input-data"></a>

**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 beinhaltet:    
`data`  
Die Daten, die an den Lieferstrom gesendet werden sollen.  
Erforderlich: `true`  
Typ: `string`  
`delivery_stream_arn`  
Der ARN des Kinesis-Ziel-Lieferstreams. 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
<a name="kinesis-firehose-connector-data-output"></a>

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

------
#### [ Versions 2 - 5 ]

<a name="topic-filter"></a>**Themenfilter im Abonnement**  <a name="kinesis-firehose-output-topic-status"></a>
`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 Connector einen Fehler erkennt, der wiederholt werden kann (z. B. Verbindungsfehler), versucht er die Veröffentlichung im nächsten Batch erneut. Der exponentielle Backoff wird vom SDK abgewickelt. AWS Anfragen, die mit wiederholbaren Fehlern fehlschlagen, werden zur weiteren Veröffentlichung wieder am Ende der Warteschlange hinzugefügt.

------
#### [ Version 1 ]

<a name="topic-filter"></a>**Themenfilter im Abonnement**  <a name="kinesis-firehose-output-topic-status"></a>
`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"
}
```

------

## Beispiel für eine Verwendung
<a name="kinesis-firehose-connector-usage"></a>

<a name="connectors-setup-intro"></a>Verwenden Sie die folgenden allgemeinen Schritte, um eine Python-3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

**Anmerkung**  <a name="connectors-setup-get-started-topics"></a>
Wenn Sie andere Python-Laufzeiten verwenden, können Sie einen Symlink von Python3.x zu Python 3.7 erstellen.
In den Themen [Beginnen Sie mit Konnektoren (Konsole)](connectors-console.md) und [Erste Schritte mit Konnektoren (CLI)](connectors-cli.md) wird ausführlich beschrieben, wie Sie einen Beispielkonnektor für Twilio-Benachrichtigungen konfigurieren und bereitstellen.

1. Stellen Sie sicher, dass Sie die [Anforderungen](#kinesis-firehose-connector-req) für den Konnektor erfüllen.

   <a name="set-up-group-role"></a>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. Für weitere Informationen siehe [Verwalten der Greengrass-Gruppenrolle (Konsole)](group-role.md#manage-group-role-console) oder [Verwalten der Greengrass-Gruppenrolle (CLI)](group-role.md#manage-group-role-cli).

1. <a name="connectors-setup-function"></a>Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Connector sendet.

   Speichern Sie den [Beispielcode](#kinesis-firehose-connector-usage-example) als PY-Datei. <a name="connectors-setup-function-sdk"></a>Laden Sie das [AWS IoT Greengrass Core SDK für Python](lambda-functions.md#lambda-sdks-core) 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, in das Sie AWS Lambda hochladen.

   <a name="connectors-setup-function-publish"></a>Nachdem Sie die Lambda-Funktion Python 3.7 erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

1. Konfigurieren Sie Ihre Greengrass-Gruppe.

   1. <a name="connectors-setup-gg-function"></a>Fügen Sie die Lambda-Funktion mit ihrem Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder `"Pinned": true` in der CLI).

   1. Fügen Sie den Konnektor hinzu und konfigurieren Sie seine [Parameter](#kinesis-firehose-connector-param).

   1. Fügen Sie Abonnements hinzu, die es dem Konnektor ermöglichen, [JSON-Eingabedaten](#kinesis-firehose-connector-data-input) zu empfangen und [Ausgabedaten](#kinesis-firehose-connector-data-output) zu unterstützten Themenfiltern zu senden.
      + <a name="connectors-setup-subscription-input-data"></a>Legen Sie die Lambda-Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemenfilter.
      + <a name="connectors-setup-subscription-output-data"></a>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.

1. <a name="connectors-setup-deploy-group"></a>Stellen Sie die Gruppe bereit.

1. <a name="connectors-setup-test-sub"></a>Abonnieren Sie in der AWS IoT Konsole auf der **Testseite** das Thema Ausgabedaten, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt unmittelbar nach der Bereitstellung der Gruppe mit dem Senden von Nachrichten.

   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
<a name="kinesis-firehose-connector-usage-example"></a>

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
<a name="kinesis-firehose-connector-license"></a>

Der Kinesis Firehose-Connector umfasst die folgende Software/Lizenzierung von Drittanbietern:<a name="boto-3-licenses"></a>
+ [AWS SDK für Python (Boto3)](https://pypi.org/project/boto3/)/Apache-Lizenz 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache-Lizenz 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF-Lizenz
+ [docutils](https://pypi.org/project/docutils/)/BSD-Lizenz, GNU General Public License (GPL), Python Software Foundation License, Public Domain
+ [jmespath](https://pypi.org/project/jmespath/)/MIT-Lizenz
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache-Lizenz 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT-Lizenz

Dieser Connector ist im Rahmen der [Greengrass Core Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) veröffentlicht.

## Änderungsprotokoll
<a name="kinesis-firehose-connector-changelog"></a>

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


| Version | Änderungen | 
| --- | --- | 
| 5 | <a name="isolation-mode-changelog"></a>Der Parameter `IsolationMode` wurde hinzugefügt, um den Containerisierungsmodus für den Konnektor zu konfigurieren. | 
| 4 | <a name="upgrade-runtime-py3.7"></a>Die Lambda-Laufzeit wurde auf Python 3.7 aktualisiert, was die Laufzeitanforderungen ä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. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/kinesis-firehose-connector.html)  | 
| 1 | Erstversion.  | 

<a name="one-conn-version"></a>Eine Greengrass-Gruppe kann jeweils nur eine Version des Connectors enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter [Aktualisieren von Konnektorversionen](connectors.md#upgrade-connector-versions).

## Weitere Informationen finden Sie auch unter
<a name="kinesis-firehose-connector-see-also"></a>
+ [Integrieren von Services und Protokollen mit Greengrass-Konnektoren](connectors.md)
+ [Erste Schritte mit Greengrass-Konnektoren (Konsole)](connectors-console.md)
+ [Erste Schritte mit Greengrass-Konnektoren (CLI)](connectors-cli.md)
+ [Was ist Amazon Kinesis Data Firehose?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) im *Amazon Kinesis Developer Guide*