Tworzenie aplikacji platformy ASP.NET Core w usłudze App Service dla systemu LinuxCreate an ASP.NET Core app in App Service on Linux

Uwaga

W tym artykule opisano wdrażanie aplikacji w usłudze App Service w systemie Linux.This article deploys an app to App Service on Linux. Aby wdrożyć aplikację w usłudze App Service w systemie Windows, zobacz Tworzenie aplikacji ASP.NET Core na platformie Azure.To deploy to App Service on Windows, see Create an ASP.NET Core app in Azure.

Usługa App Service w systemie Linux oferuje wysoce skalowalną i samonaprawialną usługę hostingu w Internecie przy użyciu systemu operacyjnego Linux.App Service on Linux provides a highly scalable, self-patching web hosting service using the Linux operating system. Ten przewodnik szybkiego startu pokazuje, jak utworzyć aplikację platformy .NET Core w usłudze App Service w systemie Linux.This quickstart shows how to create a .NET Core app on App Service on Linux. Aplikację możesz utworzyć przy użyciu interfejsu wiersza polecenia Azure, a usługa Git umożliwia wdrażanie kodu platformy .NET Core w aplikacji.You create the app using the Azure CLI, and you use Git to deploy the .NET Core code to the app.

Przykładowa aplikacja działająca na platformie Azure

Kroki podane w tym artykule możesz wykonać przy użyciu komputera z systemem Mac, Windows lub Linux.You can follow the steps in this article using a Mac, Windows, or Linux machine.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Wymagania wstępnePrerequisites

Aby ukończyć ten przewodnik Szybki start:To complete this quickstart:

Lokalne tworzenie aplikacjiCreate the app locally

W oknie terminala na komputerze utwórz katalog o nazwie hellodotnetcore i zmień bieżący katalog na niego.In a terminal window on your machine, create a directory named hellodotnetcore and change the current directory to it.

mkdir hellodotnetcore
cd hellodotnetcore

Utwórz nową aplikację .NET Core.Create a new .NET Core app.

dotnet new web

Lokalne uruchamianie aplikacjiRun the app locally

Uruchom aplikację lokalnie, aby zobaczyć, jak powinna ona wyglądać, gdy wdrożysz ją na platformie Azure.Run the application locally so that you see how it should look when you deploy it to Azure.

Przywróć pakiety NuGet i uruchom aplikację.Restore the NuGet packages and run the app.

dotnet run

Otwórz przeglądarkę internetową i przejdź do aplikacji pod adresem http://localhost:5000.Open a web browser, and navigate to the app at http://localhost:5000.

Na stronie zostanie wyświetlony komunikat Hello World z przykładowej aplikacji.You see the Hello World message from the sample app displayed in the page.

Test przy użyciu przeglądarki

W oknie terminalu naciśnij kombinację klawiszy Ctrl + C, aby zamknąć serwer sieci Web.In your terminal window, press Ctrl+C to exit the web server. Inicjowanie repozytorium Git dla projektu platformy .NET Core.Initialize a Git repository for the .NET Core project.

git init
git add .
git commit -m "first commit"

Używanie usługi Azure Cloud ShellUse Azure Cloud Shell

Platforma Azure obsługuje Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Do pracy z usługami platformy Azure można używać bash lub PowerShell z Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Możesz użyć wstępnie zainstalowanych poleceń Cloud Shell, aby uruchomić kod w tym artykule bez konieczności instalowania niczego w środowisku lokalnym.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Aby rozpocząć Azure Cloud Shell:To start Azure Cloud Shell:

OpcjaOption Przykład/linkExample/Link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.Select Try It in the upper-right corner of a code block. Wybranie przycisku Wypróbuj nie powoduje automatycznego skopiowania kodu do Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Przykład try dla Azure Cloud Shell
Przejdź do https://shell.azure.comlub wybierz przycisk Uruchom Cloud Shell , aby otworzyć Cloud Shell w przeglądarce.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. uruchamiania Cloud Shell w nowym oknieLaunch Cloud Shell in a new window
Wybierz przycisk Cloud Shell w prawym górnym pasku menu w Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Przycisk Cloud Shell w witrynie Azure Portal

