Compartilhar via


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

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

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 modelo do ARM, você precisa de acesso para gravação aos recursos que está implantando e acesso a todas as operações no tipo de recurso Microsoft.Resources/deployments. Por exemplo, para implantar uma máquina virtual, você precisa Microsoft.Compute/virtualMachines/write e permissões Microsoft.Resources/deployments/*. A operação do teste de hipóteses tem os mesmos requisitos de permissão.

Para ver uma lista de funções e permissões, consulte Funções interna 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 no GitHub e na conta de armazenamento do Azure e como formatar as URLs.

Modelo armazenado no GitHub

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

Captura de tela mostrando como selecionar Raw no 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 do GitHub privado, consulte uma solução personalizada documentada em Criar uma oferta personalizada e segura portal do Azure. Você pode criar uma função do Azure que efetue pull do token do GitHub do Azure Key Vault.

Se você estiver usando o Git com o Azure Repos em vez de um repositório GitHub, ainda poderá usar o botão Implantar no 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 o botão 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 repositório do Azure, 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:

Captura de tela do botão Implantar no Azure com o 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 painel de exibição do portal do Azure para fornecer valores de parâmetro.

Próximas etapas