

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

# AWS Lambda 搭配變更串流使用
<a name="using-lambda"></a>

Amazon DocumentDB 已與 整合 AWS Lambda ，因此您可以使用 Lambda 函數來處理變更串流中的記錄。Lambda 事件來源映射是一種資源，可用來叫用 Lambda 函數，以處理不直接叫用 Lambda 的 Amazon DocumentDB 事件。使用 Amazon DocumentDB 變更串流做為事件來源，您可以建置事件驅動的應用程式來回應資料中的變更。例如，您可以使用 Lambda 函數來處理新文件、追蹤現有文件的更新，或記錄已刪除的文件。

您可以設定事件來源映射，將記錄從 Amazon DocumentDB 變更串流傳送至 Lambda 函數。事件可以一次傳送一個或批次處理，以提高效率，並按順序處理。您可以根據特定時段持續時間 (0 - 300 秒） 或批次記錄計數 （上限為 10，000 筆記錄），來設定事件來源映射的批次處理行為。您可以建立多個事件來源映射，以使用多個 Lambda 函數處理相同的資料，或使用單一函數處理來自多個串流的不同項目。

如果您的 函數傳回錯誤，Lambda 會重試批次，直到成功處理為止。如果變更串流中的事件已過期，Lambda 將停用事件來源映射。在這種情況下，您可以建立新的事件來源映射，並使用您選擇的開始位置進行設定。由於輪詢器的分散式特性，Lambda 事件來源映射會至少處理一次事件。因此在極少數情況下，您的 Lambda 函數可能會收到重複的事件。遵循使用 AWS Lambda 函數和建置等冪函數的最佳實務，以避免與重複事件相關的問題。如需詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的[搭配使用 AWS Lambda console 與 Amazon DocumentDB](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)。

作為效能最佳實務，Lambda 函數必須為短期函數。為了避免產生不必要的處理延遲，此函數也不應執行複雜的邏輯。尤其對於高速串流而言，相較於同步長時間執行的 Lambda，觸發非同步後續處理 Step Function 工作流程是較佳的做法。如需詳細資訊 AWS Lambda，請參閱 [AWS Lambda 開發人員指南](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

## 限制
<a name="lambda-limitations"></a>

以下是使用 Amazon DocumentDB 和 時應考慮的限制 AWS Lambda：
+ AWS Lambda 目前僅支援 Amazon DocumentDB 4.0 和 5.0。
+ AWS Lambda 目前不支援彈性叢集或全域叢集。
+ AWS Lambda 承載大小不能超過 6MB。如需 Lambda 批次大小的詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的 [Lambda 事件來源映射](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-batching)一節中的「批次行為」。