Aby uruchomić kod w tym artykule w Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Rozpocznij Cloud Shell.Start Cloud Shell.

  2. Aby skopiować kod, wybierz przycisk Kopiuj w bloku kodu.Select the Copy button on a code block to copy the code.

  3. Wklej kod do sesji Cloud Shell, wybierając kolejno pozycje Ctrl+SHIFT+v w systemach Windows i Linux lub wybierając polecenie cmd+SHIFT+v w macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Wybierz klawisz ENTER , aby uruchomić kod.Select Enter to run the code.

Konfigurowanie użytkownika wdrożeniaConfigure a deployment user

FTP i lokalnego narzędzia Git można wdrożyć aplikację internetową platformy Azure przy użyciu użytkownika wdrożenia.FTP and local Git can deploy to an Azure web app by using a deployment user. Po skonfigurowaniu użytkownika wdrożenia, można użyć go we wszystkich wdrożeniach platformy Azure.Once you configure your deployment user, you can use it for all your Azure deployments. Nazwy wdrażania na poziomie konta użytkownika i hasła różnią się od poświadczeń subskrypcji platformy Azure.Your account-level deployment username and password are different from your Azure subscription credentials.

Aby skonfigurować użytkownika wdrożenia, uruchom Ustaw użytkownika wdrożenia aplikacji sieci Web az polecenia w usłudze Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Zastąp <username > i <hasło > Nazwa użytkownika wdrożenia użytkownika i hasłem.Replace <username> and <password> with a deployment user username and password.

  • Nazwa użytkownika musi być unikatowa na platformie Azure, i dla lokalnego narzędzia Git nie może zawierać wypchnięciom, ' @' symboli.The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Hasło musi mieć co najmniej ośmiu znaków i zawierać dwa z następujących trzech elementów: litery, cyfry i symbole.The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
az webapp deployment user set --user-name <username> --password <password>

Dane wyjściowe JSON zawiera hasło jako null.The JSON output shows the password as null. Jeśli wystąpił błąd 'Conflict'. Details: 409, zmień nazwę użytkownika.If you get a 'Conflict'. Details: 409 error, change the username. Jeśli wystąpił błąd 'Bad Request'. Details: 400, użyj silniejszego hasła.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Zapisz nazwę użytkownika i hasło służące do wdrażania aplikacji sieci web.Record your username and password to use to deploy your web apps.

Tworzenie grupy zasobówCreate a resource group

Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure, takich jak aplikacje internetowe, bazy danych i konta magazynu, oraz zarządzania nimi.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Na przykład można później usunąć całą grupę zasobów w jednym prostym kroku.For example, you can choose to delete the entire resource group in one simple step later.

W usłudze Cloud Shell utwórz grupę zasobów za pomocą polecenia az group create.In the Cloud Shell, create a resource group with the az group create command. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji West Europe (Europa Zachodnia).The following example creates a resource group named myResourceGroup in the West Europe location. Aby wyświetlić wszystkie obsługiwane lokalizacje dla usługi App Service w systemie Linux w warstwie Podstawowa, uruchom polecenie az appservice list-locations --sku B1 --linux-workers-enabled.To see all supported locations for App Service on Linux in Basic tier, run the az appservice list-locations --sku B1 --linux-workers-enabled command.

az group create --name myResourceGroup --location "West Europe"

Zasadniczo grupy zasobów i zasoby są tworzone w pobliskim regionie.You generally create your resource group and the resources in a region near you.

Po zakończeniu działania polecenia zostaną wyświetlone dane wyjściowe JSON z właściwościami grupy zasobów.When the command finishes, a JSON output shows you the resource group properties.

Tworzenie planu usługi Azure App ServiceCreate an Azure App Service plan

W usłudze Cloud Shell utwórz plan usługi App Service w grupie zasobów za pomocą polecenia az appservice plan create.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

