

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

# 功能限制
<a name="monetization-functions-limits"></a>

本页列出了适用于函数的限制。这些限制在创作时（创建或更新函数时）和运行时（函数运行时）强制执行。

## 挂钩执行限制
<a name="monetization-functions-limits-hook"></a>


| Hook | 限制 | 值 | 
| --- | --- | --- | 
| PRE\_SESSION\_INITIALIZATION | 总超时时间 | 2000 毫秒 | 
| PRE\_SESSION\_INITIALIZATION | 总player\_params大小 | 1000 个字符 | 
| PRE\_ADS\_REQUEST | 总超时时间 | 2000 毫秒 | 

这些超时涵盖了整个挂钩执行，包括所有函数步骤和 HTTP 调用。如果挂钩超过其超时时间，则 MediaTailor 丢弃所有输出并像未附加任何函数一样继续前进。

单个函数的超时（`RequestTimeoutMilliseconds`例如 HTTP\_REQUEST 函数）必须符合挂钩的总超时时间。例如，如果挂钩超时为 2,000 毫秒，HTTP\_REQUEST 函数设置为 `RequestTimeoutMilliseconds` 2,000 毫秒，则如果在 HTTP 调用之前或之后进行任何处理，则该函数可能会在完成之前超时。

`player_params`总大小包括所有输出键名称和值的组合字符数。例如，输出`player_params.deviceType = "mobile"`并`player_params.region = "us-east-1"`计入、`deviceType``mobile``region`、和，总长`us-east-1`度为 1,000 个字符。

## 表达式限制
<a name="monetization-functions-limits-expression"></a>


| 限制 | 值 | 强制执行于 | 
| --- | --- | --- | 
| 每个表达式的 CPU 时间 | 100 毫秒 | 运行时 | 
| 堆栈深度 | 100 | 运行时 | 
| 表达式长度 | 1000 个字符 | 编写 | 

当表达式在运行时超过限制时， MediaTailor 会停止表达式并记录错误。有关特定错误类型的详细信息，请参阅[故障排除和监控](monetization-functions-troubleshooting.md)。

## 函数组合限制
<a name="monetization-functions-limits-composition"></a>


| 限制 | 值 | 
| --- | --- | 
| 每个连续执行者的步数 | 1–10 | 
| 最大嵌套深度 | 2 | 
| 每个挂钩的函数执行总数 | 20 | 
| 每个函数的输出条目 | 20 | 
| 循环引用 | 不允许 | 

这些限制在创作时强制执行。

## HTTP 请求限制
<a name="monetization-functions-limits-http"></a>


| 限制 | 值 | 
| --- | --- | 
| 网址长度 | 2,048 个字符 | 
| 申请车身尺寸 | 64 KB | 
| 标题数量 | 50 | 
| 标题名称长度 | 256 个字符 | 
| 标题值长度 | 8,192 个字符 | 
| 请求超时 | 100—2,000 ms（客户可通过以下方式进行配置）RequestTimeoutMilliseconds | 
| 允许的网址架构 | https, http | 
| 受限标题 | Host, Transfer-Encoding, Content-Length, Connection | 

URL 长度、正文大小、标题数量和标题大小限制是在创作时强制执行的。请求超时和受限标头将在运行时强制执行。

如果函数设置了受限标头，则在创作时 MediaTailor 接受函数配置，但在执行期间发送 HTTP 请求时会删除该标头。

## 响应限制
<a name="monetization-functions-limits-response"></a>


| 限制 | 值 | 
| --- | --- | 
| response.body最大尺寸 | 2 万个字符 | 
| response.text最大长度 | 2 万个字符 | 

这些限制是在运行时强制执行的。

## 输出限制
<a name="monetization-functions-limits-output"></a>


| 限制 | 值 | 
| --- | --- | 
| 输出值最大长度（每个按键） | 1000 个字符 | 

这些限制是在运行时强制执行的。

## 允许使用的 jsonata 函数
<a name="monetization-functions-limits-jsonata"></a>

有关允许的函数的完整列表，请参阅[jsonata 表达式参考](monetization-functions-jsonata.md)。

有关诊断与这些限制相关的错误的帮助，请参阅[故障排除和监控](monetization-functions-troubleshooting.md)。