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