Dela via


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 Knapp för att distribuera Resource Manager-mallen till Azure. knappen. Den här knappen öppnar ARM-mallen i Azure Portal.

Skärmbild av ARM-mallen i Azure Portal.

I Azure Portal 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 Knapp för att distribuera Resource Manager-mallen till Azure. knappen. Den här knappen öppnar ARM-mallen i Azure Portal.

Skärmbild av ARM-mallen i Azure Portal.

I Azure Portal 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 Knapp för att distribuera Resource Manager-mallen till Azure. knappen. Den här knappen öppnar ARM-mallen i Azure Portal.

Skärmbild av ARM-mallen i Azure Portal.

I Azure Portal 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)
appSettings 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 Portal, 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.

Skärmbild av Windows-kodupplevelsen.

Skärmbild av Linux-upplevelsen.

Skärmbild av Windows-containerupplevelsen.

Rensa resurser

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

Nästa steg