Snabbstart: Skapa App Service-app med hjälp av en ARM-mall

Kom igång med Azure App Service genom att distribuera en app till molnet med hjälp av en Azure Resource Manager-mall (ARM-mall) och Azure CLI i Cloud Shell. En Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Du debiteras inga kostnader för att slutföra den här snabbstarten eftersom du använder en kostnadsfri App Service-nivå.

För att slutföra den här snabbstarten behöver du ett Azure-konto med en aktiv prenumeration. Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt.

Hoppa till slutet

Om du är bekant med att använda ARM-mallar kan du hoppa till slutet genom att välja den här Button to deploy the Resource Manager template to Azure. knappen. Den här knappen öppnar ARM-mallen i Azure-portalen.

Screenshot of the ARM Template in the Azure portal.

I Azure-portalen väljer du Skapa ny för att skapa en ny resursgrupp och sedan knappen Granska + skapa för att distribuera appen.

Kom igång med Azure App Service genom att distribuera en app till molnet med hjälp av en Azure Resource Manager-mall (ARM-mall) och Azure CLI i Cloud Shell. En Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Du debiteras inga kostnader för att slutföra den här snabbstarten eftersom du använder en kostnadsfri App Service-nivå.

För att slutföra den här snabbstarten behöver du ett Azure-konto med en aktiv prenumeration. Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt.

Hoppa till slutet

Om du är bekant med att använda ARM-mallar kan du hoppa till slutet genom att välja den här Button to deploy the Resource Manager template to Azure. knappen. Den här knappen öppnar ARM-mallen i Azure-portalen.

Screenshot of the ARM Template in the Azure portal.

I Azure-portalen väljer du Skapa ny för att skapa en ny resursgrupp och sedan knappen Granska + skapa för att distribuera appen.

Kom igång med Azure App Service genom att distribuera en app till molnet med hjälp av en Azure Resource Manager-mall (ARM-mall) och Azure CLI i Cloud Shell. En Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. En Premium-plan krävs för att distribuera en Windows-containerapp. Se prissidan för App Service för prisinformation.

Hoppa till slutet

Om du är bekant med att använda ARM-mallar kan du hoppa till slutet genom att välja den här Button to deploy the Resource Manager template to Azure. knappen. Den här knappen öppnar ARM-mallen i Azure-portalen.

Screenshot of the ARM Template in the Azure portal.

I Azure-portalen väljer du Skapa ny för att skapa en ny resursgrupp och sedan knappen Granska + skapa för att distribuera appen.

Granska mallen

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Den distribuerar en App Service-plan och en App Service-app i Windows. Den är kompatibel med .NET Core-, .NET Framework-, PHP-, Node.js- och Static HTML-appar. Mer information finns i Skapa Java-app.

{
  "$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'))]"
      ]
    }
  ]
}

Två Azure-resurser definieras i mallen:

Den här mallen innehåller flera parametrar som är fördefinierade för din bekvämlighet. Se tabellen för parameterstandarder och deras beskrivningar:

Parametrar Typ Default value beskrivning
webAppName sträng webApp-<uniqueString> Appnamn baserat på ett unikt strängvärde
appServicePlanName sträng webAppPlan-<uniqueString> App Service-plannamn baserat på ett unikt strängvärde
plats sträng [resourceGroup().location] Appregion
sku sträng F1 Instansstorlek (F1 = kostnadsfri nivå)
språk string .NET Programmeringsspråkstacken (.NET, php, node, html)
helloWorld boolean False True = Distribuera "Hello World"-app
repoUrl sträng Extern Git-lagringsplats (valfritt)

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Den distribuerar en App Service-plan och en App Service-app i Linux. Den är kompatibel med alla programmeringsspråk som stöds i 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'))]"
      ]
    }
  ]
}

Två Azure-resurser definieras i mallen:

Den här mallen innehåller flera parametrar som är fördefinierade för din bekvämlighet. Se tabellen för parameterstandarder och deras beskrivningar:

Parametrar Typ Default value beskrivning
webAppName sträng webApp-<uniqueString> Appnamn baserat på ett unikt strängvärde
appServicePlanName sträng webAppPlan-<uniqueString> App Service-plannamn baserat på ett unikt strängvärde
plats sträng [resourceGroup().location] Appregion
sku sträng F1 Instansstorlek (F1 = kostnadsfri nivå)
linuxFxVersion sträng DOTNETCORE|3.0 "Programmeringsspråkstacken | Version"
repoUrl sträng Extern Git-lagringsplats (valfritt)

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Den distribuerar en App Service-plan och en App Service-app i en Windows-container.

{
  "$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
      }
    }
  ]
}

Två Azure-resurser definieras i mallen:

Den här mallen innehåller flera parametrar som är fördefinierade för din bekvämlighet. Se tabellen för parameterstandarder och deras beskrivningar:

Parametrar Typ Default value beskrivning
webAppName sträng webApp-<uniqueString> Appnamn baserat på ett unikt strängvärde
appServicePlanName sträng webAppPlan-<uniqueString> App Service-plannamn baserat på ett unikt strängvärde
plats sträng [resourceGroup().location] Appregion
skuTier sträng P1v3 Instansstorlek (Visa tillgängliga SKU:er)
app Inställningar sträng [{"name": "PORT","value": "8080"}] App Service-lyssningsport. Måste vara 8080.
typ sträng windows Operativsystem
hyperv sträng true Isoleringsläge
windowsFxVersion sträng DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Containeravbildning

Distribuera mallen

Azure CLI används här för att distribuera mallen. Du kan också använda Azure-portalen, Azure PowerShell och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.

Följande kod skapar en resursgrupp, en App Service-plan och en webbapp. En standardresursgrupp, App Service-plan och plats har angetts åt dig. Ersätt <app-name> med ett globalt unikt appnamn (giltiga tecken är a-z, 0-9och -).

Kör följande kommandon för att distribuera en .NET Framework-app i 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"

Kör följande kommandon för att skapa en Python-app i 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"

Om du vill distribuera en annan språkstack uppdaterar linuxFxVersion du med lämpliga värden. Exempel visas i tabellen. Om du vill visa aktuella versioner kör du följande kommando i Cloud Shell: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Språk Exempel
.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"

Kör följande kommandon för att distribuera en .NET-app i en Windows-container.

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"

Kommentar

Du hittar fler Azure App Service-mallexempel här.

Verifiera distributionen

Bläddra till och kontrollera att http://<app_name>.azurewebsites.net/ den har skapats.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Rensa resurser

Ta bort resursgruppen när den inte längre behövs.

Nästa steg