Sjablonen ontwikkelen voor Azure Stack Hub met Azure Resource Manager
Bij het ontwikkelen van uw app is het belangrijk dat u overdraagbaarheid van sjablonen hebt tussen Azure en Azure Stack Hub. Dit artikel bevat overwegingen voor het ontwikkelen Azure Resource Manager sjablonen. Met deze sjablonen kunt u een prototype van uw app maken en de implementatie testen in Azure zonder toegang tot Azure Stack Hub omgeving.
Beschikbaarheid van resourceprovider
De sjabloon die u wilt implementeren, mag alleen gebruikmaken Microsoft Azure services die al beschikbaar of in preview zijn, in Azure Stack Hub.
Openbare naamruimten
Omdat Azure Stack Hub wordt gehost in uw datacenter, heeft het andere service-eindpuntnaamruimten dan de openbare Azure-cloud. Als gevolg hiervan mislukken in code gecodeerde 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 reference de functies en concatenate om waarden van de resourceprovider op te halen tijdens de implementatie. In plaats van hard-coding blob.core.windows.net in uw sjabloon haalt u bijvoorbeeld blob.core.windows.net 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-versieversies
Azure-serviceversies kunnen verschillen tussen Azure en Azure Stack Hub. Voor elke resource is het kenmerk apiVersion vereist, waarmee de aangeboden mogelijkheden worden bepaald. Om ervoor te zorgen dat api-versiecompatibiliteit in Azure Stack Hub, 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 voor het bouwen van dynamische sjablonen. U kunt bijvoorbeeld functies gebruiken voor taken zoals:
- Tekenreeksen samenvoegen of inkorten.
- Verwijzend naar waarden uit andere resources.
- Itereren 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 kenmerk location 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 de locaties anders omdat Azure Stack Hub zich in uw datacenter bevindt. Om ervoor te zorgen dat sjablonen kunnen worden overdraagbaar 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 met om ervoor [resourceGroup().Location] 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"
}
}
]