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

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

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

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

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

Список ролей и разрешений см. в статье Встроенные роли Azure.

Использование стандартного изображения

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

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

Это изображение отображается так:

Снимок экрана: кнопка

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

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

Шаблон, хранящийся в 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.

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

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-адрес из нашего примера после кодирования будет выглядеть так:

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 Repos:

[![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)

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

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

Снимок экрана: кнопка

На портале отобразится панель для ввода значений параметров. Эти параметры предварительно заполняются стандартными значениями из шаблона. Имя параметра в "верблюжем" стиле имен, storageAccountType, определенное в шаблоне, при отображении на портале преобразуется в строку, разделенную пробелами.

Снимок экрана: портал Azure с панелью для предоставления значений параметров.

Дальнейшие действия