Sjablonen ontwikkelen voor Azure Stack Hub met Azure Resource Manager
Bij het ontwikkelen van uw app is het belangrijk om sjabloonportabiliteit te hebben 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 van uw app maken en de implementatie in Azure testen zonder toegang tot een Azure Stack Hub-omgeving.
Beschikbaarheid van resourceprovider
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 Cloud van Azure. Als gevolg hiervan mislukken in code vastgelegde openbare eindpunten in Azure Resource Manager-sjablonen wanneer u ze probeert te implementeren in Azure Stack Hub. U kunt dynamisch service-eindpunten bouwen met behulp van de reference
functies en concatenate
om waarden op te halen van de resourceprovider tijdens de implementatie. Haal bijvoorbeeld in plaats van hard-coding blob.core.windows.net
in uw sjabloon 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 compatibiliteit van API-versies in Azure Stack Hub te garanderen, zijn de volgende API-versies geldig voor elke resourceprovider:
Resourceprovider | apiVersion |
---|---|
Compute | 2015-06-15 |
Netwerk | 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 |
Sjabloonfuncties
Azure Resource Manager-functies bieden de mogelijkheden die nodig zijn om dynamische sjablonen te bouwen. U kunt bijvoorbeeld functies gebruiken voor taken zoals:
- Tekenreeksen samenvoegen of inkorten.
- Verwijzen naar waarden uit andere resources.
- Herhalen op resources om meerdere exemplaren te implementeren.
Deze functies zijn niet beschikbaar in Azure Stack Hub:
- Overslaan
- Take
Resourcelocatie
Azure Resource Manager-sjablonen gebruiken een location
kenmerk om resources te plaatsen tijdens de implementatie. In Azure verwijzen locaties naar een regio zoals VS - west of Zuid-Amerika. In Azure Stack Hub zijn locaties verschillend omdat Azure Stack Hub zich in uw datacenter bevindt. Om ervoor te zorgen dat sjablonen overdraagbaar zijn tussen Azure en Azure Stack Hub, moet u tijdens het implementeren van afzonderlijke resources verwijzen naar de locatie van de resourcegroep. U kunt dit doen door [resourceGroup().Location]
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"
}
}
]