Partager via


Tutoriel : Utiliser des modèles de démarrage rapide Azure

Les modèles de démarrage rapide Azure sont un référentiel de modèles fournis par la communauté. Vous pouvez utiliser les exemples de modèles dans votre développement de modèles. Dans ce tutoriel, vous trouverez une définition de ressource de site web et l’ajoutez à votre propre modèle. Cette instruction prend 12 minutes .

Prerequisites

Nous vous recommandons de suivre le didacticiel sur les modèles exportés, mais il n’est pas nécessaire.

Vous devez disposer de Visual Studio Code et d’Azure PowerShell ou d’Azure CLI. Pour plus d’informations, consultez les outils de modèle.

Vérifier le modèle

À la fin du didacticiel précédent, votre modèle comportait 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]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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]"
    }
  }
}

Ce modèle fonctionne pour déployer des comptes de stockage et des plans App Service, mais vous souhaiterez peut-être y ajouter un site web. Vous pouvez utiliser des modèles prédéfinis pour découvrir rapidement le JSON requis pour le déploiement d’une ressource.

Rechercher un modèle

  1. Ouvrir des modèles de démarrage rapide Azure

  2. Sélectionnez la vignette avec le titre Déployer une application web Linux de base. Si vous avez des difficultés à le trouver, voici le lien direct.

  3. Sélectionnez Parcourir sur GitHub.

  4. Sélectionnez azuredeploy.json.

  5. Vérifiez le modèle. Recherchez la Microsoft.Web/sites ressource.

    Site web de démarrage rapide du modèle Resource Manager

Réviser le modèle existant

Fusionnez le modèle de démarrage rapide avec le modèle existant :

{
  "$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"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ],
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Le nom de l’application web doit être unique dans Azure. Pour éviter d’avoir des noms en double, la webAppPortalName variable est mise à jour vers "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]""webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Ajoutez une virgule à la fin de la Microsoft.Web/serverfarms définition pour séparer la définition de la ressource de la Microsoft.Web/sites définition.

Il existe quelques fonctionnalités importantes à noter dans cette nouvelle ressource.

Il contient un élément nommé dependsOn qui est associé au plan App Service. Ce paramètre est requis, car le plan App Service doit exister avant la création de l’application web. L’élément dependsOn indique à Resource Manager comment commander les ressources pour le déploiement.

La serverFarmId propriété utilise la fonction resourceId . Cette fonction obtient l’identificateur unique d’une ressource. Dans ce cas, il obtient l’identificateur unique du plan App Service. L’application web est associée à un plan App Service spécifique.

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 d’accès au fichier de modèle, comme indiqué dans le premier tutoriel.

New-AzResourceGroupDeployment `
  -Name addwebapp `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS `
  -webAppName demoapp

Note

Si le déploiement échoue, utilisez le verbose commutateur pour obtenir des informations sur les ressources que vous créez. Utilisez ce commutateur debug pour obtenir plus d'informations pour le débogage.

Nettoyer les ressources

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

Si vous arrêtez maintenant, vous souhaiterez peut-être 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 le champ de texte filtre pour n’importe quel champ....
  3. Cochez la case en regard de myResourceGroup et sélectionnez myResourceGroup ou votre nom de groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Vous avez appris à utiliser un modèle de démarrage rapide pour votre développement de modèle. Dans le tutoriel suivant, vous ajoutez des balises aux ressources.