Упражнение. Развертывание шаблонов Resource Manager
Примечание.
Когда вы в первый раз активируете песочницу и принимаете условия, ваша учетная запись Майкрософт связывается с новым каталогом Azure с именем Microsoft Learn Sandbox. Вы будете добавлены в специальную подписку с именем "Подписка Concierge".
В этом разделе вы развернете шаблон Azure Resource Manager (ARM) со своего компьютера и из репозитория GitHub, указав универсальный код ресурса (URI).
Внимание
В этом упражнении используются средства Azure Resource Manager для Visual Studio Code. Убедитесь, что это расширение установлено в Visual Studio Code.
Настройка среды с использованием подписки песочницы Microsoft Learn
Чтобы выполнить каждое развертывание в этом уроке, необходимо войти в свою учетную запись Azure из терминала Visual Studio Code.
Обязательно войдите в ту же учетную запись, которая активировала песочницу.
Вход в Azure
В окне терминала Visual Studio Code выполните следующую команду, чтобы войти в Azure. При выполнении этой команды откроется браузер, позволяющий войти в учетную запись.
Connect-AzAccount
После входа в окне терминала появится список подписок, связанных с этой учетной записью. Если вы активировали песочницу, в этом списке должна быть подписка Concierge.
Проверьте имя подписки. В следующей команде перечислены подписки, имена и их идентификаторы в удобном для чтения формате таблицы. Поищите
Concierge Subscription
.Get-AzSubscription
Измените свою активную подписку на подписку Concierge.
$context = Get-AzSubscription -SubscriptionName "Concierge Subscription" | Set-AzContext
Установка группы ресурсов по умолчанию
Теперь нужно установить в качестве группы ресурсов по умолчанию группу ресурсов, созданную для вас в песочнице. Чтобы выполнить эту операцию, сначала необходимо получить имя группы ресурсов с помощью указанной ниже команды:
Get-AzResourceGroup | where-object ResourceGroupName -match "learn" | Set-AzDefault
В этой команде используйте имя ресурса, полученное из предыдущей команды. (Похоже, что-то подобное learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Эта команда позволяет опустить этот параметр из остальных команд Azure PowerShell в этом упражнении.
Примечание.
Обычно при использовании команды PowerShell или Azure CLI для развертывания шаблона необходимо указать имя целевой группы ресурсов. Выполнив предыдущую команду, мы установили контекст развертывания. Мы указали имя группы ресурсов песочницы с помощью команды PowerShell Set-AzDefault:
Set-AzDefault -ResourceGroupName {Resource Group Name}
Развертывание локального шаблона
В следующем упражнении вы развернете шаблон на локальном компьютере. Имя группы ресурсов, обычно используемое при развертывании в собственной среде, здесь не требуется, так как мы уже определили группу ресурсов по умолчанию в предыдущем разделе.
Сначала скопируйте приведенный ниже код шаблона и вставьте его в файл в локальном каталоге. Например, используйте
C:\JSON\maintemplate.json
.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
После локального сохранения файла можно использовать команду PowerShell для его развертывания на уровне группы ресурсов, о котором мы говорили в последнем уроке. А именно используйте команду New-AzResourceGroupDeployment .
$templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
После завершения работы должны быть результаты, как в этом примере.
DeploymentName : DeployLocalTemplate-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:50:04 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Развертывание того же локального шаблона со значениями параметров
В предыдущем упражнении вы развернули шаблон со значениями параметров по умолчанию. При развертывании локального шаблона Resource Manager может потребоваться передать значения параметров. Можно использовать встроенные параметры либо файл параметров.
Чтобы передать встроенные параметры в развертывание, необходимо указать имена параметров с помощью командлета New-AzResourceGroupDeployment
. В следующем упражнении вы передадите параметры как встроенные и в виде файла параметров.
Используя тот же шаблон, что и последнее упражнение, создайте хэш-таблицу, содержащую значения необходимых параметров шаблона.
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-2-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterObject $parameters
После выполнения команды результат должен выглядеть следующим образом:
DeploymentName : DeployLocalTemplate-2-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:51:55 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Вместо того чтобы передавать параметры в виде встроенных значений в скрипте, иногда проще использовать JSON-файл, содержащий значения параметров. Файл параметров может быть локальным или храниться во внешнем (удаленном) расположении с доступным кодом URI. Дополнительные сведения о файле параметров см. в статье Создание файла параметров Resource Manager.
Чтобы передать локальный файл параметров, используйте параметр
TemplateParameterFile
в той же команде, что и ранее. Но сначала необходимо создать и сохранить файл параметров.Так как мы используем Visual Studio Code с расширением средств Azure Resource Manager, вы можете открыть шаблон ARM, сохраненный локально, и выбрать ссылку Select/create parameter file... .
Выберите "Создать " в меню и выберите "Только необходимые параметры". Расширение создает файл параметров на основе открытого шаблона.
Используйте следующую команду PowerShell с параметром
TemplateParameterFile
.$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $TemplateParameterFile= "C:\JSON\maintemplate.parameters.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-3-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterFile $TemplateParameterFile
После развертывания результаты должны выглядеть следующим образом.
DeploymentName : DeployLocalTemplate-3-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:54:40 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Развертывание внешнего или удаленного шаблона
Иногда необходимо выполнить развертывание из внешнего или удаленного расположения, а не из шаблона на локальном компьютере. Вы можете хранить шаблоны в репозитории системы управления версиями (например, GitHub). А также их можно хранить в учетной записи хранения Azure для общего доступа в организации.
Для развертывания внешнего шаблона используйте параметр
TemplateUri
.В следующем упражнении вы развернете шаблон Resource Manager из репозитория GitHub. Репозиторий является общедоступным, поэтому вам не нужно беспокоиться о наличии маркера подписанного URL-адреса (SAS). Дополнительные сведения об использовании частного или защищенного удаленного расположения см. в разделе Развертывание частного шаблона с маркером SAS.
Универсальный код ресурса (URI) шаблона для этого упражнения — https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Это короткий шаблон, который развертывает базовую учетную запись хранения в среде песочницы.
Команда PowerShell точно такая же, как и для локального шаблона. Единственное отличие заключается в том, что параметр
-TemplateUri
заменяет параметр-TemplateFile
.Используйте приведенный ниже код для развертывания в предоставленной песочнице:
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-4-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Результаты похожи на следующую запись экрана. В них представлены сведения о расположении шаблона.
DeploymentName : DeployLocalTemplate-4-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:56:55 p.m. Mode : Incremental TemplateLink : Uri : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json ContentVersion : 1.0.0.0 Parameters : Name Type Value ==================== ========================= ========== storageAccountType String Standard_LRS location String westus Outputs : Name Type Value ==================== ========================= ========== storageAccountName String storepgxosadmbq77e DeploymentDebugLogLevel :
Примечание.
В этом разделе используются команды Azure CLI для подсистемы Windows для Linux (WSL2) в Windows 10. Эти команды одинаковы, независимо от применяемой с Azure CLI оболочки: PowerShell, CMD или bash. Однако способ обращения к переменным может отличаться.
Вход в Azure
В окне терминала Visual Studio Code выполните следующую команду, чтобы войти в Azure. При выполнении этой команды откроется браузер, позволяющий войти в учетную запись.
az login
После входа в окне терминала появится список в формате JSON, который содержит подписки, связанные с этой учетной записью. Если вы активировали песочницу, в этом списке должна быть подписка Concierge.
Получите идентификатор подписки. Следующая команда содержит список подписок и их идентификаторов. Идентификатор подписки находится во втором столбце. Найдите
Concierge Subscription
и скопируйте третий столбец. Она должна выглядеть примерно так:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.az account list -o table
Измените свою активную подписку на подписку Concierge. Обязательно замените строку
{Your subscription ID}
идентификатором подписки Concierge, полученным в результате выполнения последней команды.az account set -s {Your subscription ID}
Установка группы ресурсов по умолчанию
Теперь нужно установить в качестве группы ресурсов по умолчанию группу ресурсов, созданную для вас в песочнице. Чтобы выполнить эту операцию, сначала необходимо получить имя группы ресурсов с помощью указанной ниже команды:
az group list -o table
В этой команде используйте имя ресурса, полученное из предыдущей команды. (Это похоже на learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Эта команда позволяет опустить этот параметр из остальных команд Azure CLI в этом упражнении.
Примечание.
Обычно при использовании команды Azure CLI для развертывания шаблона необходимо указать имя целевой группы ресурсов. В упражнении этого модуля мы обходим это требование, задавая контекст нашего развертывания. Мы указываем имя группы ресурсов песочницы на следующем шаге с помощью команды az configure Azure CLI.
az configure --defaults group={Resource Group Name}
Развертывание локального шаблона
В следующем упражнении вы развернете шаблон на локальном компьютере. Имя группы ресурсов, обычно используемое при развертывании в собственной среде, здесь не требуется, так как мы уже определили группу ресурсов по умолчанию в предыдущем разделе.
Сначала скопируйте приведенный ниже код шаблона и вставьте его в файл в локальном каталоге. Например, используйте
C:\JSON\maintemplate.json
или/mnt/c/Users/you/json/maintemplate.json
.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
После локального сохранения файла можно использовать команду Azure CLI для развертывания на уровне группы ресурсов, о котором мы говорили в последнем уроке. А именно, используйте команду az deployment group create.
Примечание.
В приведенном ниже примере файл шаблона находится в папке json на диске домашней папки в подсистеме Windows для Linux (WSL2). Скорректируйте команду в зависимости от выбранной оболочки.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile
После завершения выходные данные должны выглядеть следующим образом. Чтобы убедиться, что развертывание прошло успешно, обратите внимание на строку
"provisioningState": "Succeeded"
.{ "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2020-08-19", "location": null, "name": "DeployLocalTemplate-2020-08-19", "properties": { "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd", "debugSetting": null, "dependencies": [], "duration": "PT8.9060761S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T14:47:06.403362+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
Развертывание того же локального шаблона со значениями параметров
В предыдущем упражнении вы развернули шаблон со значениями параметров по умолчанию. При развертывании локального шаблона Resource Manager может потребоваться передать значения параметров. Можно использовать встроенные параметры либо файл параметров.
В следующем упражнении вы передаете встроенные параметры в развертывание. Необходимо указать имена параметров, использующих встроенные параметры или файл параметров, с помощью az deployment group create
команды.
Используя тот же шаблон, что и последнее упражнение, создайте переменную, содержащую параметры в формате строки JSON для необходимых параметров шаблона.
Примечание.
В приведенном ниже примере файл шаблона находится в папке json в подсистеме Windows для Linux (WSL2). Скорректируйте команду в зависимости от выбранной оболочки и ОС.
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-2-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters "$parameters"
В итоге вы получите результат, как в следующем примере. Чтобы убедиться, что команда выполнена успешно, см
"parameters"
. раздел и"provisioningState"
значение.{- Finished .. "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2-2020-08-19", "location": null, "name": "DeployLocalTemplate-2-2020-08-19", "properties": { "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "debugSetting": null, "dependencies": [], "duration": "PT4.6990388S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T16:40:20.249786+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
Вместо того чтобы передавать параметры в виде встроенных значений в скрипте, иногда проще использовать JSON-файл, содержащий значения параметров. Файл параметров может быть локальным или храниться во внешнем (удаленном) расположении с доступным кодом URI. Дополнительные сведения о файле параметров см. в статье Создание файла параметров Resource Manager.
Чтобы передать локальный файл параметров, используйте параметр
--parameters
в той же команде, что и ранее. Но сначала необходимо создать и сохранить файл параметров.Так как мы используем Visual Studio Code с расширением средств Azure Resource Manager, вы можете открыть шаблон ARM, сохраненный локально, и выбрать файл параметров, чтобы включить полную ссылку проверки .
Выберите пункт меню Создать. Расширение создает файл параметров на основе открытого шаблона.
Используйте следующую команду Azure CLI с параметром
--parameters
.Примечание.
В приведенном ниже примере файл шаблона находится в папке json в подсистеме Windows для Linux (WSL2). Скорректируйте команду в зависимости от выбранной оболочки и ОС.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json templateparameterfile=/mnt/c/Users/<UserName>/json/maintemplate.parameters.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-3-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters $templateparameterfile
После развертывания результаты houdl выглядят следующим образом.
{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-3-2020-08-19", "location": null, "name": "DeployLocalTemplate-3-2020-08-19", "properties": { "correlationId": "cccc2222-dd33-4444-55ee-666666ffffff", "debugSetting": null, "dependencies": [], "duration": "PT4.2058912S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T20:42:44.069215+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }
Развертывание внешнего или удаленного шаблона
Иногда необходимо выполнить развертывание из внешнего или удаленного расположения, а не из шаблона на локальном компьютере. Вы можете хранить шаблоны в репозитории системы управления версиями (например, GitHub). А также их можно хранить в учетной записи хранения Azure для общего доступа в организации.
- Для развертывания внешнего шаблона используйте параметр
--template-uri
.
В этом упражнении вы развернете шаблон ARM из репозитория GitHub. Репозиторий является общедоступным, поэтому вам не нужно беспокоиться о наличии маркера подписанного URL-адреса (SAS). Дополнительные сведения об использовании частного или защищенного удаленного расположения см. в разделе Развертывание частного шаблона с маркером SAS.
Универсальный код ресурса (URI) шаблона для этого упражнения — https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Это короткий шаблон, который развертывает базовую учетную запись хранения в среде песочницы.
Команда Azure CLI точно такая же, как и для локального шаблона. Единственное отличие заключается в том, что параметр
--template-uri
заменяет параметр--template-file
.Используйте приведенный ниже код для развертывания в предоставленной песочнице:
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-4-"$today az deployment group create \ --name $deploymentname \ --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Результаты похожи на следующий блок кода. Вы увидите сведения о расположении шаблона в разделе
"templateLink"
. Они также показывают, успешно ли развертывание выполнено"provisioningState"
в разделе.{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-4-2020-08-19", "location": null, "name": "DeployLocalTemplate-4-2020-08-19", "properties": { "correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa", "debugSetting": null, "dependencies": [], "duration": "PT24.3286124S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Storage/storageAccounts/store7zk7eyqew54l4", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": { "storageAccountName": { "type": "String", "value": "store7zk7eyqew54l4" } }, "parameters": { "location": { "type": "String", "value": "westus" }, "storageAccountType": { "type": "String", "value": "Standard_LRS" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Storage", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "storageAccounts" } ] } ], "provisioningState": "Succeeded", "templateHash": "12600309984865991765", "templateLink": { "contentVersion": "1.0.0.0", "id": null, "relativePath": null, "uri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json" }, "timestamp": "2020-08-19T20:53:36.759312+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }