Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При разработке приложения важно иметь переносимость шаблона между Azure и Azure Stack Hub. В этой статье приводятся рекомендации по разработке шаблонов Azure Resource Manager. С помощью этих шаблонов можно прототипировать приложение и протестировать развертывание в Azure без доступа к среде Azure Stack Hub.
Доступность поставщика ресурсов
Шаблон, который планируется развернуть, должен использовать только службы Microsoft Azure, которые уже доступны или в предварительной версии, в Azure Stack Hub.
Общедоступные пространства имен
Так как Azure Stack Hub размещается в центре обработки данных, он имеет разные пространства имен конечной точки службы, чем общедоступное облако Azure. В результате жестко заданные общедоступные конечные точки в шаблонах Azure Resource Manager дают сбой при попытке их развертывания в Azure Stack Hub. Вы можете динамически создавать конечные точки службы с помощью функций reference и concatenate для получения значений от поставщика ресурсов во время развертывания. Например, вместо жёсткого кодирования blob.core.windows.net в вашем шаблоне, получите primaryEndpoints.blob, чтобы динамически задать конечную точку 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')]"}}
Управление версиями API
Версии службы Azure могут отличаться между Azure и Azure Stack Hub. Для каждого ресурса требуется атрибут apiVersion, определяющий предлагаемые возможности. Чтобы обеспечить совместимость версий API в Azure Stack Hub, для каждого поставщика ресурсов допустимы следующие версии API:
| Поставщик ресурсов | apiVersion |
|---|---|
| Вычислять | 2015-06-15 |
| Сеть | 2015-06-15, 2015-05-01-preview |
| Хранение | 2016-01-01, 2015-06-15, 2015-05-01-preview |
| KeyVault | 2015-06-01 |
| Служба приложений | 2015-08-01 |
Функции шаблона
Функции Azure Resource Manager предоставляют возможности, необходимые для создания динамических шаблонов. Например, можно использовать функции для таких задач, как:
- Объединение или обрезка строк.
- Ссылки на значения из других ресурсов.
- Повторная обработка ресурсов для развертывания нескольких экземпляров.
Эти функции недоступны в Azure Stack Hub:
- Пропустить
- Брать
Расположение ресурса
Шаблоны Azure Resource Manager используют атрибут location для размещения ресурсов во время развертывания. В Azure расположения ссылаются на регион, например западная часть США или Южная Америка. В Azure Stack Hub расположения отличаются, так как Azure Stack Hub находится в центре обработки данных. Чтобы обеспечить передачу шаблонов между Azure и Azure Stack Hub, следует ссылаться на расположение группы ресурсов при развертывании отдельных ресурсов. Это можно сделать с помощью [resourceGroup().Location], чтобы убедиться, что все ресурсы наследуют расположение группы ресурсов. Следующий код является примером использования этой функции при развертывании учетной записи хранения:
"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"
}
}
]