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