Compartir a través de


Desarrollo de plantillas para Azure Stack Hub con Azure Resource Manager

A medida que desarrolle la aplicación, es importante tener portabilidad de plantillas entre Azure y Azure Stack Hub. En este artículo se proporcionan consideraciones para desarrollar plantillas de Azure Resource Manager. Con estas plantillas, puede crear prototipos de la aplicación y probar la implementación en Azure sin acceso a un entorno de Azure Stack Hub.

Disponibilidad del proveedor de recursos

La plantilla que planea implementar solo debe usar los servicios de Microsoft Azure que ya están disponibles o en versión preliminar en Azure Stack Hub.

Espacios de nombres públicos

Dado que Azure Stack Hub se hospeda en el centro de datos, tiene diferentes espacios de nombres de punto de conexión de servicio que la nube pública de Azure. Como resultado, se produce un error en los puntos de conexión públicos codificados de forma rígida en las plantillas de Azure Resource Manager al intentar implementarlos en Azure Stack Hub. Puede compilar dinámicamente puntos de conexión de servicio mediante las reference funciones y concatenate para recuperar valores del proveedor de recursos durante la implementación. Por ejemplo, en lugar de codificar blob.core.windows.net de forma rígida en la plantilla, recupere primaryEndpoints.blob para establecer dinámicamente el punto de conexión de osDisk.URI :

"osDisk": {"name": "osdisk","vhd": {"uri":
"[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2015-06-15').primaryEndpoints.blob, variables('vmStorageAccountContainerName'),
 '/',variables('OSDiskName'),'.vhd')]"}}

Control de versiones de API

Las versiones de servicio de Azure pueden diferir entre Azure y Azure Stack Hub. Cada recurso requiere el atributo apiVersion , que define las funcionalidades que se ofrecen. Para garantizar la compatibilidad de versiones de API en Azure Stack Hub, las siguientes versiones de API son válidas para cada proveedor de recursos:

Proveedor de recursos apiVersion
Calcular 2015-06-15
Red 2015-06-15, 2015-05-01-preview
Almacenamiento 2016-01-01, 2015-06-15, 2015-05-01-preview
KeyVault 2015-06-01
Servicio de Aplicaciones 2015-08-01

Funciones de plantillas

Las funciones de Azure Resource Manager proporcionan las funcionalidades necesarias para crear plantillas dinámicas. Por ejemplo, puede usar funciones para tareas como:

  • Concatenación o recorte de cadenas.
  • Hacer referencia a valores de otros recursos.
  • Iteración en los recursos para implementar varias instancias.

Estas funciones no están disponibles en Azure Stack Hub:

  • Omitir
  • Tomar

Ubicación del recurso

Las plantillas de Azure Resource Manager usan un location atributo para colocar recursos durante la implementación. En Azure, las ubicaciones hacen referencia a una región como Oeste de EE. UU. o Sudamérica. En Azure Stack Hub, las ubicaciones son diferentes porque Azure Stack Hub está en el centro de datos. Para asegurarse de que las plantillas se pueden transferir entre Azure y Azure Stack Hub, debe hacer referencia a la ubicación del grupo de recursos a medida que implementa recursos individuales. Puede hacerlo mediante [resourceGroup().Location] para asegurarse de que todos los recursos heredan la ubicación del grupo de recursos. El código siguiente es un ejemplo de uso de esta función al implementar una cuenta de almacenamiento:

"resources": [
{
  "name": "[variables('storageAccountName')]",
  "type": "Microsoft.Storage/storageAccounts",
  "apiVersion": "[variables('apiVersionStorage')]",
  "location": "[resourceGroup().location]",
  "comments": "This storage account is used to store the VM disks",
  "properties": {
  "accountType": "Standard_LRS"
  }
}
]

Pasos siguientes