Resolver erros de tamanho do trabalho excedido

Este artigo descreve como resolver os erros JobSizeExceededException e DeploymentJobSizeExceededException. Os erros de tamanho do trabalho excedido podem ocorrer quando você implanta um arquivo Bicep ou um modelo do ARM (modelo do Azure Resource Manager).

Sintoma

Ao implantar um modelo, você receberá um erro informando que a implantação excedeu os limites.

Causa

Você recebe esse erro quando a implantação excede um limite permitido. Normalmente, você vê esse erro quando o modelo ou o trabalho que executa a implantação é muito grande.

O trabalho de implantação não pode exceder 1 MB, e isso inclui metadados sobre a solicitação. Para modelos grandes, os metadados combinados com o modelo podem exceder o tamanho permitido de um trabalho.

O modelo não pode exceder 4 MB, e cada definição de recurso não pode exceder 1 MB. Os limites se aplicam ao estado final do modelo depois que ele é expandido para definições de recursos que usam loops para criar várias instâncias. O estado final também inclui os valores resolvidos para variáveis e parâmetros.

Outros limites de modelo são:

  • 256 parâmetros
  • 256 variáveis
  • 800 recursos (incluindo a contagem de cópias)
  • 64 valores de saída
  • 24.576 caracteres em uma expressão de modelo

Solução 1 – Usar as dependências com cuidado

Use uma dependência implícita criada quando um recurso faz referência a outro recurso pelo nome simbólico. Para a maioria das implantações, não é necessário usar dependsOn e criar uma dependência explícita.

Solução 2 – Simplificar o modelo

Quando seu arquivo implantar vários tipos de recursos diferentes, considere dividi-lo em módulos. Divida seus tipos de recursos em grupos lógicos e adicione um módulo para cada grupo. Por exemplo, se você precisar implantar muitos recursos de rede, poderá mover esses recursos para um módulo.

Você pode definir outros recursos como dependências implícitas e obter valores da saída de módulos.

Solução 3 – Reduzir o tamanho do nome

Tente reduzir o comprimento dos nomes usados em parâmetros, variáveise saídas. Quando esses valores são repetidos em loops, um nome longo é multiplicado muitas vezes.