Partager via


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 devez avoir un compte Azure avec un abonnement actif. Si vous ne possédez pas de compte Azure, vous pouvez créer un compte gratuit.

Remarque

À compter de l’API ARM version 2024-11-01, les sites sont créés avec l’authentification de base désactivée par défaut. Les utilisateurs peuvent l’activer manuellement si nécessaire.

Passer à la fin

Si vous êtes familiarisé avec l’utilisation de modèles ARM, vous pouvez passer à la fin en sélectionnant ce Bouton pour déployer le modèle Resource Manager sur Azure. 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 devez avoir un compte Azure avec un abonnement actif. Si vous ne possédez pas de compte Azure, vous pouvez créer un compte gratuit.

Remarque

À compter de l’API ARM version 2024-11-01, les sites sont créés avec l’authentification de base désactivée par défaut. Les utilisateurs peuvent l’activer manuellement si nécessaire.

Passer à la fin

Si vous êtes familiarisé avec l’utilisation de modèles ARM, vous pouvez passer à la fin en sélectionnant ce Bouton pour déployer le modèle Resource Manager sur Azure. 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.

Remarque

À compter de l’API ARM version 2024-11-01, les sites sont créés avec l’authentification de base désactivée par défaut. Les utilisateurs peuvent l’activer manuellement si nécessaire.

Passer à la fin

Si vous êtes familiarisé avec l’utilisation de modèles ARM, vous pouvez passer à la fin en sélectionnant ce Bouton pour déployer le modèle Resource Manager sur Azure. 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",
        "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",
      "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."
      }
    }
  },
  "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 Descriptif
webAppName ficelle webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName ficelle webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
lieu ficelle [resourceGroup().location] Région de l’application
sku ficelle F1 Taille de l’instance (F1 = niveau gratuit)
langage ficelle .NET Pile du langage de programmation (.NET, php, node, html)
helloWorld boolean False True = déployer l’application « Hello World »
repoUrl ficelle 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|8.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 Descriptif
webAppName ficelle webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName ficelle webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
lieu ficelle [resourceGroup().location] Région de l’application
sku ficelle F1 Taille de l’instance (F1 = niveau gratuit)
linuxFxVersion ficelle DOTNETCORE|9.0 « Pile du langage de programmation | Version »
repoUrl ficelle 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 Descriptif
webAppName ficelle webApp-<uniqueString> Nom de l’application basé sur une valeur de chaîne unique
appServicePlanName ficelle webAppPlan-<uniqueString> Nom du plan App Service basé sur une valeur de chaîne unique
lieu ficelle [resourceGroup().location] Région de l’application
skuTier ficelle P1v3 Taille de l’instance (Afficher les références SKU disponibles)
appSettings ficelle [{"name": "PORT","value": "8080"}] Port d’écoute App Service. Doit être 8080.
kind ficelle windows Système d’exploitation
hyperv ficelle true Modes d’isolation
windowsFxVersion ficelle 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 un emplacement par défaut sont 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|9.0 »
Java linuxFxVersion="JAVA|21-java21 TOMCAT|11.0-java21 JBOSSEAP|8-java17"
Node.JS linuxFxVersion="NODE|22-lts
Python linuxFxVersion="PYTHON|3.13 »
PHP linuxFxVersion="PHP|8.4 »

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éé.

Capture d'écran de l'expérience de code Windows.

Capture d'écran de l'expérience Linux.

Capture d’écran de l’expérience du conteneur Windows.

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)