

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

# 建立和管理 函數
<a name="monetization-functions-managing"></a>

此頁面會逐步引導您使用 MediaTailor 主控台建立、連接、更新和刪除函數。函數可讓您在播放期間於關鍵點執行邏輯，以自訂工作階段行為和廣告請求。

## 設定函數
<a name="monetization-functions-managing-setup"></a>

### 使用主控台建立 函數
<a name="monetization-functions-managing-create-console"></a>

1. 在 https：//[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/) 開啟 MediaTailor 主控台。

1. 在導覽視窗中，選擇**函數**。

1. 選擇 **Create function (建立函數)**。

1. 針對**函數 ID**，輸入函數的唯一名稱 （例如 `fetchIdentity`)。

1. 針對**函數類型**，選擇 `CUSTOM_OUTPUT`、 `HTTP_REQUEST`或 `SEQUENTIAL_EXECUTOR`。主控台會顯示所選類型的組態欄位。

1. 填寫類型特定的組態欄位。如需每個函數類型及其欄位的說明，請參閱 [函數類型和合成](monetization-functions-types.md)。

1. 選擇**建立函數**。

### 將函數連接至播放組態
<a name="monetization-functions-managing-attach"></a>

在您透過函數映射 （生命週期關聯與函數之間的連結） 將其連接至播放組態之前，函數不會執行。函數映射會指定觸發函數的生命週期關聯。

1. 開啟 MediaTailor 主控台。

1. 在導覽窗格中，選擇**組態**。

1. 選擇您要更新的播放組態。

1. 在**函數映射**區段中，選擇**編輯**。

1. 針對每個生命週期掛鉤，選取要連接的函數：
   + **工作階段初始化關聯** — 選擇要在工作階段開始時執行一次的函數。
   + **廣告請求關聯** — 選擇要在每個 ADS 請求之前執行的函數。

1. 選擇**儲存**。

## 管理函數
<a name="monetization-functions-managing-ops"></a>

### 檢視 函數
<a name="monetization-functions-managing-view"></a>

導覽至**函數**以查看您帳戶中的所有函數。選擇函數名稱以檢視其組態。

### 更新現有的 函數
<a name="monetization-functions-managing-update"></a>

若要更新函數，請導覽至**函數**，選擇函數，然後修改組態。更新會取代整個函數定義。

**提示**  
請先儲存函數組態的副本，再進行變更。函數沒有內建版本控制或轉返。

## 移除函數
<a name="monetization-functions-managing-remove"></a>

### 從播放組態分離函數
<a name="monetization-functions-managing-detach"></a>

刪除函數之前，請先將其從參考該函數的所有播放組態中移除。

1. 開啟 MediaTailor 主控台。

1. 在導覽窗格中，選擇**組態**。

1. 選擇播放組態。

1. 在**函數映射**區段中，選擇**編輯**。

1. 從生命週期掛鉤中移除函數。

1. 選擇**儲存**。

### 刪除函數
<a name="monetization-functions-managing-delete"></a>

導覽至**函數**，選取函數，然後選擇**刪除**。

### 刪除封鎖規則
<a name="monetization-functions-managing-delete-blocking"></a>

MediaTailor 可防止您刪除仍在使用的函數。


| 條件 | 結果 | 
| --- | --- | 
| 函數透過函數映射連接到播放組態 | 刪除已封鎖。先分離函數。 | 
| 函數會在 中參考 SEQUENTIAL\_EXECUTOR | 刪除已封鎖。首先從父函數移除參考。 | 
| 函數不會在任何地方參考 | 刪除成功。 | 

## 驗證規則
<a name="monetization-functions-managing-validation"></a>

MediaTailor 會在您建立或更新函數時驗證函數。會執行下列檢查：
+ **表達式語法** — 所有表達式都必須是有效的 JSONata。
+ **限制函數** — 運算式無法呼叫限制的 JSONata 函數。如需完整清單，[JSONata 表達式參考](monetization-functions-jsonata.md)請參閱 。
+ **輸出金鑰字首** — 所有輸出金鑰都必須以可辨識的命名空間字首開頭。如需接受的字首清單，請參閱 [lifecycle hook](monetization-functions-hooks.md)。
+ **函數參考** — 中的所有函數 IDs `FunctionList` 必須參考現有的函數。
+ **循環參考** — 函數無法直接或間接參考本身。
+ **巢狀深度** — `SEQUENTIAL_EXECUTOR`可以呼叫其他函數，但這些函數本身不能是 `SEQUENTIAL_EXECUTOR`。

如需特定值和大小限制，請參閱 [限制](monetization-functions-limits.md)。

## API 參考
<a name="monetization-functions-managing-api-ref"></a>

若要以程式設計方式管理函數，請參閱 [AWS Elemental MediaTailor API 參考](https://docs.aws.amazon.com/mediatailor/latest/apireference/)。