Uso de la CLI de Azure para exportar una plantilla
Para ayudar con la creación de plantillas de Azure Resource Manager, puede exportar una plantilla desde los recursos existentes. La plantilla exportada le ayudará a comprender la sintaxis y las propiedades JSON que implementan los recursos. Para automatizar las implementaciones futuras, comience con la plantilla exportada y modifíquela para su escenario. El proceso de exportación de plantillas intenta crear una plantilla que se pueda usar. Sin embargo, la mayoría de las plantillas exportadas requieren algunas modificaciones antes de poder usarse para implementar recursos de Azure.
Resource Manager permite elegir uno o más recursos para exportarlos a una plantilla. Se puede centrar en los recursos exactos que necesita en la plantilla.
Este artículo muestra cómo exportar plantillas a través de la CLI de Azure. Para otras alternativas, consulte los siguientes recursos:
- Exportación de plantilla en Azure Portal
- Exportación de plantilla en Azure PowerShell
- Exportación de API REST a partir de un grupo de recursos y Exportación de API REST a partir del historial de implementación.
Elección de la opción de exportación correcta
Hay dos maneras de exportar una plantilla:
Exportar desde el grupo de recursos o el recurso. Esta opción genera una plantilla nueva a partir de los recursos existentes. La plantilla exportada es una "instantánea" del estado actual del grupo de recursos. Puede exportar un grupo de recursos completo o recursos específicos dentro de ese grupo de recursos.
Guardar desde el historial. Esta opción recupera una copia exacta de una plantilla usada para la implementación. Especifique la implementación a partir del historial de implementación.
Según la opción que elija, las plantillas exportadas tendrán distintas calidades.
Desde el grupo de recursos o el recurso | Desde el historial |
---|---|
La plantilla se genera automáticamente. Es probable que quiera mejorar el código antes de implementarlo. | La plantilla es una copia exacta de la creada por el autor de la plantilla. Está lista para volver a implementarse sin ningún cambio. |
La plantilla es una instantánea del estado actual de los recursos. Incluye todos los cambios manuales que se hayan realizado después de la implementación. | En la plantilla solo se muestra el estado de los recursos en el momento de la implementación. No se incluyen los cambios manuales que haya realizado después de la implementación. |
Puede seleccionar los recursos de un grupo de recursos que se van a exportar. | Se incluyen todos los recursos para una implementación específica. No se puede seleccionar un subconjunto de esos recursos o agregar recursos que se hayan agregado en otro momento. |
En la plantilla se incluyen todas las propiedades de los recursos, incluidas algunas que normalmente no se establecerían durante la implementación. Es posible que quiera quitar o borrar estas propiedades antes de volver a usar la plantilla. | En la plantilla solo se incluyen las propiedades necesarias para la implementación. La plantilla es más dispersa y fácil de leer. |
Probablemente en la plantilla no se incluyan todos los parámetros que necesita para su reutilización. La mayoría de los valores de propiedad están codificados de forma rígida en la plantilla. Para volver a implementar la plantilla en otros entornos, tendrá que agregar parámetros que aumenten la capacidad de configurar los recursos. También puede anular la selección de Incluir parámetros y así podrá crear sus propios parámetros. | En la plantilla se incluyen parámetros que facilitan la tarea de volver a implementar en otros entornos. |
Exporte la plantilla desde un grupo de recursos o un recurso cuando:
- Tenga que capturar cambios de los recursos que se han realizado después de la implementación original.
- Quiera seleccionar los recursos que se van a exportar.
- Los recursos no se crearon con una plantilla.
Exporte la plantilla desde el historial cuando:
- Quiera una plantilla fácil de reutilizar.
- No necesite incluir los cambios realizados después de la implementación original.
Limitaciones
No se garantiza que la exportación se complete correctamente. La exportación no es una manera confiable de convertir recursos preexistentes en plantillas que se puedan usar en producción. Es mejor crear recursos desde cero mediante un archivo Bicep escrito a mano, una plantilla de ARM o Terraform.
Al realizar una exportación de un grupo de recursos o un recurso, la plantilla exportada se genera a partir de los esquemas publicados para cada tipo de recurso. En ocasiones, el esquema no tiene la versión más reciente de un tipo de recurso. Compruebe la plantilla exportada para asegurarse de que incluye las propiedades necesarias. Si es preciso, edite la plantilla exportada para usar la versión de API que necesite.
Es posible que falten algunos parámetros de contraseña en las plantillas exportadas. Debe comprobar la referencia de plantilla y agregar manualmente estos parámetros a fin de poder usar las plantillas para implementar recursos.
La característica de exportación de plantillas no admite la exportación de recursos de Azure Data Factory. Para más información sobre cómo exportar recursos de Data Factory, consulte Copia o clonación de una factoría de datos en Azure Data Factory.
Para exportar los recursos creados mediante el modelo de implementación clásica, debe migrarlos al modelo de implementación de Resource Manager.
Si recibe una advertencia al exportar una plantilla que indica que un tipo de recurso no se ha exportado, aún puede detectar las propiedades de ese recurso. Para obtener las propiedades de los recursos, vea Referencia de plantillas. También puede consultar la API de REST de Azure para el tipo de recurso.
Hay un límite de 200 recursos en el grupo de recursos para el que se crea la plantilla exportada. Si intenta exportar un grupo de recursos con más de 200 recursos, se muestra el mensaje de error Export template is not supported for resource groups more than 200 resources
.
Exportación de la plantilla desde un grupo de recursos
Después de configurar el grupo de recursos correctamente, es posible exportar una plantilla de Resource Manager para el grupo de recursos.
Para exportar todos los recursos de un grupo de recursos, use az group export y proporcione el nombre del grupo de recursos.
az group export --name demoGroup
El script muestra la plantilla en la consola. Para guardar la plantilla en un archivo, utilice:
az group export --name demoGroup > exportedtemplate.json
En lugar de exportar todos los recursos del grupo de recursos, puede seleccionar los recursos que quiere exportar.
Para exportar un recurso, pase el identificador de ese recurso.
storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID
Para exportar más de un recurso, pase los identificadores de recursos separados por espacios. Para exportar todos los recursos, no especifique este argumento ni especifique "*".
az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2
Al exportar la plantilla, puede especificar si se usan parámetros en ella. De forma predeterminada, se incluyen parámetros para los nombres de recursos, pero no tienen un valor predeterminado.
"parameters": {
"serverfarms_demoHostPlan_name": {
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"type": "String"
}
}
Si usa el parámetro --skip-resource-name-params
al exportar la plantilla, los parámetros de los nombres de recursos no se incluyen en la plantilla. En cambio, el nombre del recurso se establece directamente en el recurso en su valor actual. No se puede personalizar el nombre durante la implementación.
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "demoHostPlan",
...
}
]
Si usa el parámetro --include-parameter-default-value
al exportar la plantilla, el parámetro de la plantilla incluye un valor predeterminado que se establece en el valor actual. Puede usar ese valor predeterminado o pasar un valor diferente para sobrescribir el predeterminado.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": "demoHostPlan",
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": "webSite3bwt23ktvdo36",
"type": "String"
}
}
Guardado de una plantilla desde el historial de implementación
Puede guardar una plantilla de una implementación en el historial de implementación. La plantilla que se obtiene es exactamente la que se ha usado para la implementación.
Para obtener una plantilla a partir de la implementación de un grupo de recursos, utilice el comando az deployment group export. Especifique el nombre de la implementación que desea recuperar. Para obtener ayuda con el nombre de una implementación, consulte Visualización del historial de implementación Azure Resource Manager.
az deployment group export --resource-group demoGroup --name demoDeployment
La plantilla se muestra en la consola. Para guardar el archivo, utilice:
az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json
Para implementar plantillas en otros niveles, utilice:
- az deployment sub export para implementaciones en suscripciones
- az deployment mg export para implementaciones en grupo de administración
- az deployment tenant export para implementaciones en inquilinos
Pasos siguientes
- Aprenda a exportar plantillas con Azure Portal, Azure PowerShell o API REST.
- Para obtener información sobre la sintaxis de las plantillas de Resource Manager, consulte Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.
- Para obtener información sobre cómo desarrollar plantillas, consulte los tutoriales paso a paso.