Resolución de errores de tamaño de trabajo superado
Artículo
En este artículo se describe cómo resolver los errores JobSizeExceededException y DeploymentJobSizeExceededException. Los errores de tamaño de trabajo excedido pueden producirse al implementar un archivo Bicep o una plantilla de Azure Resource Manager (plantilla de ARM).
Síntoma
Al implementar una plantilla, recibe un error que indica que la implementación ha superado los límites.
Causa
Este error se produce cuando la implementación supera los límites de tamaño permitidos. Normalmente aparece cuando la plantilla o el trabajo de implementación son demasiado grandes. Tenga en cuenta que las plantillas se comprimen antes de comprobar sus tamaños para la implementación, por lo que los límites efectivos pueden ser mayores que el tamaño real de la plantilla.
El límite de tamaño del trabajo de implementación es de 1 MB después de la compresión, incluidos los metadatos sobre la solicitud. En el caso de las plantillas grandes, el tamaño combinado de los metadatos y la plantilla puede superar este límite.
El propio tamaño de plantilla comprimido no puede ser superior a 4 MB y cada definición de recurso individual no puede ser superior a 1 MB después de la compresión. Estos límites se aplican al estado final de la plantilla después de la expansión de las definiciones de recursos que usan bucles para crear varias instancias, lo cual incluye valores resueltos para todas las variables y parámetros.
Intente acortar la longitud de los nombres que utiliza para parámetros, variables y salidas. Cuando estos valores se repiten en bucles, un nombre largo se multiplica muchas veces.
Intente acortar la longitud de los nombres que utiliza para parámetros, variables y salidas. Cuando estos valores se repiten a través de bucles de copia, un nombre largo se multiplica muchas veces.
Cuando el archivo implementa muchos tipos de recursos diferentes, considere la posibilidad de dividirlo en módulos. Divida los tipos de recursos en grupos lógicos y agregue un módulo para cada grupo. Por ejemplo, si necesita implementar una gran cantidad de recursos de red, puede trasladar esos recursos a un módulo.
Cuando la plantilla implementa muchos tipos de recursos diferentes, considere la posibilidad de dividirla en plantillas vinculadas. Divida los tipos de recursos en grupos lógicos y agregue una plantilla vinculada para cada grupo. Por ejemplo, si necesita implementar una gran cantidad de recursos de red, puede trasladar esos recursos a una plantilla vinculada.
Use una dependencia implícita que se crea cuando un recurso hace referencia a otro recurso por su nombre simbólico. Para la mayoría de las implementaciones, no es necesario usar dependsOn y crear una dependencia explícita.
Al usar bucles de copia para implementar recursos, no use el nombre del bucle como una dependencia:
JSON
dependsOn: [ "nicLoop" ]
En su lugar, use la instancia del recurso del bucle del que depende. Por ejemplo:
Las dependencias complejas pueden consumir rápidamente los límites de datos. Por ejemplo, si un bucle de n recursos depende de otro bucle de n recursos, el resultado es almacenar O(n²) datos. Por el contrario, si cada recurso de un bucle solo depende de su homólogo en el otro bucle, da como resultado O(n) datos. Esta diferencia puede parecer sutil, pero el impacto en el almacenamiento crece muy rápidamente.
Solución 4: Reducir los datos que no pueden comprimirse
La inclusión de grandes cantidades de datos que no pueden comprimirse, como certificados o archivos binarios, o datos con una relación de compresión baja en una plantilla o parámetros, hará que se consuma rápidamente el límite de tamaño.
Como arquitecto de soluciones de Microsoft Azure, aconseja a las partes interesadas y convierte los requisitos empresariales en diseños de soluciones de Azure que se alinean con el Marco de buena arquitectura de Azure y Cloud Adoption Framework para Azure.
Describe cómo usar plantillas vinculadas en una plantilla de Azure Resource Manager (plantilla de ARM) para crear una solución de plantilla modular. Muestra cómo pasar valores de parámetros y especificar un archivo de parámetros y las direcciones URL creadas dinámicamente.
Sintaxis y propiedades de Azure Microsoft.Storage/storageAccounts que se van a usar en plantillas de Azure Resource Manager para implementar el recurso. Versión más reciente de la API