Tutoriel : Créer plusieurs instances de ressources grâce à des modèles ARM

Découvrez comment effectuer une itération dans votre modèle Azure Resource Manager (modèle ARM) pour créer plusieurs instances d’une ressource Azure. Dans ce tutoriel, vous modifiez un modèle pour créer trois instances de compte de stockage.

Diagramme montrant Azure Resource Manager pendant a création de plusieurs instances.

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

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

Pour suivre un module Learn qui traite de la copie 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

Modèles de démarrage rapide Azure est un référentiel de 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 démarrage rapide se nomme Créer un compte de stockage standard. Le modèle définit une ressource de compte de stockage Azure.

  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.storage/storage-account-create/azuredeploy.json
    
  3. Sélectionnez Ouvrir pour ouvrir le fichier.

  4. Une ressource Microsoft.Storage/storageAccounts est définie dans le modèle. Comparer le modèle à la référence du modèle. Il est préférable de comprendre quelques notions basiques du modèle avant de le personnaliser.

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

Modifier le modèle

Le modèle existant crée un unique compte de stockage. Vous personnalisez le modèle pour créer trois comptes de stockage.

Dans Visual Studio Code, effectuez les quatre modifications suivantes :

Capture d’écran de Visual Studio Code, avec Azure Resource Manager créant plusieurs instances.

  1. Ajoutez un élément copy à la définition de ressource du compte de stockage. Dans l’élément copy, vous indiquez le nombre d’itérations et une variable pour cette boucle. La valeur de décompte doit être un entier positif et ne pas dépasser 800.

    "copy": {
      "name": "storageCopy",
      "count": 3
    },
    
  2. La fonction copyIndex() renvoie l’itération actuelle dans la boucle. Vous utilisez l’index en tant que préfixe du nom. copyIndex() est basé sur zéro. Pour décaler la valeur d’index, vous pouvez passer une valeur dans la fonction copyIndex(). Par exemple : copyIndex(1).

    "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
    
    
    
  3. Supprimez la définition du paramètre storageAccountName, car elle n’est plus utilisée.

  4. Supprimez l’élément outputs. Ce n’est plus nécessaire.

  5. Supprimez l’élément metadata.

Le modèle complet ressemble à ceci :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for the storage account."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-06-01",
      "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "copy": {
        "name": "storageCopy",
        "count": 3
      },
      "properties": {}
    }
  ]
}

Enregistrez les modifications.

Pour plus d’informations sur la création de plusieurs instances, consultez Itération de ressource dans les modèles ARM.

Déployer le modèle

  1. Se connecter à Azure 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.

    Fichier de chargement du Cloud Shell du portail Azure

  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é dans la section précédente. 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. Dans le Cloud Shell, exécutez les commandes suivantes. Sélectionnez l’onglet pour afficher le code PowerShell ou CLI.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
    

Après un déploiement de modèles réussi, vous pouvez afficher les trois comptes de stockage créés dans le groupe de ressources spécifié. Comparez les noms de compte de stockage avec la définition de nom dans le modèle.

echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."

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 devez voir au total trois ressources dans le groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Dans ce tutoriel, vous avez appris à créer plusieurs instances de compte de stockage. Dans le tutoriel suivant, vous développez un modèle disposant de plusieurs ressources et types de ressources. Certaines ressources comportent des ressources dépendantes.