

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.

# Transformieren Sie Quelldaten in Amazon Data Firehose
<a name="data-transformation"></a>

Amazon Data Firehose kann Ihre Lambda-Funktion aufrufen, um eingehende Quelldaten zu transformieren und die transformierten Daten an Ziele weiterzuleiten. Sie können die Amazon Data Firehose-Datentransformation aktivieren, wenn Sie Ihren Firehose-Stream erstellen.

## Verstehen Sie den Ablauf der Datentransformation
<a name="data-transformation-flow"></a>

Wenn Sie die Firehose-Datentransformation aktivieren, puffert Firehose eingehende Daten. Der Hinweis zur Puffergröße liegt zwischen 0,2 MB und 3 MB. Der standardmäßige Hinweis zur Lambda-Puffergröße beträgt 1 MB für alle Ziele, außer Splunk und Snowflake. Für Splunk und Snowflake beträgt der Standard-Pufferhinweis 256 KB. Der Hinweis für das Lambda-Pufferintervall liegt zwischen 0 und 900 Sekunden. Der standardmäßige Hinweis für das Lambda-Pufferintervall beträgt für alle Ziele außer Snowflake sechzig Sekunden. Für Snowflake beträgt das Standardintervall für Pufferhinweise 30 Sekunden. Um die Puffergröße anzupassen, setzen Sie den [ProcessingConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ProcessingConfiguration.html)Parameter der [CreateDeliveryStream[UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html)](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)OR-API mit dem aufgerufenen und. [ProcessorParameter](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ProcessorParameter.html)`BufferSizeInMBs``IntervalInSeconds` Firehose ruft dann die angegebene Lambda-Funktion synchron mit jedem gepufferten Batch im synchronen Aufrufmodus auf. AWS Lambda Die transformierten Daten werden von Lambda an Firehose gesendet. Firehose sendet es dann an das Ziel, wenn die angegebene Puffergröße oder das angegebene Pufferintervall erreicht ist, je nachdem, was zuerst eintritt.

**Wichtig**  
Der synchrone Lambda-Aufrufmodus hat ein Nutzlastgrößenlimit von 6 MB sowohl für die Anforderung als auch für die Antwort. Die Puffergröße für das Senden der Anforderung an die Funktion muss kleiner oder gleich 6 MB sein. Außerdem darf die von der Funktion zurückgegebene Antwort 6 MB nicht übersteigen.

## Dauer des Lambda-Aufrufs
<a name="data-transformation-execution-duration"></a>

Amazon Data Firehose unterstützt eine Lambda-Aufrufzeit von bis zu 5 Minuten. Wenn die Ausführung Ihrer Lambda-Funktion länger als 5 Minuten dauert, wird die folgende Fehlermeldung angezeigt: Firehose hat beim Aufrufen von Lambda auf Timeout-Fehler gestoßen. AWS Das maximal unterstützte Funktions-Timeout beträgt 5 Minuten.

Informationen darüber, was Amazon Data Firehose tut, wenn ein solcher Fehler auftritt, finden Sie unter[Behandeln Sie Fehler bei der Datentransformation](data-transformation-failure-handling.md).

# Erforderliche Parameter für die Datentransformation
<a name="data-transformation-status-model"></a>

Alle transformierten Datensätze von Lambda müssen die folgenden Parameter enthalten. Andernfalls lehnt Amazon Data Firehose sie ab und behandelt dies als Fehler bei der Datentransformation.

------
#### [ For Kinesis Data Streams and Direct PUT ]

