解决“超出作业大小”错误

本文介绍如何解决 JobSizeExceededExceptionDeploymentJobSizeExceededException 错误。 部署 Bicep 文件或 Azure 资源管理器模板(ARM 模板)时,可能会出现作业大小超出错误。

症状

部署模板时收到一条错误,指出部署已超出限制。

原因

在部署超出允许的限制时,就会出现此错误。 通常,当模板或运行部署的作业太大时,会出现此错误。

部署作业不能超过 1 MB 并且包含有关请求的元数据。 对于大型模板,与模板合并的元数据可能会超出作业允许的大小。

模板不能超过 4 MB,并且每个资源定义不能超过 1 MB。 在为使用循环创建许多实例的资源定义扩展了模板后,限制会应用于该模板的最终状态。 最终状态还包括变量和参数的已解析值。

其他模板限制包括:

  • 256 个参数
  • 256 个变量
  • 800 个资源(包括副本计数)
  • 64 个输出值
  • 模板表达式中不超过 24,576 个字符

解决方案 1:谨慎使用依赖项

使用在某个资源按其符号名称引用另一资源时创建的隐式依赖项。 对于大多数部署,不必使用 dependsOn 并创建显式依赖项

解决方案 2:简化模板

在你的文件部署大量不同的资源类型时,请考虑将这些资源类型划分为模块。 将你的资源类型划分为逻辑组,并为每个组添加模块。 例如,如果需要部署大量网络资源,则可将这些资源移动到某个模块。

可将其他资源设置为隐式依赖项,并从模块的输出获取值

解决方案 3:缩小名称大小

请尝试缩短用于参数变量输出的名称的长度。 当这些值在循环中重复时,长名称会被相乘很多次。