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

Volgende stappen