

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

# 轉換 Amazon Data Firehose 中的來源資料
<a name="data-transformation"></a>

Amazon Data Firehose 可以調用 Lambda 函數來轉換傳入的來源資料，並將轉換的資料傳遞至目的地。您可以在建立 Firehose 串流時啟用 Amazon Data Firehose 資料轉換。

## 了解資料轉換流程
<a name="data-transformation-flow"></a>

當您啟用 Firehose 資料轉換時，Firehose 會緩衝傳入的資料。緩衝大小提示範圍介於 0.2 MB 到 3MB 之間。除了 Splunk 和 Snowflake 之外，所有目的地的預設 Lambda 緩衝大小提示皆為 1 MB。對於 Splunk 和 Snowflake，預設緩衝提示為 256 KB。Lambda 緩衝間隔提示範圍介於 0 到 900 秒之間。除了 Snowflake 之外，所有目的地的預設 Lambda 緩衝間隔提示都是 60 秒。對於 Snowflake，預設緩衝提示間隔為 30 秒。若要調整緩衝大小，請使用名為 `BufferSizeInMBs`和 的 [ProcessorParameter](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ProcessorParameter.html)，設定 [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 的 [ProcessingConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ProcessingConfiguration.html) 參數`IntervalInSeconds`。接著 Firehose 會使用同步調用模式，與每個緩衝批次同步調用指定的 Lambda AWS Lambda 函數。轉換後的資料會從 Lambda 傳送至 Firehose。然後，Firehose 會在達到指定的目的地緩衝大小或緩衝間隔時將其傳送至目的地，以先發生者為準。

**重要**  
在請求和回應方面，Lambda 同步調用模式的​承載大小上限為 6 MB。因此，用來傳送請求至函式的緩衝區大小必須小於或等於 6 MB，且函式所傳回的回應也不得超過 6 MB。

## Lambda 調用持續時間
<a name="data-transformation-execution-duration"></a>

Amazon Data Firehose 支援最長 5 分鐘的 Lambda 調用時間。如果您的 Lambda 函數需要超過 5 分鐘才能完成，您會收到下列錯誤：Firehose 在呼叫 AWS Lambda 時遇到逾時錯誤。支援的函數逾時上限為 5 分鐘。

如需發生此類錯誤時 Amazon Data Firehose 如何處理的資訊，請參閱 [處理資料轉換中的失敗](data-transformation-failure-handling.md)。