Udostępnij za pośrednictwem


Szybki start: tworzenie aplikacji usługi App Service przy użyciu szablonu usługi ARM

Rozpocznij pracę z usługą aplikacja systemu Azure, wdrażając aplikację w chmurze przy użyciu szablonu usługi Azure Resource Manager (szablonu ARM) i interfejsu wiersza polecenia platformy Azure w usłudze Cloud Shell. Szablon usługi Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Nie ponosisz żadnych kosztów, aby ukończyć ten przewodnik Szybki start, ponieważ używasz bezpłatnej warstwy usługi App Service.

Aby ukończyć ten przewodnik Szybki start, musisz mieć konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Button to deploy the Resource Manager template to Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie Azure Portal.

Screenshot of the ARM Template in the Azure portal.

W witrynie Azure Portal wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów, a następnie wybierz przycisk Przejrzyj i utwórz , aby wdrożyć aplikację.

Rozpocznij pracę z usługą aplikacja systemu Azure, wdrażając aplikację w chmurze przy użyciu szablonu usługi Azure Resource Manager (szablonu ARM) i interfejsu wiersza polecenia platformy Azure w usłudze Cloud Shell. Szablon usługi Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Nie ponosisz żadnych kosztów, aby ukończyć ten przewodnik Szybki start, ponieważ używasz bezpłatnej warstwy usługi App Service.

Aby ukończyć ten przewodnik Szybki start, musisz mieć konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Button to deploy the Resource Manager template to Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie Azure Portal.

Screenshot of the ARM Template in the Azure portal.

W witrynie Azure Portal wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów, a następnie wybierz przycisk Przejrzyj i utwórz , aby wdrożyć aplikację.

Rozpocznij pracę z usługą aplikacja systemu Azure, wdrażając aplikację w chmurze przy użyciu szablonu usługi Azure Resource Manager (szablonu ARM) i interfejsu wiersza polecenia platformy Azure w usłudze Cloud Shell. Szablon usługi Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Do wdrożenia aplikacji kontenera systemu Windows jest wymagany plan w warstwie Premium. Aby uzyskać szczegółowe informacje o cenach, zobacz stronę cennika usługi App Service.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Button to deploy the Resource Manager template to Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie Azure Portal.

Screenshot of the ARM Template in the Azure portal.

W witrynie Azure Portal wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów, a następnie wybierz przycisk Przejrzyj i utwórz , aby wdrożyć aplikację.

Przegląd szablonu

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Wdraża plan usługi App Service i aplikację usługi App Service w systemie Windows. Jest ona zgodna z aplikacjami .NET Core, .NET Framework, PHP, Node.js i Static HTML. W przypadku języka Java zobacz Tworzenie aplikacji 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'))]"
      ]
    }
  ]
}

Dwa zasoby platformy Azure są zdefiniowane w szablonie:

Ten szablon zawiera kilka parametrów, które są wstępnie zdefiniowane dla Twojej wygody. Zobacz tabelę zawierającą wartości domyślne parametrów i ich opisy:

Parametry Typ Domyślna wartość opis
webAppName string webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName string webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja string [resourceGroup().location] Region aplikacji
sku string F1 Rozmiar wystąpienia (F1 = warstwa Bezpłatna)
język string .NET Stos języka programowania (.NET, php, node, html)
Helloworld boolean False True = Wdrażanie aplikacji "Hello World"
repoUrl string Zewnętrzne repozytorium Git (opcjonalnie)

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Wdraża plan usługi App Service i aplikację usługi App Service w systemie Linux. Jest ona zgodna ze wszystkimi obsługiwanymi językami programowania w usłudze 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'))]"
      ]
    }
  ]
}

Dwa zasoby platformy Azure są zdefiniowane w szablonie:

Ten szablon zawiera kilka parametrów, które są wstępnie zdefiniowane dla Twojej wygody. Zobacz tabelę zawierającą wartości domyślne parametrów i ich opisy:

Parametry Typ Domyślna wartość opis
webAppName string webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName string webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja string [resourceGroup().location] Region aplikacji
sku string F1 Rozmiar wystąpienia (F1 = warstwa Bezpłatna)
linuxFxVersion string DOTNETCORE|3.0 "Stos języka programowania | Wersja"
repoUrl string Zewnętrzne repozytorium Git (opcjonalnie)

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Wdraża plan usługi App Service i aplikację usługi App Service w kontenerze systemu 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
      }
    }
  ]
}

Dwa zasoby platformy Azure są zdefiniowane w szablonie:

Ten szablon zawiera kilka parametrów, które są wstępnie zdefiniowane dla Twojej wygody. Zobacz tabelę zawierającą wartości domyślne parametrów i ich opisy:

Parametry Typ Domyślna wartość opis
webAppName string webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName string webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja string [resourceGroup().location] Region aplikacji
skuTier string P1v3 Rozmiar wystąpienia (wyświetl dostępne jednostki SKU)
app Ustawienia string [{"name": "PORT","value": "8080"}] Port nasłuchiwania usługi App Service. Musi być 8080.
kind string windows System operacyjny
hyperv string true Tryb izolacji
windowsFxVersion string DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Obraz kontenera

Wdrażanie szablonu

Interfejs wiersza polecenia platformy Azure służy tutaj do wdrażania szablonu. Możesz również użyć witryny Azure Portal, programu Azure PowerShell i interfejsu API REST. Aby dowiedzieć się więcej o innych metodach wdrażania, zobacz Wdrażanie szablonów.

Poniższy kod tworzy grupę zasobów, plan usługi App Service i aplikację internetową. Ustawiono domyślną grupę zasobów, plan usługi App Service i lokalizację. Zastąp <app-name> element globalnie unikatową nazwą aplikacji (prawidłowe znaki to a-z, 0-9i -).

Uruchom następujące polecenia, aby wdrożyć aplikację .NET Framework w systemie 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"

Uruchom następujące polecenia, aby utworzyć aplikację języka Python w systemie 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"

Aby wdrożyć inny stos języka, zaktualizuj linuxFxVersion je odpowiednimi wartościami. Przykłady są wyświetlane w tabeli. Aby wyświetlić bieżące wersje, uruchom następujące polecenie w usłudze Cloud Shell: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Język Przykład
.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"

Uruchom następujące polecenia, aby wdrożyć aplikację .NET w kontenerze systemu 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"

Weryfikowanie wdrożenia

Przejdź do http://<app_name>.azurewebsites.net/ witryny i sprawdź, czy został utworzony.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Czyszczenie zasobów

Gdy grupa zasobów nie będzie już potrzebna, usuń grupę zasobów.

Następne kroki