Entwickeln von Vorlagen für Azure Stack Hub mit Azure Resource Manager

Bei der Entwicklung Ihrer App ist die Portabilität von Vorlagen zwischen Azure und Azure Stack Hub wichtig. Dieser Artikel enthält Überlegungen zum Entwickeln von Azure Resource Manager-Vorlagen. Mit diesen Vorlagen können Sie einen Prototyp Ihrer App erstellen und die Bereitstellung in Azure ohne Zugriff auf eine Azure Stack Hub-Umgebung testen.

Verfügbarkeit des Ressourcenanbieters

Die Vorlage, die Sie bereitstellen möchten, darf nur Microsoft Azure-Dienste verwenden, die in Azure Stack Hub bereits verfügbar sind oder sich in der Vorschauphase befinden.

Öffentliche Namespaces

Da Azure Stack Hub in Ihrem Rechenzentrum gehostet wird, weist die Lösung andere Dienstendpunkt-Namespaces als die öffentliche Azure-Cloud auf. Daher verursachen hartcodierte öffentliche Endpunkte in Azure Resource Manager-Vorlagen Fehler, wenn Sie versuchen, sie in Azure Stack Hub bereitzustellen. Sie können Dienstendpunkte mithilfe der Funktionen reference und concatenate dynamisch erstellen, um Werte während der Bereitstellung vom Ressourcenanbieter abzurufen. Anstatt beispielsweise blob.core.windows.net in Ihrer Vorlage hartzucodieren, rufen Sie primaryEndpoints.blob ab, um den Endpunkt osDisk.URI dynamisch festzulegen:

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

API-Versionsverwaltung

Die Versionen von Azure-Diensten können zwischen Azure und Azure Stack Hub variieren. Jede Ressource erfordert das Attribut apiVersion, das die gebotenen Funktionen definiert. Um API-Versionskompatibilität in Azure Stack Hub sicherzustellen, sind die folgenden API-Versionen für jeden Ressourcenanbieter gültig:

Ressourcenanbieter apiVersion
Compute 2015-06-15
Netzwerk 2015-06-15, 2015-05-01-preview
Storage 2016-01-01, 2015-06-15, 2015-05-01-preview
KeyVault 2015-06-01
App Service 2015-08-01

Funktionen von Azure-Ressourcen-Manager-Vorlagen

Azure Resource Manager-Funktionen ermöglichen das Erstellen dynamischer Vorlagen. Beispielsweise können Sie Funktionen für Aufgaben wie die folgenden verwenden:

  • Verketten oder Kürzen von Zeichenfolgen
  • Verweisen auf Werte aus anderen Ressourcen
  • Durchlaufen von Ressourcen zur Bereitstellung mehrerer Instanzen

Diese Funktionen sind in Azure Stack Hub nicht verfügbar:

  • Überspringen
  • Take

Ressourcenspeicherort

Azure Resource Manager-Vorlagen nutzen ein location-Attribut zum Platzieren von Ressourcen während der Bereitstellung. In Azure verweisen Standorte auf eine Region wie „USA, Westen“ oder „Südamerika“. Die Speicherorte sind in Azure Stack Hub anders, weil Azure Stack Hub sich in Ihrem Rechenzentrum befindet. Um sicherzustellen, dass Vorlagen zwischen Azure und Azure Stack Hub übertragbar sind, müssen Sie auf den Speicherort der Ressourcengruppe verweisen, während Sie einzelne Ressourcen bereitstellen. Nutzen Sie hierfür [resourceGroup().Location], um sicherzustellen, dass alle Ressourcen den Speicherort der Ressourcengruppe erben. Der folgende Code ist ein Beispiel für die Verwendung dieser Funktion beim Bereitstellen eines Speicherkontos:

"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"
  }
}
]

Nächste Schritte