本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
功能限制
本页列出了适用于函数的限制。这些限制在创作时(创建或更新函数时)和运行时(函数运行时)强制执行。
挂钩执行限制
| 钩子 | 限制 | 值 |
|---|---|---|
PRE_SESSION_INITIALIZATION |
总超时时间 | 2,000 毫秒 |
PRE_SESSION_INITIALIZATION |
总player_params大小 |
1000 个字符 |
PRE_ADS_REQUEST |
总超时时间 | 2,000 毫秒 |
POST_ADS_RESPONSE |
总超时时间 | 2,000 毫秒 |
POST_ADS_RESPONSE |
输入有效载荷大小 | 128 KB |
POST_ADS_RESPONSE |
输出大小 | 256 KB |
PRE_MANIFEST_INSERTION |
总超时时间 | 2,000 毫秒 |
PRE_MANIFEST_INSERTION |
输入有效载荷大小 | 128 KB |
PRE_MANIFEST_INSERTION |
输出大小 | 256 KB |
PRE_MANIFEST_INSERTION |
每次调用都会注入广告 | 10 |
| Request-path 钩子组合(每个请求) | 共享执行预算 | 2,000 毫秒 |
这些超时涵盖了整个挂接执行,包括所有函数步骤和 HTTP 调用。如果挂接超过其超时时间,则 MediaTailor 丢弃所有输出并继续操作,就好像没有附加任何函数一样。
除了每个钩子自己的超时时间外PRE_ADS_REQUEST,在单个请求中运行的POST_ADS_RESPONSE、和PRE_MANIFEST_INSERTION挂钩的总执行预算为 2,000 毫秒。较早的挂钩所花费的时间减少了同一请求中可供后期挂钩使用的预算,而挂钩的有效超时时间是其自身超时时间和剩余预算中较小的一个。如果预算在挂钩开始之前用尽,则完全 MediaTailor 跳过该挂钩继续处理请求。PRE_SESSION_INITIALIZATION在会话初始化期间运行,不属于合并预算。
输入负载大小限制适用于为POST_ADS_RESPONSE和PRE_MANIFEST_INSERTION挂钩 MediaTailor 构建的序列化 JSON 输入。如果输入超过 128 KB,则 MediaTailor 跳过该请求的挂钩调用。输出大小限制限制了函数可以写入挂接的可写命名空间的总序列化大小;超过 256 KB 的输出将被丢弃。
单个函数的超时(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 请求限制
| 限制 | 值 |
|---|---|
| URL 表达式长度 | 25,000 字符 |
| 网址长度(评估后) | 2,048 个字符 |
| 身体表情长度 | 100000 个字符 |
| 请求正文大小(评估后) | 64 KB |
| 标题数 | 50 |
| 标题名称长度 | 256 个字符 |
| 标题值长度 | 8,192 个字符 |
| 请求超时 | 100—2,000 毫秒(客户可配置通过)RequestTimeoutMilliseconds |
| 允许的网址架构 | https, http |
| 受限标题 | Host, Transfer-Encoding,
Content-Length, Connection |
表达式长度限制和标头限制是在创作时创建或更新函数时强制执行的。评估后的网址和正文大小限制、请求超时和受限制的标头将在运行时对表达式 MediaTailor 进行求值后强制执行。在创作时接受的 URL 表达式在运行时仍可能超过评估的 URL 限制,在这种情况下,请求不会发送。
如果函数设置了受限标头,则在创作时 MediaTailor 接受函数配置,但在执行期间发送 HTTP 请求时会删除该标头。
响应限制
| 限制 | 值 |
|---|---|
response.body最大尺寸 |
20,000 字符 |
response.text最大长度 |
20,000 字符 |
这些限制是在运行时强制执行的。
输出限制
| 限制 | 值 |
|---|---|
| 输出值最大长度(每键) | 1000 个字符 |
这些限制是在运行时强制执行的。
允许的 JSonata 函数
有关允许的函数的完整列表,请参阅JSONata表达式参考。
有关诊断与这些限制相关的错误的帮助,请参阅故障排除和监控。