Poniższy przykład tworzy plan usługi App Service o nazwie myAppServicePlan przy użyciu warstwy cenowej Podstawowa (--sku B1) w kontenerze systemu Linux (--is-linux).The following example creates an App Service plan named myAppServicePlan in the Basic pricing tier (--sku B1) and in a Linux container (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku B1 --is-linux

Po utworzeniu planu usługi App Service interfejs wiersza polecenia platformy Azure wyświetli informacje podobne do następujących:When the App Service plan has been created, the Azure CLI shows information similar to the following example:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Tworzenie aplikacji sieci webCreate a web app

Utwórz aplikację internetową w planie usługi App Service myAppServicePlan.Create a web app in the myAppServicePlan App Service plan.

W usłudze Cloud Shell można użyć polecenia az webapp create.In the Cloud Shell, you can use the az webapp create command. W poniższym przykładzie zastąp ciąg <app-name> globalnie unikatową nazwą aplikacji (prawidłowe znaki to a-z, 0-9 i -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Środowisko uruchomieniowe ma ustawioną wartość DOTNETCORE|2.2.The runtime is set to DOTNETCORE|2.2. Aby wyświetlić wszystkie obsługiwane środowiska uruchomieniowe, uruchom polecenie az webapp list-runtimes --linux.To see all supported runtimes, run az webapp list-runtimes --linux.

# Bash
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "DOTNETCORE|2.2" --deployment-local-git
# PowerShell
az --% webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "DOTNETCORE|2.2" --deployment-local-git

Po utworzeniu aplikacji internetowej w interfejsie wiersza polecenia platformy Azure zostaną wyświetlone dane wyjściowe podobne do następujących:When the web app has been created, the Azure CLI shows output similar to the following example:

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Utworzona została pusta aplikacja internetowa w kontenerze systemu Linux z włączonym wdrażaniem git.You’ve created an empty web app in a Linux container, with git deployment enabled.

Uwaga

Adres URL zdalnego repozytorium Git jest wyświetlany we właściwości deploymentLocalGitUrl w formacie https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git.The URL of the Git remote is shown in the deploymentLocalGitUrl property, with the format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Zapisz ten adres URL, ponieważ będzie on potrzebny później.Save this URL as you need it later.

Przejdź do nowo utworzonej aplikacji.Browse to your newly created app. Zastąp <ciąg App-Name > nazwą aplikacji.Replace <app-name> with your app name.

http://<app-name>.azurewebsites.net

Tak powinna wyglądać nowa aplikacja:Here is what your new app should look like:

Pusta strona aplikacji

Wypychanie z narzędzia Git na platformę AzurePush to Azure from Git

W lokalnym oknie terminala dodaj zdalną platformę Azure do lokalnego repozytorium Git.Back in the local terminal window, add an Azure remote to your local Git repository. Zastąp ciąg <deploymentLocalGitUrl-from-create-step> adresem URL zdalnego repozytorium Git zapisanym w sekcji Tworzenie aplikacji internetowej.Replace <deploymentLocalGitUrl-from-create-step> with the URL of the Git remote that you saved from Create a web app.

git remote add azure <deploymentLocalGitUrl-from-create-step>

Wypchnij na zdalną platformę Azure w celu wdrożenia aplikacji za pomocą następującego polecenia.Push to the Azure remote to deploy your app with the following command. Gdy w Menedżerze poświadczeń repozytorium Git zostanie wyświetlony monit o podanie poświadczeń, upewnij się, że wprowadzasz poświadczenia utworzone podczas konfiguracji użytkownika wdrożenia, a nie poświadczenia, których używasz do logowania się w witrynie Azure Portal.When prompted for credentials by Git Credential Manager, make sure that you enter the credentials you created in Configure a deployment user, not the credentials you use to sign in to the Azure portal.

git push azure master

Wykonanie tego polecenia może potrwać kilka minut.This command may take a few minutes to run. Podczas wykonywania polecenie wyświetli informacje podobne do następującego przykładu:While running, it displays information similar to the following example:

Counting objects: 22, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (18/18), done.
Writing objects: 100% (22/22), 51.21 KiB | 3.94 MiB/s, done.
Total 22 (delta 1), reused 0 (delta 0)
remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id '741f16d1db'.
remote: Generating deployment script.
remote: Project file path: ./hellodotnetcore.csproj
remote: Generated deployment script files
remote: Running deployment command...
remote: Handling ASP.NET Core Web Application deployment.
remote: ...............................................................................................
remote:   Restoring packages for /home/site/repository/hellodotnetcore.csproj...
remote: ....................................
remote:   Installing System.Xml.XPath 4.0.1.
remote:   Installing System.Diagnostics.Tracing 4.1.0.
remote:   Installing System.Threading.Tasks.Extensions 4.0.0.
remote:   Installing System.Reflection.Emit.ILGeneration 4.0.1.
remote:   ...
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
To https://cephalin-dotnetcore.scm.azurewebsites.net/cephalin-dotnetcore.git
 * [new branch]      master -> master

Przechodzenie do aplikacjiBrowse to the app

Przejdź do wdrożonej aplikacji za pomocą przeglądarki sieci Web.Browse to the deployed application using your web browser.

http://<app_name>.azurewebsites.net

Przykładowy kod .NET Core jest uruchamiany w usłudze App Service dla systemu Linux z wbudowanym obrazem.The .NET Core sample code is running in App Service on Linux with a built-in image.

Przykładowa aplikacja działająca na platformie Azure

Gratulacje!Congratulations! Udało Ci się wdrożyć pierwszą własną aplikację platformy .NET Core w usłudze App Service w systemie Linux.You've deployed your first .NET Core app to App Service on Linux.

Aktualizowanie i ponowne wdrażanie koduUpdate and redeploy the code

W katalogu lokalnym otwórz plik Startup.cs.In the local directory, open the Startup.cs file. Wprowadź niewielką zmianę w tekście wywołania metody context.Response.WriteAsync:Make a small change to the text in the method call context.Response.WriteAsync:

await context.Response.WriteAsync("Hello Azure!");

Zatwierdź zmiany w narzędziu Git, a następnie wypchnij zmiany kodu na platformę Azure.Commit your changes in Git, and then push the code changes to Azure.

git commit -am "updated output"
git push azure master

Po zakończeniu wdrożenia przejdź z powrotem do okna przeglądarki otwartego w kroku przechodzenia do aplikacji, a następnie kliknij przycisk Odśwież.Once deployment has completed, switch back to the browser window that opened in the Browse to the app step, and hit refresh.

Zaktualizowana przykładowa aplikacja działająca na platformie Azure

Zarządzanie nową aplikacją platformy AzureManage your new Azure app

Przejdź do witryny Azure Portal, aby zarządzać utworzoną aplikacją.Go to the Azure portal to manage the app you created.

W menu po lewej stronie kliknij pozycję App Services, a następnie kliknij nazwę swojej aplikacji platformy Azure.From the left menu, click App Services, and then click the name of your Azure app.

Nawigacja w portalu do aplikacji platformy Azure

Zostanie wyświetlona strona Przegląd aplikacji.You see your app's Overview page. Tutaj możesz wykonywać podstawowe zadania zarządzania, takie jak przeglądanie, zatrzymywanie, uruchamianie, ponowne uruchamianie i usuwanie.Here, you can perform basic management tasks like browse, stop, start, restart, and delete.

Strona usługi App Service w witrynie Azure Portal

Menu po lewej stronie zawiera różne strony służące do konfigurowania aplikacji.The left menu provides different pages for configuring your app.

Oczyszczanie zasobówClean up resources

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów.In the preceding steps, you created Azure resources in a resource group. Jeśli te zasoby nie będą raczej potrzebne w przyszłości, usuń grupę zasobów, uruchamiając następujące polecenie w usłudze Cloud Shell:If you don't expect to need these resources in the future, delete the resource group by running the following command in the Cloud Shell:

az group delete --name myResourceGroup

Wykonanie tego polecenia może potrwać około minutę.This command may take a minute to run.

Następne krokiNext steps