Un bouton de déploiement permet de déployer des modèles distants

Cet article explique l’utilisation du bouton Déployer sur Azure pour déployer des modèles ARM JSON distants à partir d’un référentiel GitHub ou d’un compte de stockage Azure. Vous pouvez ajouter le bouton directement au fichier README.md dans votre référentiel GitHub. Vous pouvez également ajouter le bouton à une page web faisant référence au dépôt. Cette méthode ne prend pas en charge le déploiement de fichiers Bicep distants.

L’étendue du déploiement est déterminée par le schéma du modèle. Pour plus d'informations, consultez les pages suivantes :

Autorisations requises

Pour déployer un fichier Bicep ou un modèle ARM, vous devez disposer d’un accès en écriture aux ressources que vous déployez et un accès à toutes les opérations sur le type de ressource Microsoft.Resources/deployments. Par exemple, pour déployer une machine virtuelle, vous avez besoin des autorisations Microsoft.Compute/virtualMachines/write et Microsoft.Resources/deployments/*. L’opération de simulation présente les mêmes exigences d’autorisation.

Pour obtenir la liste des rôles et autorisations, consultez Rôles intégrés Azure.

Utiliser une image courante

Pour ajouter le bouton à votre page web ou à votre référentiel, utilisez l’image suivante :

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

L’image apparaît comme suit :

Capture d’écran du bouton Effectuer le déploiement dans Azure.

Créer une URL pour le déploiement du modèle

Cette section montre la procédure d’obtention des URL pour les modèles stockés dans GitHub et dans le compte de stockage Azure, et comment mettre en forme les URL.

Modèle stocké dans GitHub

Pour créer l’URL de votre modèle, commencez par l’URL brute du modèle dans votre référentiel GitHub. Pour afficher l’URL brute, sélectionnez Brute.

Capture d’écran montrant comment sélectionner Données brutes dans GitHub.

Le format de l’URL est le suivant :

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

Notes

Pour déployer un modèle ou référencer un modèle lié qui est stocké dans un référentiel GitHub privé, consultez une solution personnalisée documentée dans Création d’une offre personnalisée et sécurisée de portail Azure. Il est possible de créer une fonction Azure qui extrait le jeton GitHub d’Azure Key Vault.

Si vous utilisez Git avec Azure Repos au lieu d’un référentiel GitHub, vous pouvez toujours utiliser le bouton Déployer dans Azure. Assurez-vous que votre référentiel est public. Utilisez l’opération Items pour récupérer le modèle. Votre requête doit respecter le format suivant :

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

Modèle stocké dans le compte de stockage Azure

Le format des URL pour les modèles stockés dans un conteneur public est le suivant :

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

Par exemple :

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

Vous pouvez sécuriser le modèle avec un jeton SAP. Pour plus d’informations, consultez Déployer un modèle privé ARM avec un jeton SAP. L’URL suivante est un exemple de jeton SAP :

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

Mettre en forme l’URL

Une fois que vous disposez de l’URL, vous devez convertir l’URL en une valeur encodée URL. Vous pouvez utiliser un encodeur en ligne ou exécuter une commande. L’exemple PowerShell suivant montre comment encoder une valeur par URL.

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

L’exemple d’URL a la valeur suivante lorsque l’URL est encodée.

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

Chaque lien commence par la même URL de base :

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

Ajoutez votre lien de modèle encodé par URL à la fin de l’URL de 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

Vous avez votre URL complète pour le lien.

Créer le bouton Déployer dans Azure

Enfin, mettez le lien et l’image ensemble.

Pour ajouter le bouton dans le fichier README.md de votre référentiel GitHub ou d’une page web en utilisant Markdown, utilisez :

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

Pour le langage HTML, utilisez :

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

Pour Git avec Azure Repos, le bouton se présente au format suivant :

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

Déployer le modèle

Pour tester la solution complète, sélectionnez le bouton suivant :

Capture d’écran du bouton Effectuer le déploiement dans Azure avec ce lien.

Le portail affiche un volet qui vous permet de fournir facilement des valeurs de paramètre. Les paramètres sont préremplis avec les valeurs par défaut du modèle. Le nom de paramètre en casse mixte storageAccountType défini dans le modèle est converti en une chaîne séparée par des espaces lorsqu’il est affiché sur le portail.

Capture d'écran du portail Azure affichant le volet permettant de fournir des valeurs de paramètres.

Étapes suivantes