Información sobre las especificaciones de plantilla
Actualmente, está acostumbrado a implementar plantillas de Azure Resource Manager (plantillas de ARM) en Azure mediante Bicep o JSON. Se crea un archivo de plantilla y, a continuación, se envía a Azure mediante la creación de una implementación. Azure Resource Manager orquesta la creación o reconfiguración de los recursos.
Cuando trabaja con especificaciones de plantilla, la plantilla se envía igualmente a Azure. Pero en lugar de implementarla, Azure la guardará para que la use en el futuro. A continuación, puede volver más adelante e indicar a Azure que implemente la especificación de plantilla. Incluso puede usar la misma especificación de plantilla varias veces para implementar más entornos.
¿Por qué usar especificaciones de plantilla?
En su empresa de juguetes, ha creado una gran cantidad de plantillas reutilizables, entre las que se incluyen:
Nombre de plantilla | Descripción |
---|---|
Cuenta de almacenamiento | Implementa una cuenta de almacenamiento y aplica la autenticación de Microsoft Entra. |
Cuenta de Cosmos DB | Implementa una cuenta de Azure Cosmos DB con la copia de seguridad continua habilitada. |
Virtual network | Implementa una red virtual que tiene la configuración adecuada para el emparejamiento con la red central principal. |
Sitio web de lanzamiento de productos | Implementa un plan de Azure App Service, una aplicación y una cuenta de almacenamiento para sitios web que incluyen lanzamientos de productos de nuevos juguetes. |
Las especificaciones de plantilla son una excelente manera de crear una biblioteca de plantillas de ARM reutilizables para los escenarios comunes de la organización. Un experto puede crear una plantilla con un recurso o un conjunto de recursos preconfigurados. Después, ese experto puede publicarla como una especificación de plantilla, lo que permite implementarla a otras personas de la organización.
Puede usar especificaciones de plantilla para asegurarse de que los recursos que cree el equipo estén configurados según sus requisitos. Por ejemplo, podría publicar una especificación de plantilla como la plantilla de cuenta de almacenamiento que se ha descrito anteriormente. Entonces, siempre que cualquier usuario de la organización implemente la especificación de plantilla, puede asegurarse de que crean una cuenta de almacenamiento con la configuración de autenticación correcta.
Las especificaciones de plantilla se almacenan en Azure, por lo que no es necesario mantener los archivos de plantilla compartidos. Puede administrar quién puede usar y modificar las especificaciones de plantilla con controles de acceso basados en roles de Azure. Sin las especificaciones de plantilla, debe elegir una ubicación de almacenamiento, como Azure Storage, para mantener los archivos de plantilla. También debe controlar el acceso usted mismo.
¿Cómo son las especificaciones de plantilla en comparación con los módulos de Bicep?
Cuando trabaja con Bicep, puede crear módulos reutilizables para definir conjuntos de recursos en un único archivo. Las especificaciones de plantilla y los módulos de Bicep son dos formas de agregar reusabilidad a las plantillas, pero están optimizados para diferentes cosas:
- Las especificaciones de plantilla están diseñadas para poder implementarse como una plantilla completa. Puede implementar especificaciones de plantilla mediante Azure Portal, así como mediante herramientas como la CLI de Azure y Azure PowerShell. Los módulos de Bicep están diseñados para combinarse en una implementación mayor. Sin embargo, si ha creado una especificación de plantilla, Bicep también permite usarla como un módulo si lo desea.
- Las especificaciones de plantilla proporcionan funcionalidades de control de versiones y control de acceso. Debe administrar las versiones y la seguridad del código de Bicep usted mismo.
- Las especificaciones de plantilla se almacenan en Azure como un recurso. Los módulos de Bicep se deben almacenar en algún lugar que controle, por ejemplo, un sistema de control de versiones como Git o el sistema de archivos.
- Los módulos de Bicep conservan todo el código original de Bicep, incluidos los comentarios, los nombres simbólicos y los espacios en blanco. Al crear una especificación de plantilla mediante Bicep, el código de Bicep se convierte a JSON y parte de esta información se pierde. Por lo tanto, también debe mantener el archivo de Bicep de origen en otro lugar.
Al decidir entre el uso de las especificaciones de plantilla y los módulos de Bicep, una buena regla general es: si la plantilla se va a implementar tal y como está en toda la organización, es probable que las especificaciones de plantilla sean una buena opción. Pero si es probable que reutilice esta plantilla dentro de varias plantillas primarias, los módulos de Bicep pueden satisfacer mejor sus necesidades.
Funcionamiento de las especificaciones de plantilla
Una especificación de plantilla es un recurso de Azure, al igual que una cuenta de almacenamiento o una máquina virtual. Se debe crear dentro de un grupo de recursos, aunque la propia plantilla puede implementar recursos en un ámbito de suscripción, administración o inquilino.
Cuando se trabaja con especificaciones de plantilla, se crean dos recursos:
- La especificación de plantilla es el recurso contenedor. Contiene una o varias versiones.
- Las versiones de especificación de plantilla contienen la plantilla real que se va a implementar.
Puede trabajar con especificaciones y versiones de plantilla mediante sus identificadores de recurso. Este es un identificador de recurso de ejemplo de una especificación de plantilla:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS
Una versión es un recurso secundario de la especificación de plantilla. Tiene un identificador de recurso como este ejemplo:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0
Al implementar una especificación de plantilla, debe especificar el identificador de recurso de la versión de la especificación de plantilla.
Esta es una ilustración del flujo de trabajo que seguirá al usar especificaciones de plantilla:
Cree una plantilla de la manera que esté acostumbrado. No hay nada especial en una plantilla que vaya a crear para una especificación de plantilla. Declare recursos, cree parámetros y variables, use funciones, etc.
Cuando la plantilla esté lista, cree un recurso de especificación de plantilla. A continuación, publique la plantilla en la especificación de plantilla como una versión. Las herramientas que se usan para crear especificaciones de plantilla le permiten hacer estos pasos en una sola operación. La especificación de plantilla se almacena en Azure como un recurso, después de publicarla. Puede verla, editarla y controlar el acceso como con cualquier otro recurso de Azure. Puede publicar la especificación de plantilla desde la máquina local o desde una canalización de implementación.
Siempre que quiera implementar la especificación de plantilla, haga referencia al identificador de recurso de la versión de especificación de plantilla desde la implementación. Puede implementarla en cualquier grupo de recursos o incluso en otra suscripción o ámbito. Azure lee la especificación de plantilla y la usa como plantilla para la implementación.