Partilhar via


Resolver erros para o tamanho da tarefa excedido

Este artigo descreve como resolver os JobSizeExceededException erros e DeploymentJobSizeExceededException . O tamanho da tarefa excedeu os erros quando implementa um ficheiro Bicep ou um modelo de Resource Manager do Azure (modelo do ARM).

Sintoma

Ao implementar um modelo, recebe um erro a indicar que a implementação excedeu os limites.

Causa

Obtém este erro quando a implementação excede um limite permitido. Normalmente, vê este erro quando o modelo ou a tarefa que executa a implementação é demasiado grande.

A tarefa de implementação não pode exceder 1 MB e isso inclui metadados sobre o pedido. Para modelos grandes, os metadados combinados com o modelo podem exceder o tamanho permitido de uma tarefa.

O modelo não pode exceder 4 MB e cada definição de recurso não pode exceder 1 MB. Os limites aplicam-se ao estado final do modelo depois de este ter sido expandido para definições de recursos que utilizam ciclos para criar muitas instâncias. O estado final também inclui os valores resolvidos das variáveis e dos 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 carateres numa expressão de modelo

Solução 1: Utilizar as dependências cuidadosamente

Utilize uma dependência implícita criada quando um recurso referencia outro recurso pelo respetivo nome simbólico. Para a maioria das implementações, não é necessário utilizar dependsOn e criar uma dependência explícita.

Solução 2: Simplificar o modelo

Quando o seu ficheiro implementar vários tipos de recursos diferentes, considere dividi-lo em módulos. Divida os tipos de recursos em grupos lógicos e adicione um módulo para cada grupo. Por exemplo, se precisar de implementar muitos recursos de rede, pode mover esses recursos para um módulo.

Pode definir outros recursos como dependências implícitas e obter valores a partir da saída dos módulos.

Solução 3: Reduzir o tamanho do nome

Tente encurtar o comprimento dos nomes que utiliza para parâmetros, variáveis e saídas. Quando estes valores são repetidos em ciclos, um nome longo é multiplicado muitas vezes.