Compartilhar via


Usar um botão de implantação para implantar modelos remotos

Este artigo descreve como usar o botão Deploy para Azure para implantar modelos JSON remotos do ARM de um repositório GitHub ou de uma conta de armazenamento Azure. Você pode adicionar o botão diretamente ao arquivo README.md no repositório GitHub. Ou você pode adicionar o botão a uma página da Web que referencia o repositório. Esse método não dá suporte à implantação de arquivos remotos Bicep.

O escopo da implantação é determinado pelo esquema de modelo. Para obter mais informações, consulte:

Pré-requisitos

Permissões necessárias

Para implantar um arquivo Bicep ou um modelo ARM (Azure Resource Manager), você precisa de permissão de escrita nos recursos a serem implantados e acesso a todas as operações no tipo de recurso Microsoft.Resources/deployments. Por exemplo, para implantar uma máquina virtual, você precisa de permissões Microsoft.Compute/virtualMachines/write e Microsoft.Resources/deployments/*. A operação do teste de hipóteses tem os mesmos requisitos de permissão.

CLI do Azure versão 2.76.0 ou posterior e Azure PowerShell versão 13.4.0 ou posterior introduziram a opção ValidationLevel para determinar o quão minuciosamente ARM valida o modelo de Bicep durante esse processo. Para obter mais informações, consulte comandos what-if

Para obter uma lista de funções e permissões, consulte funções internas do Azure.

Usar imagem comum

Para adicionar o botão à página da Web ou ao repositório, use a seguinte imagem:

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

A imagem aparece como:

Captura de tela do botão Implantar no Azure.

Criar URL para implantar o modelo

Esta seção mostra como obter as URLs dos modelos armazenados em GitHub e Azure conta de armazenamento e como formatar as URLs.

Modelo armazenado em GitHub

Para criar a URL do modelo, comece com a URL bruta para o modelo no repositório GitHub. Para ver a URL bruta, selecione Raw.

Screenshot mostrando como selecionar Raw em GitHub.

O formato da URL é:

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

Observação

Para implantar um modelo ou fazer referência a um modelo vinculado armazenado em um repositório de GitHub privado, consulte uma solução personalizada documentada em Criando uma oferta de portal do Azure personalizada e segura. Você pode criar uma função Azure que extrai o token GitHub do Azure Key Vault.

Se você estiver usando Git com Azure Repos em vez de um repositório GitHub, ainda poderá usar o botão Deploy para Azure. Verifique se o repositório é público. Use a operação Itens para obter o modelo. Sua solicitação deve estar no seguinte formato:

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

Modelo armazenado na conta de armazenamento do Azure

O formato das URLs para os modelos armazenados em um contêiner público é:

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

Por exemplo:

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

Você pode proteger o modelo com o token SAS. Para obter mais informações, consulte Como implantar o modelo do ARM privado com o token SAS. A url a seguir é um exemplo com token 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

Formatar a URL

Depois de ter a URL, você precisará converter a URL em um valor codificado em URL. Você pode usar um codificador online ou executar um comando. O exemplo do PowerShell a seguir mostra como codificar um valor na URL.

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

A URL de exemplo tem o seguinte valor quando a URL é codificada.

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

Cada link começa com a mesma URL base:

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

Adicione seu link de modelo codificado em URL ao final da URL base.

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

Agora você tem o URL completa para o link.

Criar botão de Implantar no Azure

Por fim, coloque o link e a imagem juntos.

Para adicionar o botão com Markdown no arquivo README.md no repositório GitHub ou em uma página da Web, use:

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

Para HTML, use:

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

Para o Git com Azure repositório, o botão está no formato:

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

Implantar o modelo

Para testar a solução completa, selecione o seguinte botão:

Screenshot do botão Implantar em Azure com link.

O portal exibe um painel que permite fornecer facilmente valores de parâmetro. Os parâmetros são pré-preenchidos com os valores padrão do modelo. O nome do parâmetro em camelcase storageAccountType, definido no modelo é transformado em uma cadeia de caracteres separada por espaços quando exibido no portal.

Captura de tela do portal do Azure mostrando o painel para fornecer valores de parâmetro.

Próximas etapas