Démarrage rapide : Créer une application App Service à l’aide d’un modèle ARM

Familiarisez-vous avec Azure App Service en déployant une application sur le cloud à l’aide d’un modèle Azure Resource Manager (modèle ARM) et d’Azure CLI dans Cloud Shell. Un modèle Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration pour votre projet. L'exécution de ce démarrage rapide ne vous coûte rien, car vous utilisez un niveau de service d’application gratuit.

Pour suivre ce guide de démarrage rapide, vous aurez besoin d’un compte Azure avec un abonnement actif. Si vous ne possédez pas de compte Azure, vous pouvez créer un compte gratuit.

Passer à la fin

Si vous connaissez utiliser des modèles ARM, vous pouvez passer à la fin en sélectionnant ce bouton Button to deploy the Resource Manager template to Azure.. Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

Dans le portail Microsoft Azure, sélectionnez Créer nouveau pour créer un groupe de ressources, puis sélectionnez le bouton Vérifier + créer pour déployer l’application.

Familiarisez-vous avec Azure App Service en déployant une application sur le cloud à l’aide d’un modèle Azure Resource Manager (modèle ARM) et d’Azure CLI dans Cloud Shell. Un modèle Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration pour votre projet. L'exécution de ce démarrage rapide ne vous coûte rien, car vous utilisez un niveau de service d’application gratuit.

Pour suivre ce guide de démarrage rapide, vous aurez besoin d’un compte Azure avec un abonnement actif. Si vous ne possédez pas de compte Azure, vous pouvez créer un compte gratuit.

Passer à la fin

Si vous connaissez utiliser des modèles ARM, vous pouvez passer à la fin en sélectionnant ce bouton Button to deploy the Resource Manager template to Azure.. Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

Dans le portail Microsoft Azure, sélectionnez Créer nouveau pour créer un groupe de ressources, puis sélectionnez le bouton Vérifier + créer pour déployer l’application.

Familiarisez-vous avec Azure App Service en déployant une application sur le cloud à l’aide d’un modèle Azure Resource Manager (modèle ARM) et d’Azure CLI dans Cloud Shell. Un modèle Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration pour votre projet. Un plan Premium est nécessaire pour déployer une application conteneur Windows. Pour plus d’informations sur la tarification, consultez la page de tarification d’App Service.

Passer à la fin

Si vous connaissez utiliser des modèles ARM, vous pouvez passer à la fin en sélectionnant ce bouton Button to deploy the Resource Manager template to Azure.. Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

Dans le portail Microsoft Azure, sélectionnez Créer nouveau pour créer un groupe de ressources, puis sélectionnez le bouton Vérifier + créer pour déployer l’application.

