Tworzenie szablonów dla usługi Azure Stack Hub za pomocą usługi Azure Resource Manager
Podczas opracowywania aplikacji ważne jest, aby mieć przenośność szablonu między platformą Azure i usługą Azure Stack Hub. Ten artykuł zawiera zagadnienia dotyczące tworzenia szablonów usługi Azure Resource Manager . Za pomocą tych szablonów możesz prototypować aplikację i testować wdrożenie na platformie Azure bez dostępu do środowiska usługi Azure Stack Hub.
Dostępność dostawcy zasobów
Szablon, który chcesz wdrożyć, musi używać tylko usług platformy Microsoft Azure, które są już dostępne lub dostępne w wersji zapoznawczej w usłudze Azure Stack Hub.
Publiczne przestrzenie nazw
Ponieważ usługa Azure Stack Hub jest hostowana w centrum danych, ma inne przestrzenie nazw punktu końcowego usługi niż chmura publiczna platformy Azure. W związku z tym trwale zakodowane publiczne punkty końcowe w szablonach usługi Azure Resource Manager kończą się niepowodzeniem podczas próby wdrożenia ich w usłudze Azure Stack Hub. Punkty końcowe usługi można dynamicznie tworzyć przy użyciu funkcji reference
i concatenate
w celu pobrania wartości od dostawcy zasobów podczas wdrażania. Na przykład zamiast kodować blob.core.windows.net
w szablonie pobierz primaryEndpoints.blob, aby dynamicznie ustawić punkt końcowy osDisk.URI:
"osDisk": {"name": "osdisk","vhd": {"uri":
"[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2015-06-15').primaryEndpoints.blob, variables('vmStorageAccountContainerName'),
'/',variables('OSDiskName'),'.vhd')]"}}
Przechowywanie wersji interfejsu API
Wersje usług platformy Azure mogą się różnić między platformą Azure i usługą Azure Stack Hub. Każdy zasób wymaga atrybutu apiVersion, który definiuje oferowane możliwości. Aby zapewnić zgodność wersji interfejsu API w usłudze Azure Stack Hub, następujące wersje interfejsu API są prawidłowe dla każdego dostawcy zasobów:
Dostawca zasobów | apiVersion |
---|---|
Liczyć | 2015-06-15 |
Sieć | 2015-06-15, 2015-05-01-preview |
Przechowywanie | 2016-01-01, 2015-06-15, 2015-05-01-preview |
KeyVault | 2015-06-01 |
App Service | 2015-08-01 |
Funkcje szablonu
Funkcje usługi Azure Resource Manager zapewniają możliwości wymagane do tworzenia szablonów dynamicznych. Na przykład można użyć funkcji dla zadań, takich jak:
- Łączenie lub przycinanie ciągów.
- Odwoływanie się do wartości z innych zasobów.
- Iterowanie zasobów w celu wdrożenia wielu wystąpień.
Te funkcje nie są dostępne w usłudze Azure Stack Hub:
- Pominąć
- Weź
Lokalizacja zasobu
Szablony usługi Azure Resource Manager używają atrybutu location
do umieszczania zasobów podczas wdrażania. Na platformie Azure lokalizacje odnoszą się do regionu, takiego jak Zachodnie stany USA lub Ameryka Południowa. W usłudze Azure Stack Hub lokalizacje są różne, ponieważ usługa Azure Stack Hub znajduje się w centrum danych. Aby upewnić się, że szablony można przenosić między platformą Azure i usługą Azure Stack Hub, należy odwołać się do lokalizacji grupy zasobów podczas wdrażania poszczególnych zasobów. Można to zrobić, używając [resourceGroup().Location]
, aby upewnić się, że wszystkie zasoby dziedziczą lokalizację grupy zasobów. Poniższy kod to przykład użycia tej funkcji podczas wdrażania konta magazynu:
"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"
}
}
]