Partager via


Tutoriel : Utiliser une condition dans les modèles ARM

Découvrez comment déployer des ressources Azure en fonction de conditions dans un modèle Azure Resource Manager (modèle ARM).

Dans le didacticiel Définir l’ordre de déploiement des ressources, vous créez une machine virtuelle, un réseau virtuel et d’autres ressources dépendantes, notamment un compte de stockage. Au lieu de créer un compte de stockage chaque fois, vous laissez les utilisateurs choisir entre la création d’un compte de stockage et l’utilisation d’un compte de stockage existant. Pour atteindre cet objectif, vous définissez un paramètre supplémentaire. Si la valeur du paramètre est nouvelle, un nouveau compte de stockage est créé. Sinon, un compte de stockage existant portant le nom fourni est utilisé.

Diagramme de condition d’utilisation du modèle Resource Manager

Ce tutoriel décrit les tâches suivantes :

  • Ouvrir un modèle de démarrage rapide
  • Modifier le modèle
  • Déployer le modèle
  • Nettoyer les ressources

Ce tutoriel couvre uniquement un scénario de base sur l'utilisation de conditions. Pour plus d’informations, consultez :

Pour obtenir un module Learn qui couvre les conditions, consultez Gérer les déploiements cloud complexes à l’aide de fonctionnalités avancées de modèle ARM.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prerequisites

Pour effectuer ce qui est décrit dans cet article, vous avez besoin des éléments suivants :

  • Visual Studio Code.

  • Pour renforcer la sécurité, utilisez un mot de passe généré pour le compte d’administrateur de machine virtuelle. Vous pouvez utiliser Azure Cloud Shell pour exécuter la commande suivante dans PowerShell ou Bash :

    openssl rand -base64 32
    

    Pour en savoir plus, exécutez man openssl rand pour ouvrir la page manuelle.

    Azure Key Vault est conçu pour protéger les clés de chiffrement et d’autres secrets. Pour plus d’informations, consultez Tutoriel : Intégrer Azure Key Vault dans le déploiement de modèles ARM. Nous vous recommandons également de mettre à jour votre mot de passe tous les trois mois.

Ouvrir un modèle de démarrage rapide

Les modèles de démarrage rapide Azure sont un référentiel pour les modèles ARM. Au lieu de créer un modèle à partir de zéro, vous pouvez trouver un exemple de modèle et le personnaliser. Le modèle utilisé dans ce tutoriel est appelé Déployer une machine virtuelle Windows simple.

  1. Dans Visual Studio Code, sélectionnez Fichier>ouvert.

  2. Dans le nom de fichier, collez l’URL suivante :

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Sélectionnez Ouvrir pour ouvrir le fichier.

  4. Il existe six ressources définies par le modèle :

    Il est utile de passer en revue la référence du modèle avant de personnaliser un modèle.

  5. Sélectionnez Fichier>Enregistrer sous pour enregistrer une copie du fichier sur votre ordinateur local avec le nom azuredeploy.json.

Modifier le modèle

Apportez deux modifications au modèle existant :

  • Ajoutez un paramètre de nom de compte de stockage. Les utilisateurs peuvent spécifier un nouveau nom de compte de stockage ou un nom de compte de stockage existant.
  • Ajoutez un nouveau paramètre appelé newOrExisting. Le déploiement utilise ce paramètre pour déterminer s’il faut créer un compte de stockage ou utiliser un compte de stockage existant.

Voici la procédure à suivre pour apporter les modifications :

  1. Ouvrez azuredeploy.json dans Visual Studio Code.

  2. Remplacez les trois variables('storageAccountName') par parameters('storageAccountName') dans l’ensemble du modèle.

  3. Supprimez la définition de variable suivante :

    Capture d’écran mettant en évidence les définitions de variables que vous devez supprimer.

  4. Ajoutez les deux paramètres suivants au début de la section paramètres :

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    },
    

    Appuyez sur Alt+Maj+F pour mettre en forme le modèle dans Visual Studio Code.

    La définition des paramètres mis à jour ressemble à ceci :

    Condition d’utilisation de Resource Manager

  5. Ajoutez la ligne suivante au début de la définition du compte de stockage.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    La condition vérifie la valeur du paramètre newOrExisting. Si la valeur du paramètre est nouvelle, le déploiement crée le compte de stockage.

    La définition de compte de stockage mise à jour ressemble à ceci :

    Capture d’écran montrant la définition de compte de stockage mise à jour.

  6. Mettez à jour la storageUri propriété de la définition de ressource de machine virtuelle avec la valeur suivante :

    "storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
    

    Cette modification est nécessaire lorsque vous utilisez un compte de stockage existant sous un autre groupe de ressources.

  7. Enregistrez les modifications.

Déployer le modèle

  1. Connectez-vous à Cloud Shell.

  2. Choisissez votre environnement préféré en sélectionnant PowerShell ou Bash (pour CLI) dans le coin supérieur gauche. Il est nécessaire de redémarrer l’interpréteur de commandes lors d’un tel changement.

    Téléchargement de fichier vers Azure Cloud Shell via le portail

  3. Sélectionnez Charger/télécharger des fichiers, puis sélectionnez Charger. Consultez la capture d’écran précédente. Sélectionnez le fichier que vous avez enregistré dans la section précédente. Après avoir chargé le fichier, vous pouvez utiliser la ls commande et la cat commande pour vérifier que le fichier a été chargé avec succès.

  4. Exécutez le script PowerShell suivant pour déployer le modèle.

    Important

    Le nom du compte de stockage doit être unique dans Azure. Le nom doit comporter uniquement des lettres minuscules ou des chiffres. Il ne peut pas dépasser 24 caractères. Le nom du compte de stockage est le nom du projet avec l’ajout du magasin . Vérifiez que le nom du projet et le nom du compte de stockage généré répondent aux exigences de nom du compte de stockage.

    $projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names"
    $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)"
    $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)"
    $vmAdmin = Read-Host -Prompt "Enter the admin username"
    $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix"
    
    $resourceGroupName = "${projectName}rg"
    $storageAccountName = "${projectName}store"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $vmAdmin `
        -adminPassword $vmPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -storageAccountName $storageAccountName `
        -newOrExisting $newOrExisting `
        -TemplateFile "$HOME/azuredeploy.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    Note

    Le déploiement échoue s’il newOrExisting est nouveau, mais le compte de stockage avec le nom du compte de stockage spécifié existe déjà.

Essayez d’effectuer un autre déploiement avec newOrExisting défini sur existant et spécifiez un compte de stockage existant. Pour créer un compte de stockage au préalable, consultez Créer un compte de stockage.

Nettoyer les ressources

Lorsque les ressources Azure ne sont plus nécessaires, nettoyez les ressources que vous avez déployées en supprimant le groupe de ressources. Pour supprimer le groupe de ressources, sélectionnez Essayer d’ouvrir Cloud Shell. Pour coller le script PowerShell, cliquez avec le bouton droit sur le volet shell, puis sélectionnez Coller.

$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

Étapes suivantes

Dans ce tutoriel, vous avez développé un modèle qui permet aux utilisateurs de choisir entre la création d’un compte de stockage et l’utilisation d’un compte de stockage existant. Pour savoir comment récupérer des secrets à partir d’Azure Key Vault et utiliser les secrets comme mots de passe dans le déploiement du modèle, consultez :