Vérifier le modèle

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure. Il déploie un plan App Service et une application App Service sur Windows. Il est compatible avec .NET Core, .NET Framework, PHP, Node.js et les applications HTML statiques. Pour Java, consultez Créer une application Java.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "16144177164140676603"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "language": {
      "type": "string",
      "defaultValue": ".net",
      "allowedValues": [
        ".net",
        "php",
        "node",
        "html"
      ],
      "metadata": {
        "description": "The language stack of the app."
      }
    },
    "helloWorld": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "true = deploy a sample Hello World app."
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]",
    "gitRepoReference": {
      ".net": "https://github.com/Azure-Samples/app-service-web-dotnet-get-started",
      "node": "https://github.com/Azure-Samples/nodejs-docs-hello-world",
      "php": "https://github.com/Azure-Samples/php-docs-hello-world",
      "html": "https://github.com/Azure-Samples/html-docs-hello-world"
    },
    "gitRepoUrl": "[if(bool(parameters('helloWorld')), variables('gitRepoReference')[toLower(parameters('language'))], parameters('repoUrl'))]",
    "configReference": {
      ".net": {
        "comments": ".Net app. No additional configuration needed."
      },
      "html": {
        "comments": "HTML app. No additional configuration needed."
      },
      "php": {
        "phpVersion": "7.4"
      },
      "node": {
        "appSettings": [
          {
            "name": "WEBSITE_NODE_DEFAULT_VERSION",
            "value": "12.15.0"
          }
        ]
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "siteConfig": "[variables('configReference')[parameters('language')]]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "httpsOnly": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(variables('gitRepoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[variables('gitRepoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

Deux ressources Azure sont définies dans le modèle :

Ce modèle contient plusieurs paramètres prédéfinis par souci pratique. Consultez le tableau des valeurs par défaut des paramètres et leurs descriptions :

Paramètres Type Valeur par défaut Description
webAppName string webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName string webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
location string [resourceGroup().location] Région de l’application
sku string F1 Taille de l’instance (F1 = niveau gratuit)
langage string .NET Pile du langage de programmation (.NET, php, node, html)
helloWorld booléen False True = déployer l’application « Hello World »
repoUrl string Dépôt Git externe (facultatif)

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure. Il déploie un plan App Service et une application App Service sur Linux. Il est compatible avec tous les langages de programmation pris en charge sur App Service.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "10602523904429381366"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "DOTNETCORE|3.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": " ",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-02-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      },
      "kind": "linux",
      "properties": {
        "reserved": true
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-02-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "properties": {
        "httpsOnly": true,
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]",
          "minTlsVersion": "1.2",
          "ftpsState": "FtpsOnly"
        }
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(parameters('repoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[parameters('repoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

Deux ressources Azure sont définies dans le modèle :

Ce modèle contient plusieurs paramètres prédéfinis par souci pratique. Consultez le tableau des valeurs par défaut des paramètres et leurs descriptions :

Paramètres Type Valeur par défaut Description
webAppName string webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName string webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
location string [resourceGroup().location] Région de l’application
sku string F1 Taille de l’instance (F1 = niveau gratuit)
linuxFxVersion string DOTNETCORE|3.0 « Pile du langage de programmation | Version »
repoUrl string Dépôt Git externe (facultatif)

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure. Il déploie un plan App Service et une application App Service sur un conteneur Windows.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "10193476814580854111"
    }
  },
  "parameters": {
    "appServiceWebAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web App name."
      }
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "App Service Plan name."
      }
    },
    "skuTier": {
      "type": "string",
      "defaultValue": "P1v3"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServiceWebAppName')]",
      "location": "[parameters('location')]",
      "tags": {
        "[format('hidden-related:{0}', resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName')))]": "empty"
      },
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "PORT",
              "value": "8080"
            }
          ],
          "appCommandLine": "",
          "windowsFxVersion": "DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp"
        },
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ]
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuTier')]"
      },
      "kind": "windows",
      "properties": {
        "hyperV": true
      }
    }
  ]
}

Deux ressources Azure sont définies dans le modèle :

Ce modèle contient plusieurs paramètres prédéfinis par souci pratique. Consultez le tableau des valeurs par défaut des paramètres et leurs descriptions :

Paramètres Type Valeur par défaut Description
webAppName string webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName string webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
location string [resourceGroup().location] Région de l’application
skuTier string P1v3 Taille de l’instance (Afficher les références SKU disponibles)
appSettings string [{"name": "PORT","value": "8080"}] Port d’écoute App Service. Doit être 8080.
kind string windows Système d'exploitation
hyperv string true Modes d’isolation
windowsFxVersion string DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Image conteneur

Déployer le modèle

Azure CLI est utilisé ici pour déployer le modèle. Vous pouvez également utiliser le portail Azure, Azure PowerShell ou l’API REST. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.

Le code suivant crée un groupe de ressources, un plan App Service et une application web. Un groupe de ressources, un plan App Service et une localisation par défaut ont été définis pour vous. Remplacez <app-name> par un nom d’application global unique (les caractères valides sont a-z, 0-9 et -).

Exécutez les commandes suivantes pour déployer une application .NET Framework sur Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters language=".NET" helloWorld="true" webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows/azuredeploy.json"

Exécutez les commandes suivantes pour créer une application Python sur Linux :

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup --parameters webAppName="<app-name>" linuxFxVersion="PYTHON|3.9" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-linux/azuredeploy.json"

Pour déployer une autre pile de langage, mettez à jour linuxFxVersion avec les valeurs appropriées. Les exemples sont affichés dans le tableau. Pour afficher les versions actuelles, exécutez la commande suivante dans Cloud Shell : az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Langage Exemple :
.NET linuxFxVersion="DOTNETCORE|3.0"
PHP linuxFxVersion="PHP|7.4"
Node.js linuxFxVersion="NODE|10.15"
Java linuxFxVersion="JAVA|1.8 |TOMCAT|9.0"
Python linuxFxVersion="PYTHON|3.7"

Exécutez les commandes suivantes pour déployer une application .NET sur un conteneur Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows-container/azuredeploy.json"

Remarque

Vous trouverez d’autres exemples de modèles Azure App Service ici.

Valider le déploiement

Accédez à http://<app_name>.azurewebsites.net/ et vérifiez qu’il a été créé.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Nettoyer les ressources

Quand il n’est plus nécessaire, supprimez le groupe de ressources.

Étapes suivantes

 Build a .NET Core and SQL Database web app in Azure App Service (Créer une application web .NET Core et SQL Database dans Azure App Service)

 Python avec Postgres