Использование кнопки развертывания для развертывания удаленных шаблонов

В этой статье описывается использование кнопки Deploy для Azure для развертывания удаленных шаблонов JSON ARM из репозитория GitHub или учетной записи хранения Azure. Вы можете добавить кнопку непосредственно в файл README.md в репозитории GitHub. Кроме того, можно добавить кнопку на веб-страницу, которая ссылается на репозиторий. Этот метод не поддерживает развертывание удаленных файлов Bicep.

Область развертывания определяется схемой шаблона. Дополнительные сведения можно найти здесь

Предпосылки

Необходимые разрешения

Чтобы развернуть файл Bicep или шаблон Azure Resource Manager (ARM), необходим доступ на запись к ресурсам, которые вы развертываете, и доступ ко всем операциям с типом ресурсов Майкрософт.Resources/deployments. Например, для развертывания виртуальной машины требуется Майкрософт.Compute/virtualMachines/write и разрешения Майкрософт.Resources/deployments/*. Операция what-if имеет те же требования к разрешениям.

Azure CLI версии 2.76.0 или более поздней и Azure PowerShell версии 13.4.0 или более поздней введите параметр ValidationLevel, чтобы определить, как тщательно ARM проверяет шаблон Bicep во время этого процесса. Дополнительные сведения см. в разделе "Что если"

Чтобы увидеть список ролей и разрешений, см. раздел встроенные роли Azure.

Использование общего образа

Чтобы добавить кнопку на веб-страницу или репозиторий, используйте следующий образ:

![Deploy to Azure](https://aka.ms/deploytoazurebutton)
<img src="https://aka.ms/deploytoazurebutton"/>

Изображение отображается следующим образом:

Скриншот кнопки

Создание URL-адреса для развертывания шаблона

В этом разделе показано, как получить URL-адреса для шаблонов, хранящихся в GitHub и учетной записи хранения Azure, а также как их отформатировать.

Шаблон, хранящийся в GitHub

Чтобы создать URL-адрес шаблона, начните с необработанного URL-адреса шаблона в репозитории GitHub. Чтобы просмотреть необработанный URL-адрес, выберите "Необработанный".

Скриншот, на котором показано, как выбрать RAW в GitHub.

Формат URL-адреса:

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

Замечание

Сведения о развертывании шаблона или ссылке на связанный шаблон, хранящийся в частном репозитории GitHub, см. в пользовательском решении, описанном в Создание пользовательского и безопасного предложения портал Azure. Вы можете создать функцию Azure, которая извлекает маркер GitHub из Azure Key Vault.

Если вы используете Git с Azure Repos вместо репозитория GitHub, можно по-прежнему использовать кнопку Deploy для Azure. Убедитесь, что репозиторий является общедоступным. Используйте операцию "Элементы" , чтобы получить шаблон. Запрос должен иметь следующий формат:

https://dev.azure.com/{organization-name}/{project-name}/_apis/git/repositories/{repository-name}/items?scopePath={url-encoded-path}&api-version=6.0

Шаблон, хранящийся в учетной записи хранения Azure

Формат URL-адресов для шаблонов, хранящихся в общедоступном контейнере:

https://{storage-account-name}.blob.core.windows.net/{container-name}/{template-file-name}

Рассмотрим пример.

https://demostorage0215.blob.core.windows.net/democontainer/azuredeploy.json

Шаблон можно защитить с помощью маркера SAS. Дополнительные сведения см. в статье "Развертывание частного шаблона ARM с маркером SAS". Следующий URL-адрес является примером маркера SAS:

https://demostorage0215.blob.core.windows.net/privatecontainer/azuredeploy.json?sv=2019-07-07&sr=b&sig=rnI8%2FvKoCHmvmP7XvfspfyzdHjtN4GPsSqB8qMI9FAo%3D&se=2022-02-16T17%3A47%3A46Z&sp=r

Форматирование URL-адреса

После получения URL необходимо преобразовать его в URL-кодированное значение. Вы можете использовать сетевой кодировщик или выполнить команду. В следующем примере PowerShell показано, как кодировать значение в URL-адресе.

$url = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json"
[uri]::EscapeDataString($url)

Пример URL-адреса имеет следующее значение при кодировании URL-адреса.

https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json

Каждая ссылка начинается с одного базового URL-адреса:

https://portal.azure.com/#create/Microsoft.Template/uri/

Добавьте ссылку шаблона в кодировке URL-адреса в конец базового URL-адреса.

https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json

У вас есть полный URL-адрес ссылки.

Кнопка "Создать развертывание в Azure"

Наконец, поместите ссылку и изображение вместе.

Чтобы добавить кнопку с Markdown в файл README.md в репозитории GitHub или веб-странице, используйте следующую команду:

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json)

Для HTML используйте:

<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json" target="_blank">
  <img src="https://aka.ms/deploytoazurebutton"/>
</a>

Для Git с репозиторием Azure кнопка находится в формате:

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fdev.azure.com%2Forgname%2Fprojectname%2F_apis%2Fgit%2Frepositories%2Freponame%2Fitems%3FscopePath%3D%2freponame%2fazuredeploy.json%26api-version%3D6.0)

Развертывание шаблона

Чтобы протестировать полное решение, нажмите следующую кнопку:

Скриншот кнопки

На портале отображается панель, которая позволяет легко предоставлять значения параметров. Параметры предварительно заполнены значениями по умолчанию из шаблона. Имя параметра, записанное в camel case, storageAccountType, определённое в шаблоне, преобразуется в строку с разделителями в виде пробелов при отображении на портале.

Скриншот в портале Azure, отображающий панель для ввода значений параметров.

Дальнейшие шаги