

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 處理資料轉換中的失敗
<a name="data-transformation-failure-handling"></a>

如果您的 Lambda 函數調用因為網路逾時或因為您已達到 Lambda 調用限制而失敗，Amazon Data Firehose 預設會重試調用三次。如果調用不成功，Amazon Data Firehose 會略過該批次的記錄。略過的記錄會視為未處理成功。您可以使用 [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html) 或 `[UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html)` API 來指定或覆寫重試選項。若發生這類失敗，您可以將調用錯誤記錄至 Amazon CloudWatch Logs。如需詳細資訊，請參閱[使用 CloudWatch Logs 監控 Amazon Data Firehose](monitoring-with-cloudwatch-logs.md)。

如果記錄的資料轉換狀態為 `ProcessingFailed`，Amazon Data Firehose 會將記錄視為未成功處理。若發生此類失敗，您可透過 Lambda 函數將錯誤日誌發送到 Amazon CloudWatch Logs。如需詳細資訊，請參閱《AWS Lambda 開發人員指南》**中的[存取 AWS Lambda的 Amazon CloudWatch Logs](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html)。

如果資料轉換失敗，未成功處理的記錄會傳送到 `processing-failed` 資料夾中的 S3 儲存貯體。記錄的格式如下：

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

`attemptsMade`  
嘗試叫用請求的次數。

`arrivalTimestamp`  
Amazon Data Firehose 收到記錄的時間。

`errorCode`  
Lambda 傳回 HTTP 錯誤代碼。

`errorMessage`  
Lambda 傳回錯誤訊息。

`attemptEndingTimestamp`  
Amazon Data Firehose 停止嘗試 Lambda 調用的時間。

`rawData`  
Base64 編碼記錄資料。

`lambdaArn`  
 Lambda 函數的 Amazon Resource Name (ARN)。