Tutoriel : Utiliser un modèle exporté depuis le portail Azure

Dans cette série de tutoriels, vous créez un modèle pour déployer un compte Stockage Azure. Dans les deux tutoriels suivants, vous allez ajouter un plan App Service et un site web. Au lieu de créer des modèles à partir de zéro, vous allez apprendre à exporter des modèles à partir du portail Azure et à utiliser les exemples de modèles à partir des Modèles de démarrage rapide Azure. Vous personnalisez ces modèles par rapport à votre utilisation. Ce tutoriel met l’accent sur l’exportation de modèles et la personnalisation du résultat pour votre modèle. Cette instruction prend 14 minutes.

Prérequis

Nous vous recommandons de suivre le tutoriel sur les sorties, mais il n’est pas obligatoire.

Vous avez besoin de Visual Studio Code avec l’extension Resource Manager Tools et, au choix, Azure PowerShell ou l’interface de ligne de commande Azure (Azure CLI). Pour plus d’informations, consultez les outils de modèle.

Vérifier le modèle

À la fin du précédent tutoriel, votre modèle présentait le fichier JSON suivant :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Ce modèle fonctionne bien pour le déploiement des comptes de stockage, mais vous souhaitez peut-être y ajouter d’autres ressources. Vous pouvez exporter un modèle à partir d’une ressource existante pour obtenir rapidement le code JSON de cette ressource.

Créer un plan App Service

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Créer une ressource.

  3. Dans Rechercher dans les services et la place de marché, entrez Plan App Service, puis sélectionnez Plan App Service.

  4. Sélectionnez Create (Créer).

  5. Dans la page Créer un plan App Service, entrez ce qui suit :

    • Abonnement : sélectionnez votre abonnement Azure dans le menu déroulant.
    • Groupe de ressources : Sélectionnez Créer, puis précisez un nom. Indiquez un autre nom de groupe de ressources que celui que vous avez utilisé dans cette série de tutoriels.
    • Nom : entrez un nom pour le plan App Service.
    • Système d’exploitation : sélectionnez Linux.
    • Région : sélectionnez un emplacement Azure dans le menu déroulant, par exemple USA Centre.
    • Niveau tarifaire : pour économiser les coûts, sélectionnez Modifier la taille afin de remplacer la référence SKU et la taille par first Basic (B1) sous Dev/Test pour les charges de travail moins exigeantes.

    Capture d’écran de la page Créer un plan App Service dans le Portail Azure.

  6. Sélectionnez Examiner et créer.

  7. Sélectionnez Create (Créer). Quelques instants sont nécessaires pour créer la ressource.

Exportation du modèle

  1. Sélectionnez Accéder à la ressource.

    Capture d’écran du bouton Accéder à la ressource dans le Portail Azure.

  2. Dans le menu de gauche, sous Automatisation, sélectionnez Exporter le modèle.

    Capture d’écran de l’option Exporter le modèle dans le Portail Azure.

    La fonction d’exportation de modèle prend l’état actuel d’une ressource et génère un modèle pour le déployer. L’exportation d’un modèle peut être un moyen pratique d’obtenir rapidement le code JSON dont vous avez besoin pour déployer une ressource.

  3. Regardez la définition de Microsoft.Web/serverfarms et la définition des paramètres dans le modèle exporté. Vous n’avez pas besoin de copier ces sections. Vous pouvez simplement utiliser ce modèle exporté comme exemple illustrant la façon dont vous souhaitez ajouter cette ressource à votre modèle.

    Capture d’écran du code JSON du modèle exporté dans le Portail Azure.

Important

En règle générale, le modèle exporté est plus détaillé que ce que vous pourriez souhaiter lors de la création d’un modèle. L’objet SKU, par exemple, dans le modèle exporté a cinq propriétés. Ce modèle fonctionne, mais vous pouvez simplement utiliser la propriété name. Vous pouvez commencer avec le modèle exporté, puis le modifier à votre convenance pour répondre à vos besoins.

Réviser le modèle existant

Le modèle exporté vous donne la majeure partie du code JSON dont vous avez besoin, mais vous devez le personnaliser pour votre modèle. Portez une attention particulière aux différences existant dans les paramètres et les variable,s entre votre modèle et le modèle exporté. Bien entendu, le processus d’exportation ignore les paramètres et les variables que vous avez déjà définis dans votre modèle.

L’exemple suivant met en évidence les ajouts à opérer dans votre modèle. Il contient le code exporté, ainsi que quelques modifications. Tout d’abord, il modifie le nom du paramètre pour qu’il corresponde à votre convention de nommage. Ensuite, il utilise votre paramètre location pour l’emplacement du plan App Service. Enfin, il supprime certaines propriétés où la valeur par défaut convient.

Copiez l’intégralité du fichier et remplacez votre modèle par son contenu.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Déployer un modèle

Utilisez Azure CLI ou Azure PowerShell pour déployer un modèle.

Si vous n’avez pas créé le groupe de ressources, consultez Créer un groupe de ressources. L’exemple suppose que vous avez défini la variable templateFile sur le chemin du fichier de modèle, comme indiqué dans le premier tutoriel.

New-AzResourceGroupDeployment `
  -Name addappserviceplan `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Notes

En cas d’échec du déploiement, utilisez le commutateur verbose pour obtenir des informations sur les ressources que vous créez. Utilisez le commutateur debug pour obtenir des informations supplémentaires sur le débogage.

Vérifier le déploiement

Vous pouvez vérifier le déploiement en explorant le groupe de ressources à partir du portail Azure.

  1. Connectez-vous au portail Azure.
  2. Dans le menu de gauche, sélectionnez Groupes de ressources.
  3. Sélectionnez le groupe de ressources sur lequel vous avez effectué le déploiement.
  4. Le groupe de ressources contient un compte de stockage et un plan App Service.

Nettoyer les ressources

Si vous passez au tutoriel suivant, vous n’avez pas besoin de supprimer le groupe de ressources.

Si vous arrêtez maintenant, vous pouvez supprimer le groupe de ressources.

  1. Dans le portail Azure, sélectionnez Groupes de ressources dans le menu de gauche.
  2. Tapez le nom du groupe de ressources dans la zone de texte Filtre pour n’importe quel champ...
  3. Cochez la case en regard de myResourceGroup et sélectionnez myResourceGroup ou le nom de votre groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Vous avez appris à exporter un modèle à partir du portail Azure et à utiliser le modèle exporté pour le développement de votre modèle. Vous pouvez également utiliser les modèles de démarrage rapide Azure pour simplifier le développement de modèle.