Creación de una plantilla de solución de problemas

En algunos casos, la mejor manera de solucionar los problemas de la plantilla consiste en aislar y probar partes específicas de ella. Puede crear una plantilla de solución de problemas que se centre en el recurso que cree que provoca el error.

Por ejemplo, se produce un error cuando la plantilla de implementación hace referencia a un recurso existente. En lugar de evaluar una plantilla de implementación al completo, cree una plantilla de solución de problemas que devuelva datos sobre el recurso. La salida le ayudará a determinar si está pasando los parámetros adecuados, si usa las funciones de plantilla correctamente y si obtiene el recurso esperado.

Implementación de una plantilla de solución de problemas

La siguiente plantilla de ARM y archivo Bicep reciben información de una cuenta de almacenamiento existente. Ejecute la implementación con New-AzResourceGroupDeployment de Azure PowerShell o az deployment group create de la CLI de Azure. Especifique el nombre y el grupo de recursos de la cuenta de almacenamiento. La salida es un objeto con los nombres de propiedad y los valores de la cuenta de almacenamiento.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string"
    },
    "storageResourceGroup": {
      "type": "string"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "exampleOutput": {
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2022-05-01')]",
      "type": "object"
    }
  }
}

En Bicep, use la palabra clave existing y ejecute la implementación desde el grupo de recursos donde existe la cuenta de almacenamiento. Use scope para acceder a un recurso de un grupo de recursos diferente. Para obtener más información, consulte los recursos existentes.

param storageName string

resource stg 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
  name: storageName
}

output exampleOutput object = stg.properties

Método alternativo de solución de problemas

Si cree que los errores de implementación están provocados por dependencias incorrectas, puede ejecutar pruebas dividiendo la plantilla en plantillas simplificadas. En primer lugar, cree una plantilla que implemente solo un único recurso (por ejemplo, un servidor SQL Server). Cuando esté seguro de que la implementación del recurso es correcta, agregue un recurso que dependa de él (como una base de datos SQL). Cuando esos dos recursos se definan correctamente, agregue otros recursos dependientes (por ejemplo, directivas de auditoría). Entre cada implementación de prueba, elimine el grupo de recursos para asegurarse de que se prueban adecuadamente las dependencias.

Pasos siguientes