

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

# 函數類型和合成
<a name="monetization-functions-types"></a>

AWS Elemental MediaTailor 提供三種函數類型，每個都針對不同的工作類別而設計。您可以在建立函數時選擇類型，而類型會決定函數在執行時間可以執行的動作。此頁面說明每種類型的執行方式、使用時機，以及如何將函數組成多步驟管道。

## 函數類型概觀
<a name="monetization-functions-types-overview"></a>


| Type | Category | 用途 | 
| --- | --- | --- | 
| CUSTOM\_OUTPUT | 資料轉換 | 根據目前的工作階段狀態評估運算式並產生輸出。無外部呼叫。 | 
| HTTP\_REQUEST | 外部整合 | 對外部服務進行 HTTP 呼叫，然後評估可參考回應的輸出表達式。 | 
| SEQUENTIAL\_EXECUTOR | 協調 | 依序執行一系列函數，透過暫時資料在步驟之間傳遞資料。 | 

每種類型都提供不同的角色。在建立函數時選擇類型 — 類型決定函數在執行時間可執行的操作。

## 合成規則
<a name="monetization-functions-types-composition-rules"></a>

MediaTailor 會對函數合成強制執行下列限制：


| 規則 | 限制 | 
| --- | --- | 
| 巢狀深度上限 | 2 （序列可以包含函數，但這些子系不能是序列本身） | 
| 每個序列的步驟 | 1 到 10 | 
| 每個生命週期勾點的函數執行總數 | 20 | 
| 循環參考 | 不允許。函數無法直接或間接參考本身。 | 
| 函數存在 | 在您建立或更新父序列之前， 中參考的所有函數FunctionList都必須存在。 | 

當您建立函數時，MediaTailor 會驗證表達式語法、檢查受限函數、驗證所有參考函數是否存在，以及偵測循環參考。當您將函數連接至播放組態時，MediaTailor 還會驗證整個函數樹狀結構的所有輸出金鑰是否與指派的生命週期掛鉤相容。