Udostępnij przez


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.

Do ukończenia tego szybkiego startu potrzebne jest konto Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.

Uwaga

Począwszy od wersji interfejsu API ARM 2024-11-01, witryny są domyślnie tworzone z wyłączonym uwierzytelnianiem podstawowym. Użytkownicy mogą ją ręcznie aktywować, jeśli jest to wymagane.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie 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.

Do ukończenia tego szybkiego startu potrzebne jest konto Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.

Uwaga

Począwszy od wersji interfejsu API ARM 2024-11-01, witryny są domyślnie tworzone z wyłączonym uwierzytelnianiem podstawowym. Użytkownicy mogą ją ręcznie aktywować, jeśli jest to wymagane.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie 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.

Uwaga

Począwszy od wersji interfejsu API ARM 2024-11-01, witryny są domyślnie tworzone z wyłączonym uwierzytelnianiem podstawowym. Użytkownicy mogą ją ręcznie aktywować, jeśli jest to wymagane.

Przejdź do końca

Jeśli znasz szablony usługi ARM, możesz przejść do końca, wybierając ten Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure. przycisk. Ten przycisk otwiera szablon usługi ARM w witrynie 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",
        "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'))]"
      ]
    }
  ]
}

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 ciąg webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName ciąg webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja ciąg [resourceGroup().location] Region aplikacji
Jednostka magazynowa (SKU) ciąg F1 Rozmiar wystąpienia (F1 = warstwa Bezpłatna)
język ciąg .NET Stos języka programowania (.NET, php, node, html)
helloWorld typ logiczny (boolowski) False True = Wdrażanie aplikacji "Hello World"
repoUrl (adres URL repozytorium) ciąg 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|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'))]"
      ]
    }
  ]
}

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 ciąg webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName ciąg webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja ciąg [resourceGroup().location] Region aplikacji
Jednostka magazynowa (SKU) ciąg F1 Rozmiar wystąpienia (F1 = warstwa Bezpłatna)
linuxFxVersion ciąg DOTNETCORE|9.0 "Stos języka programowania | Wersja"
repoUrl (adres URL repozytorium) ciąg 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 ciąg webApp-<uniqueString> Nazwa aplikacji oparta na unikatowej wartości ciągu
appServicePlanName ciąg webAppPlan-<uniqueString> Nazwa planu usługi App Service oparta na unikatowej wartości ciągu
lokalizacja ciąg [resourceGroup().location] Region aplikacji
skuTier ciąg P1v3 Rozmiar wystąpienia (wyświetl dostępne jednostki SKU)
appSettings (Ustawienia aplikacji) ciąg [{"name": "PORT","value": "8080"}] Port nasłuchiwania usługi App Service. Musi być 8080.
rodzaj ciąg windows System operacyjny
hyperv ciąg true Tryb izolacji
windowsFxVersion (wersja windowsaFx) ciąg 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ą. Dla Ciebie 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|9.0"
Jawa linuxFxVersion="JAVA|21-java21 TOMCAT|11.0-java21 JBOSSEAP|8-java17"
Node.js linuxFxVersion="NODE|22-lts
Pyton linuxFxVersion="PYTHON|3.13"
PHP linuxFxVersion="PHP|8.4"

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.

Zrzut ekranu przedstawiający środowisko kodu systemu Windows.

Zrzut ekranu przedstawiający środowisko systemu Linux.

Zrzut ekranu przedstawiający środowisko kontenera systemu Windows.

Czyszczenie zasobów

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

Następne kroki