Tutoriel : Créer des modèles ARM avec des ressources dépendantes

Découvrez comment créer un modèle Azure Resource Manager (modèle ARM) pour déployer plusieurs ressources et configurer l’ordre de déploiement. Après avoir créé le modèle, vous déployez le modèle à l’aide d’Azure Cloud Shell à partir du portail Azure.

Dans ce didacticiel, vous créez un compte de stockage, une machine virtuelle, un réseau virtuel et d’autres ressources dépendantes. Certaines ressources ne peuvent pas être déployées avant qu’une autre ressource n’existe. Par exemple, vous ne pouvez pas créer la machine virtuelle avant que son compte de stockage et son interface réseau n’existent. Vous définissez cette relation en rendant une seule ressource dépendante des autres ressources. Resource Manager évalue les dépendances entre les ressources et les déploie dans leur ordre dépendant. Quand les ressources ne dépendent pas les unes des autres, Resource Manager les déploie en parallèle. Pour plus d’informations, consultez Définir l’ordre de déploiement des ressources dans les modèles ARM.

Diagramme qui montre l'ordre de déploiement des ressources dépendantes dans un modèle de Resource Manager.

Ce tutoriel décrit les tâches suivantes :

  • Ouvrir un modèle de démarrage rapide
  • Explorer le modèle
  • Déployer le modèle

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

Pour suivre un module Learn qui traite des dépendances des ressources, consultez Gérer des déploiements cloud complexes à l’aide des fonctionnalités avancées de modèle ARM.

Prérequis

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

Ouvrir un modèle de démarrage rapide

Le référentiel Modèles de démarrage rapide Azure contient les modèles ARM. Au lieu de créer un modèle à partir de zéro, vous pouvez chercher un exemple de modèle et le personnaliser. Le modèle utilisé dans ce didacticiel se nomme Déployer une machine virtuelle Windows simple.

  1. À partir de Visual Studio Code, sélectionnez Fichier>Ouvrir un fichier.

  2. Collez l’URL suivante dans Nom de fichier :

    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. Sélectionnez Fichier>Enregistrer sous pour enregistrer une copie du fichier sur votre ordinateur local avec le nom azuredeploy.json.

Explorer le modèle

Lorsque vous explorez le modèle dans cette section, essayez de répondre aux questions suivantes :

  • Combien de ressources Azure sont-elles définies dans ce modèle ?
  • L’une des ressources est un compte de stockage Azure. La définition est-elle semblable à celle utilisée dans le dernier didacticiel ?
  • Trouvez-vous les références de modèle pour les ressources définies dans ce modèle ?
  • Trouvez-vous les dépendances des ressources ?
  1. À partir de Visual Studio Code, réduisez les éléments jusqu'à ce que vous voyiez uniquement les éléments de premier niveau et les éléments de second niveau à l’intérieur des resources :

    Capture d'écran de Visual Studio Code affichant un modèle ARM avec des éléments réduits.

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

  2. Développez la première ressource. Il s’agit d’un compte de stockage. Comparez la définition de ressource à la référence de modèle.

    Capture d'écran de Visual Studio Code montrant la définition du compte de stockage dans un modèle ARM.

  3. Développez la deuxième ressource. Le type de ressource, est Microsoft.Network/publicIPAddresses. Comparez la définition de ressource à la référence de modèle.

    Capture d'écran de Visual Studio Code montrant la définition de l'adresse IP publique dans un modèle ARM.

  4. Développez la troisième ressource. Le type de ressource, est Microsoft.Network/networkSecurityGroups. Comparez la définition de ressource à la référence de modèle.

    Capture d'écran de Visual Studio Code montrant la définition du groupe de sécurité réseau dans un modèle ARM.

  5. Développez la quatrième ressource. Le type de ressource, est Microsoft.Network/virtualNetworks :

    Capture d'écran de Visual Studio Code montrant la définition du réseau virtuel avec l'élément dependsOn dans un modèle ARM.

    L’élément dependsOn vous permet de définir une ressource comme une dépendance sur une ou plusieurs ressources. Cette ressource dépend d’une autre ressource :

    • Microsoft.Network/networkSecurityGroups
  6. Développez la cinquième ressource. Le type de ressource, est Microsoft.Network/networkInterfaces. La ressource dépend de deux autres ressources :

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Développez la sixième ressource. Cette ressource est une machine virtuelle. Elle dépend de deux autres ressources :

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

Le diagramme suivant illustre les ressources et les informations de dépendance pour ce modèle :

Diagramme qui montre les relations de dépendance entre les ressources dans un modèle ARM affiché dans Visual Studio Code.

En spécifiant les dépendances, Resource Manager déploie efficacement la solution. Il déploie le compte de stockage, l’adresse IP publique et le réseau virtuel en parallèle car ils n’ont aucune dépendance. Après que l’adresse IP publique et le réseau virtuel sont déployés, l’interface réseau est créée. Lorsque toutes les autres ressources sont déployées, Resource Manager déploie la machine virtuelle.

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) en haut à gauche. Il est nécessaire de redémarrer l’interpréteur de commandes lors d’un tel changement.

    Capture d'écran du portail Azure Cloud Shell avec l'option de téléchargement de fichiers en surbrillance.

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

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

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. Établir une connexion RDP vers la machine virtuelle pour vérifier la machine virtuelle a été créée avec succès.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, nettoyez les ressources Azure que vous avez déployées en supprimant le groupe de ressources.

  1. Dans le portail Azure, sélectionnez Groupe de ressources dans le menu de gauche.
  2. Entrez le nom du groupe de ressources dans le champ Filtrer par nom.
  3. Sélectionnez le nom du groupe de ressources. Vous verrez six ressources au total dans le groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Dans ce didacticiel, vous avez développé et déployé un modèle pour créer une machine virtuelle, un réseau virtuel et les ressources dépendantes. Pour découvrir comment utiliser des scripts de déploiement pour effectuer des opérations de pré/post-déploiement, consultez :