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 . Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.
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 . Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.
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 . Ce bouton ouvre le modèle ARM dans le portail Microsoft Azure.
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 :
- Microsoft.Web/serverfarms : créer un plan App Service.
- Microsoft.Web/sites : créer une application App Service.
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 :
- Microsoft.Web/serverfarms : créer un plan App Service.
- Microsoft.Web/sites : créer une application App Service.
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 :
- Microsoft.Web/serverfarms : créer un plan App Service.
- Microsoft.Web/sites : créer une application App Service.
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éé.
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