Usare un pulsante di distribuzione per distribuire modelli remoti

Questo articolo descrive come usare il pulsante Distribuisci in Azure per distribuire modelli JSON ARM remoti da un repository GitHub o da un account di archiviazione di Azure. È possibile aggiungere il pulsante direttamente al file di README.md nel repository GitHub. In alternativa, è possibile aggiungere il pulsante a una pagina Web che fa riferimento al repository. Questo metodo non supporta la distribuzione di file Bicep remoti.

L'ambito di distribuzione è determinato dallo schema del modello. Per altre informazioni, vedere:

Autorizzazioni necessarie

Per distribuire un file Bicep o un modello di ARM, è necessario l'accesso in scrittura alle risorse distribuite e l'accesso per tutte le operazioni sul tipo di risorsa Microsoft.Resources/deployments. Ad esempio, per distribuire una macchina virtuale, sono necessarie Microsoft.Compute/virtualMachines/write e Microsoft.Resources/deployments/* autorizzazioni. L'operazione what-if ha gli stessi requisiti di autorizzazione.

Per un elenco dei ruoli e delle autorizzazioni, vedere Ruoli predefiniti di Azure.

Usare un'immagine comune

Per aggiungere il pulsante alla pagina Web o al repository, usare l'immagine seguente:

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

L'immagine viene visualizzata come:

Screenshot del pulsante Distribuisci in Azure.

Creare l'URL per la distribuzione del modello

Questa sezione illustra come ottenere gli URL per i modelli archiviati in GitHub e nell'account di archiviazione di Azure e come formattare gli URL.

Modello archiviato in GitHub

Per creare l'URL per il modello, iniziare con l'URL non elaborato nel modello nel repository GitHub. Per visualizzare l'URL non elaborato, selezionare Raw.

Screenshot che mostra come selezionare Raw in GitHub.

Il formato dell'URL è:

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

Nota

Per distribuire un modello o fare riferimento a un modello collegato archiviato in un repository GitHub privato, vedere una soluzione personalizzata documentata in Creazione di un'offerta di portale di Azure personalizzata e sicura. È possibile creare una funzione di Azure che esegue il pull del token GitHub dall'Key Vault di Azure.

Se si usa Git con Azure Repos anziché un repository GitHub, è comunque possibile usare il pulsante Distribuisci in Azure. Assicurarsi che il repository sia pubblico. Usare l'operazione Elementi per ottenere il modello. La richiesta deve essere nel formato seguente:

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

Modello archiviato nell'account di archiviazione di Azure

Il formato degli URL per i modelli archiviati in un contenitore pubblico è:

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

Ad esempio:

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

È possibile proteggere il modello con token di firma di accesso condiviso. Per altre informazioni, vedere Come distribuire il modello di Resource Manager privato con token di firma di accesso condiviso. L'URL seguente è un esempio con token di firma di accesso condiviso:

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

Formattare l'URL

Dopo aver ottenuto l'URL, è necessario convertire l'URL in un valore con codifica URL. È possibile usare un codificatore online o eseguire un comando. Nell'esempio di PowerShell seguente viene illustrato come codificare un valore per l'URL.

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

L'URL di esempio ha il valore seguente quando l'URL viene codificato.

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

Ogni collegamento inizia con lo stesso URL di base:

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

Aggiungere il collegamento al modello con codifica URL alla fine dell'URL di 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

Per il collegamento è disponibile l'URL completo.

Pulsante Crea distribuzione in Azure

Infine, mettere insieme il collegamento e l'immagine.

Per aggiungere il pulsante con Markdown nel file README.md nel repository GitHub o in una pagina Web, usare:

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

Per HTML, usare:

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

Per Git con il repository di Azure, il pulsante è nel 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)

Distribuire il modello

Per testare la soluzione completa, selezionare il pulsante seguente:

Screenshot del pulsante Distribuisci in Azure con il collegamento.

Il portale visualizza un riquadro che consente di fornire facilmente i valori dei parametri. I parametri vengono precompilati con i valori predefiniti del modello. Il nome del parametro camel cased, storageAccountType, definito nel modello viene trasformato in una stringa separata dallo spazio quando visualizzata nel portale.

Screenshot di portale di Azure riquadro di visualizzazione per fornire i valori dei parametri.

Passaggi successivi