Die folgenden Parameter sind für alle transformierten Datensätze von Lambda erforderlich.
+ `recordId`— Die Datensatz-ID wird während des Aufrufs von Amazon Data Firehose an Lambda übergeben. Der transformierte Datensatz muss dieselbe Datensatz-ID enthalten. Jede fehlende Übereinstimmung zwischen der ID des ursprünglichen Datensatzes und der ID des transformierten Datensatzes wird als Datentransformationsfehler behandelt.
+ `result`— Der Status der Datentransformation des Datensatzes. Die möglichen Werte sind `Ok` (der Datensatz wurde erfolgreich transformiert), `Dropped` (der Datensatz wurde absichtlich von Ihrer Verarbeitungslogik fallengelassen) und `ProcessingFailed` (der Datensatz konnte nicht transformiert werden). Wenn ein Datensatz den Status `Ok` oder hat`Dropped`, geht Amazon Data Firehose davon aus, dass er erfolgreich verarbeitet wurde. Andernfalls betrachtet Amazon Data Firehose die Verarbeitung als erfolglos.
+ `data`— Die transformierte Datennutzlast nach der Base64-Kodierung.

  Im Folgenden finden Sie ein Beispiel für eine Lambda-Ergebnisausgabe:

  ```
   {
      "recordId": "<recordId from the Lambda input>",
      "result": "Ok",
      "data": "<Base64 encoded Transformed data>"
  }
  ```

------
#### [ For Amazon MSK ]

Die folgenden Parameter sind für alle transformierten Datensätze von Lambda erforderlich.
+ `recordId`— Die Datensatz-ID wird während des Aufrufs von Firehose an Lambda übergeben. Der transformierte Datensatz muss dieselbe Datensatz-ID enthalten. Jede fehlende Übereinstimmung zwischen der ID des ursprünglichen Datensatzes und der ID des transformierten Datensatzes wird als Datentransformationsfehler behandelt.
+ `result`— Der Status der Datentransformation des Datensatzes. Die möglichen Werte sind `Ok` (der Datensatz wurde erfolgreich transformiert), `Dropped` (der Datensatz wurde absichtlich von Ihrer Verarbeitungslogik fallengelassen) und `ProcessingFailed` (der Datensatz konnte nicht transformiert werden). Wenn ein Datensatz den Status `Ok` oder hat, geht Firehose davon aus`Dropped`, dass er erfolgreich verarbeitet wurde. Andernfalls betrachtet Firehose es als erfolglos verarbeitet.
+ `KafkaRecordValue`— Die transformierte Datennutzlast nach der Base64-Kodierung.

  Im Folgenden finden Sie ein Beispiel für eine Lambda-Ergebnisausgabe:

  ```
   {
      "recordId": "<recordId from the Lambda input>",
      "result": "Ok",
      "kafkaRecordValue": "<Base64 encoded Transformed data>"
  }
  ```

------

# Unterstützte Lambda-Blueprints
<a name="lambda-blueprints"></a>

Diese Blueprints zeigen, wie Sie AWS Lambda-Funktionen erstellen und verwenden können, um Daten in Ihren Amazon Data Firehose-Datenströmen zu transformieren. 

**Um die Blueprints zu sehen, die in der Konsole verfügbar sind AWS Lambda**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie **Create function (Funktion erstellen)** und anschließend die Option **Use a blueprint (Eine Vorlage verwenden)** aus.

1. Suchen Sie im Feld **Blueprints** nach dem Schlüsselwort, `firehose` um die Amazon Data Firehose Lambda-Blueprints zu finden.

Liste der Vorlagen:
+ **An den Amazon Data Firehose-Stream gesendete Datensätze verarbeiten (Node.js, Python)**

  Dieser Blueprint zeigt ein grundlegendes Beispiel für die Verarbeitung von Daten in Ihrem Firehose-Datenstrom mithilfe von AWS Lambda. 

  *Datum der letzten Veröffentlichung:* November 2016. 

  *Versionshinweise:* keine.
