

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

本页面将引导您使用 MediaTailor 控制台创建、附加、更新和删除函数。函数允许您在播放期间通过在关键点运行逻辑来自定义会话行为和广告请求。

## 设置函数
<a name="monetization-functions-managing-setup"></a>

### 使用控制台创建函数
<a name="monetization-functions-managing-create-console"></a>

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**函数**。

1. 选择**创建函数**。

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 防止您删除仍在使用的函数。


| 条件 | 结果 | 
| --- | --- | 
| 通过功能映射将函数附加到播放配置 | 删除已被阻止。先分离函数。 | 
| 函数在 a 中被引用 SEQUENTIAL\_EXECUTOR | 删除已被阻止。先从父函数中移除引用。 | 
| 任何地方都没有引用函数 | 删除成功。 | 

## 验证规则
<a name="monetization-functions-managing-validation"></a>

MediaTailor 在您创建或更新函数时对其进行验证。将执行以下检查：
+ **表达式语法**-所有表达式都必须是有效的 jsonata。
+ **受限函数**-表达式无法调用受限制的 JSonata 函数。[jsonata 表达式参考](monetization-functions-jsonata.md)有关完整列表，请参阅。
+ **输出键前缀**-所有输出键必须以可识别的命名空间前缀开头。有关可接受的前缀列表，请参见[生命周期钩子](monetization-functions-hooks.md)。
+ **函数引用**-中的所有函数 ID 都`FunctionList`必须引用现有函数。
+ **循环引用**-函数不能直接或间接引用自身。
+ **嵌套深度**-A `SEQUENTIAL_EXECUTOR` 可以调用其他函数，但这些函数本身不能是 `SEQUENTIAL_EXECUTOR` s。

有关具体值和大小限制，请参阅[限制](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/)。