Schnellstart: Erstellen einer App Service-App mit einer ARM-Vorlage

Beginnen Sie mit der Verwendung von Azure App Service, indem Sie zunächst eine App mit einer ARM-Vorlage (Azure Resource Manager) und der Azure CLI in Cloud Shell in der Cloud bereitstellen. Eine Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Für diesen Schnellstart fallen keine Kosten an, da Sie einen kostenlosen App Service-Tarif verwenden.

Um diesen Schnellstart durchzuführen, benötigen Sie ein Azure-Konto mit einem aktiven Abonnement. Falls Sie kein Azure-Konto besitzen, können Sie kostenlos eines erstellen.

Zum Ende springen

Wenn Sie mit der Verwendung von ARM-Vorlagen vertraut sind, können Sie zum Ende springen, indem Sie diese Schaltfläche Button to deploy the Resource Manager template to Azure. auswählen. Diese Schaltfläche öffnet die ARM-Vorlage im Azure-Portal.

Screenshot of the ARM Template in the Azure portal.

Wählen Sie zunächst zum Erstellen einer neuen Ressourcengruppe im Azure-Portal die Option Neu erstellen und dann die Schaltfläche Überprüfen und Erstellen aus, um die App bereitzustellen.

Beginnen Sie mit der Verwendung von Azure App Service, indem Sie zunächst eine App mit einer ARM-Vorlage (Azure Resource Manager) und der Azure CLI in Cloud Shell in der Cloud bereitstellen. Eine Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Für diesen Schnellstart fallen keine Kosten an, da Sie einen kostenlosen App Service-Tarif verwenden.

Um diesen Schnellstart durchzuführen, benötigen Sie ein Azure-Konto mit einem aktiven Abonnement. Falls Sie kein Azure-Konto besitzen, können Sie kostenlos eines erstellen.

Zum Ende springen

Wenn Sie mit der Verwendung von ARM-Vorlagen vertraut sind, können Sie zum Ende springen, indem Sie diese Schaltfläche Button to deploy the Resource Manager template to Azure. auswählen. Diese Schaltfläche öffnet die ARM-Vorlage im Azure-Portal.

Screenshot of the ARM Template in the Azure portal.

Wählen Sie zunächst zum Erstellen einer neuen Ressourcengruppe im Azure-Portal die Option Neu erstellen und dann die Schaltfläche Überprüfen und Erstellen aus, um die App bereitzustellen.

Beginnen Sie mit der Verwendung von Azure App Service, indem Sie zunächst eine App mit einer ARM-Vorlage (Azure Resource Manager) und der Azure CLI in Cloud Shell in der Cloud bereitstellen. Eine Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Für die Bereitstellung einer Windows-Container-App ist ein Premium-Plan erforderlich. Weitere Preisdetails finden Sie auf der App Service-Preisseite.

Zum Ende springen

Wenn Sie mit der Verwendung von ARM-Vorlagen vertraut sind, können Sie zum Ende springen, indem Sie diese Schaltfläche Button to deploy the Resource Manager template to Azure. auswählen. Diese Schaltfläche öffnet die ARM-Vorlage im Azure-Portal.

Screenshot of the ARM Template in the Azure portal.

Wählen Sie zunächst zum Erstellen einer neuen Ressourcengruppe im Azure-Portal die Option Neu erstellen und dann die Schaltfläche Überprüfen und Erstellen aus, um die App bereitzustellen.

Überprüfen der Vorlage

Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen. Sie stellt einen App Service-Plan und eine App Service-App unter Windows bereit. Zudem ist sie mit .NET Core, .NET Framework, PHP, Node.js und statischen HTML-Apps kompatibel. Informationen zu Java finden Sie unter Erstellen einer 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'))]"
      ]
    }
  ]
}

Zwei Azure-Ressourcen sind in der Vorlage definiert:

Diese Vorlage enthält mehrere vordefinierte Parameter. In der Tabelle finden Sie Standardwerte und Beschreibungen für die Parameter:

