Поделиться через


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

В этой статье описывается, как использовать кнопку "Развернуть в 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"/>

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

Снимок экрана кнопки «Развернуть в Azure».

Создание 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.

Если вы используете Git с Azure Repos вместо репозитория GitHub, вы по-прежнему можете использовать кнопку "Развернуть в 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 для предоставления значений параметров.

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