+ **An CloudWatch Firehose gesendete Prozessprotokolle**

  Dieser Blueprint ist veraltet. Verwenden Sie diesen Blueprint nicht. Es können hohe Gebühren anfallen, wenn die dekomprimierten CloudWatch Logs-Daten mehr als 6 MB groß sind (Lambda-Limit). Informationen zur Verarbeitung von an Firehose gesendeten CloudWatch Logs finden Sie unter [Writing to Firehose Using CloudWatch ](https://docs.aws.amazon.com/firehose/latest/dev/writing-with-cloudwatch-logs.html) Logs.
+ **Amazon Data Firehose-Stream-Datensätze im Syslog-Format in JSON konvertieren (Node.js)**

  Dieser Blueprint zeigt, wie Sie Eingabedatensätze im RFC3164 Syslog-Format in JSON konvertieren können. 

  *Datum der letzten Veröffentlichung*: November 2016. 

  *Versionshinweise:* keine. 

**Um die Blueprints zu sehen, die verfügbar sind in AWS Serverless Application Repository**

1. Wechseln Sie zu [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo).

1. Wählen Sie **Alle Anwendungen durchsuchen** aus.

1. Suchen Sie im Feld **Applications (Anwendungen)** nach dem Schlüsselwort `firehose`.

Sie können auch eine Lambda-Funktion erstellen, ohne eine Vorlage zu verwenden. Siehe [Erste Schritte mit AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html).

# Behandeln Sie Fehler bei der Datentransformation
<a name="data-transformation-failure-handling"></a>

Wenn Ihr Lambda-Funktionsaufruf aufgrund eines Netzwerk-Timeouts fehlschlägt oder weil Sie das Lambda-Aufruflimit erreicht haben, wiederholt Amazon Data Firehose den Aufruf standardmäßig dreimal. Wenn der Aufruf nicht erfolgreich ist, überspringt Amazon Data Firehose diesen Datensatzstapel. Die übersprungenen Datensätze werden als nicht erfolgreich verarbeitete Datensätze behandelt. Sie können die Wiederholungsoptionen mithilfe der API oder angeben oder überschreiben. [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)`[UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html)` Für diese Art von Fehler können Sie Aufruffehler in Amazon CloudWatch Logs protokollieren. Weitere Informationen finden Sie unter [Überwachen Sie Amazon Data Firehose mithilfe von Protokollen CloudWatch](monitoring-with-cloudwatch-logs.md).

Wenn der Status der Datentransformation eines Datensatzes lautet`ProcessingFailed`, behandelt Amazon Data Firehose den Datensatz als nicht erfolgreich verarbeitet. Für diese Art von Fehler können Sie von Ihrer Lambda-Funktion aus CloudWatch Fehlerprotokolle an Amazon Logs senden. Weitere Informationen finden Sie unter [Zugreifen auf Amazon CloudWatch Logs für AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html) im *AWS Lambda Entwicklerhandbuch*.

Wenn eine Datentransformation fehlschlägt, werden die erfolglos verarbeiteten Datensätze im `processing-failed` Ordner an Ihren S3-Bucket übermittelt. Die Datensätze haben das folgende Format:

```
{
    "attemptsMade": "count",
    "arrivalTimestamp": "timestamp",
    "errorCode": "code",
    "errorMessage": "message",
    "attemptEndingTimestamp": "timestamp",
    "rawData": "data",
    "lambdaArn": "arn"
}
```

`attemptsMade`  
Die Anzahl der versuchten Aufrufanforderungen.

`arrivalTimestamp`  
Der Zeitpunkt, zu dem der Datensatz bei Amazon Data Firehose eingegangen ist.

`errorCode`  
Der von Lambda ausgegebene HTTP-Fehlercode.

`errorMessage`  
Die von Lambda ausgegebene HTTP-Fehlermeldung.

`attemptEndingTimestamp`  
Der Zeitpunkt, zu dem Amazon Data Firehose aufgehört hat, Lambda-Aufrufe zu versuchen.

`rawData`  
Die base64-verschlüsselten Daten.

`lambdaArn`  
Der Amazon-Ressourcenname (ARN) der -Lambda-Funktion.

# Quelldatensätze sichern
<a name="data-transformation-source-record-backup"></a>

Amazon Data Firehose kann alle nicht transformierten Datensätze gleichzeitig in Ihrem S3-Bucket sichern und gleichzeitig transformierte Datensätze an das Ziel liefern. Sie können die Sicherung von Quelldatensätzen aktivieren, wenn Sie Ihren Firehose-Stream erstellen oder aktualisieren. Nach de Aktivierung kann die Sicherung der Quelldatensätze nicht mehr deaktiviert werden.