Parameter type Standardwert Beschreibung
webAppName Zeichenfolge webApp-<uniqueString> App-Name basierend auf einem eindeutigen Zeichenfolgenwert
appServicePlanName Zeichenfolge webAppPlan-<uniqueString> Name des App Service-Plans basierend auf einem eindeutigen Zeichenfolgenwert
location Zeichenfolge [resourceGroup().location] App-Region
sku Zeichenfolge F1 Instanzgröße (F1 = Free-Tarif)
language Zeichenfolge .NET Programmiersprachenstapel (.NET, PHP, Node, HTML)
helloWorld boolean False True = Hallo Welt-App bereitstellen
repoUrl Zeichenfolge Externes Git-Repository (optional)

Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen. Sie stellt einen App Service-Plan und eine App Service-App unter Linux bereit. Zudem ist sie mit allen in App Service unterstützten Programmiersprachen kompatibel.

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

Zwei Azure-Ressourcen sind in der Vorlage definiert:

Diese Vorlage enthält mehrere vordefinierte Parameter. In der Tabelle finden Sie Standardwerte und Beschreibungen für die Parameter:

Parameter type Standardwert Beschreibung
webAppName Zeichenfolge webApp-<uniqueString> App-Name basierend auf einem eindeutigen Zeichenfolgenwert
appServicePlanName Zeichenfolge webAppPlan-<uniqueString> Name des App Service-Plans basierend auf einem eindeutigen Zeichenfolgenwert
location Zeichenfolge [resourceGroup().location] App-Region
sku Zeichenfolge F1 Instanzgröße (F1 = Free-Tarif)
linuxFxVersion Zeichenfolge DOTNETCORE|3.0 „Programmiersprachenstapel | Version“
repoUrl Zeichenfolge Externes Git-Repository (optional)

Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen. Sie stellt einen App Service-Plan und eine App Service-App in einem Windows-Container bereit.

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

Zwei Azure-Ressourcen sind in der Vorlage definiert:

Diese Vorlage enthält mehrere vordefinierte Parameter. In der Tabelle finden Sie Standardwerte und Beschreibungen für die Parameter:

Parameter type Standardwert Beschreibung
webAppName Zeichenfolge webApp-<uniqueString> App-Name basierend auf einem eindeutigen Zeichenfolgenwert
appServicePlanName Zeichenfolge webAppPlan-<uniqueString> Name des App Service-Plans basierend auf einem eindeutigen Zeichenfolgenwert
location Zeichenfolge [resourceGroup().location] App-Region
skuTier Zeichenfolge P1v3 Instanzgröße (Verfügbare SKUs anzeigen)
appSettings Zeichenfolge [{"name": "PORT","value": "8080"}] App Service-Lauschport. Muss den Wert „8080“ aufweisen.
kind Zeichenfolge windows Betriebssystem
hyperv Zeichenfolge true Isolationsmodus
windowsFxVersion Zeichenfolge DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Containerimage

Bereitstellen der Vorlage

Hier wird die Azure CLI zum Bereitstellen der Vorlage verwendet. Sie können auch das Azure-Portal, Azure PowerShell oder die REST-API verwenden. Informationen zu anderen Bereitstellungsmethoden finden Sie unter Bereitstellen von Vorlagen.

Der folgende Code erstellt eine Ressourcengruppe, einen App Service-Plan und eine Web-App. Eine Standardressourcengruppe, ein App Service-Plan und ein Standort wurden für Sie festgelegt. Ersetzen Sie <app-name> durch einen global eindeutigen App-Namen (gültige Zeichen sind a-z, 0-9 und -).

Führen Sie die folgenden Befehle aus, um eine .NET Framework-App unter Windows bereitzustellen.

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"

Führen Sie die folgenden Befehle aus, um eine Python-App unter Linux zu erstellen:

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"

Aktualisieren Sie linuxFxVersion mit den entsprechenden Werten, um einen anderen Sprachstapel bereitzustellen. Beispiele werden in der Tabelle angezeigt. Führen Sie in Cloud Shell den folgenden Befehl aus, um die aktuellen Versionen anzuzeigen: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Sprache Beispiel
.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"

Führen Sie die folgenden Befehle aus, um eine .NET-App in einem Windows-Container bereitzustellen.

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"

Hinweis

Hier finden Sie weitere Beispiele für Azure App Service-Vorlagen.

Überprüfen der Bereitstellung

Rufen Sie http://<app_name>.azurewebsites.net/ auf, und überprüfen Sie, ob die Erstellung erfolgreich war.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe, wenn Sie sie nicht mehr benötigen.

Nächste Schritte