本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
功能限制
本页列出了适用于函数的限制。这些限制在创作时(创建或更新函数时)和运行时(函数运行时)强制执行。
挂钩执行限制
| 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"计入、deviceTypemobileregion、和,总长us-east-1度为 1,000 个字符。
表达式限制
| 限制 | 值 | 强制执行于 |
|---|---|---|
| 每个表达式的 CPU 时间 | 100 毫秒 | 运行时 |
| 堆栈深度 | 100 | 运行时 |
| 表达式长度 | 1000 个字符 | 编写 |
当表达式在运行时超过限制时, MediaTailor 会停止表达式并记录错误。有关特定错误类型的详细信息,请参阅故障排除和监控。
函数组合限制
| 限制 | 值 |
|---|---|
| 每个连续执行者的步数 | 1–10 |
| 最大嵌套深度 | 2 |
| 每个挂钩的函数执行总数 | 20 |
| 每个函数的输出条目 | 20 |
| 循环引用 | 不允许 |
这些限制在创作时强制执行。
HTTP 请求限制
| 限制 | 值 |
|---|---|
| 网址长度 | 2,048 个字符 |
| 申请车身尺寸 | 64 KB |
| 标题数量 | 50 |
| 标题名称长度 | 256 个字符 |
| 标题值长度 | 8,192 个字符 |
| 请求超时 | 100—2,000 ms(客户可通过以下方式进行配置)RequestTimeoutMilliseconds |
| 允许的网址架构 | https, http |
| 受限标题 | Host, Transfer-Encoding,
Content-Length, Connection |
URL 长度、正文大小、标题数量和标题大小限制是在创作时强制执行的。请求超时和受限标头将在运行时强制执行。
如果函数设置了受限标头,则在创作时 MediaTailor 接受函数配置,但在执行期间发送 HTTP 请求时会删除该标头。
响应限制
| 限制 | 值 |
|---|---|
response.body最大尺寸 |
2 万个字符 |
response.text最大长度 |
2 万个字符 |
这些限制是在运行时强制执行的。
输出限制
| 限制 | 值 |
|---|---|
| 输出值最大长度(每个按键) | 1000 个字符 |
这些限制是在运行时强制执行的。
允许使用的 jsonata 函数
有关允许的函数的完整列表,请参阅jsonata 表达式参考。
有关诊断与这些限制相关的错误的帮助,请参阅故障排除和监控。