Sjablonen ontwikkelen voor Azure Stack Hub met Azure Resource Manager
Wanneer u uw app ontwikkelt, is het belangrijk dat u sjabloonportabiliteit hebt tussen Azure en Azure Stack Hub. Dit artikel bevat overwegingen voor het ontwikkelen van Azure Resource Manager-sjablonen. Met deze sjablonen kunt u een prototype maken van uw app en implementatie testen in Azure zonder toegang tot een Azure Stack Hub-omgeving.
Beschikbaarheid van resourceproviders
De sjabloon die u wilt implementeren, mag alleen gebruikmaken van Microsoft Azure-services die al beschikbaar zijn of in preview zijn in Azure Stack Hub.
Openbare naamruimten
Omdat Azure Stack Hub wordt gehost in uw datacenter, heeft het andere naamruimten voor service-eindpunten dan de openbare Azure-cloud. Als gevolg hiervan mislukken hard-coded openbare eindpunten in Azure Resource Manager-sjablonen wanneer u probeert deze op Azure Stack Hub te implementeren. U kunt service-eindpunten dynamisch bouwen met behulp van de functies reference
en concatenate
om waarden op te halen van de resourceprovider tijdens de implementatie. Haal in plaats van hardcodering blob.core.windows.net
in uw sjabloon bijvoorbeeld de primaryEndpoints.blob- op om het osDisk.URI-eindpunt dynamisch in te stellen:
"osDisk": {"name": "osdisk","vhd": {"uri":
"[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2015-06-15').primaryEndpoints.blob, variables('vmStorageAccountContainerName'),
'/',variables('OSDiskName'),'.vhd')]"}}
API-versiebeheer
Azure-serviceversies kunnen verschillen tussen Azure en Azure Stack Hub. Voor elke resource is het kenmerk apiVersion vereist, waarmee de aangeboden mogelijkheden worden gedefinieerd. Om ervoor te zorgen dat api-versiecompatibiliteit in Azure Stack Hub compatibel is, zijn de volgende API-versies geldig voor elke resourceprovider:
Hulpbronnenaanbieder | apiVersion |
---|---|
Berekenen | 2015-06-15 |
Netwerk | 2015-06-15, 2015-05-01-preview |
Opslag | 2016-01-01, 2015-06-15, 2015-05-01-preview |
KeyVault | 2015-06-01 |
App Service | 2015-08-01 |
Sjabloonfuncties
Azure Resource Manager -functies de mogelijkheden bieden die nodig zijn voor het bouwen van dynamische sjablonen. U kunt bijvoorbeeld functies gebruiken voor taken zoals:
- Tekenreeksen samenvoegen of bijsnijden.
- Verwijzen naar waarden uit andere resources.
- Herhalen van resources voor het implementeren van meerdere exemplaren.
Deze functies zijn niet beschikbaar in Azure Stack Hub:
- Overslaan
- Nemen
Bronlocatie
Azure Resource Manager-sjablonen gebruiken een location
kenmerk om resources tijdens de implementatie te plaatsen. In Azure verwijzen locaties naar een regio, zoals VS - west of Zuid-Amerika. In Azure Stack Hub zijn locaties anders omdat Azure Stack Hub zich in uw datacenter bevindt. Als u ervoor wilt zorgen dat sjablonen overdraagbaar zijn tussen Azure en Azure Stack Hub, moet u naar de locatie van de resourcegroep verwijzen wanneer u afzonderlijke resources implementeert. U kunt dit doen met behulp van [resourceGroup().Location]
om ervoor te zorgen dat alle resources de locatie van de resourcegroep overnemen. De volgende code is een voorbeeld van het gebruik van deze functie tijdens het implementeren van een opslagaccount:
"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"
}
}
]