Ciągłe wdrażanie do Azure App ServiceContinuous deployment to Azure App Service

Azure App Service umożliwia ciągłe wdrażanie z repozytorium GitHub, BitBucket i Azure Repos repozytoriów przez ściąganie najnowszych aktualizacji.Azure App Service enables continuous deployment from GitHub, BitBucket, and Azure Repos repositories by pulling in the latest updates. W tym artykule pokazano, jak używać Azure Portal do ciągłego wdrażania aplikacji za pomocą usługi kompilacji kudu lub Azure Pipelines.This article shows you how to use the Azure portal to continuously deploy your app through the Kudu build service or Azure Pipelines.

Aby uzyskać więcej informacji na temat usług kontroli źródła, zobacz Tworzenie repozytorium (GitHub), Tworzenie repozytorium (BitBucket)lub Utwórz nowe repozytorium git (Azure Repos).For more information on the source control services, see Create a repo (GitHub), Create a repo (BitBucket), or Create a new Git repo (Azure Repos).

Przygotowanie repozytoriumPrepare your repository

Aby uzyskać automatyczne kompilacje z serwer kompilacji Kudu usługi Azure App Service, upewnij się, że katalogu głównym repozytorium ma poprawne pliki w projekcie.To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

Środowisko uruchomienioweRuntime Plików w katalogu głównymRoot directory files
ASP.NET (tylko Windows)ASP.NET (Windows only) *.sln, *.csproj, lub default.aspx*.sln, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *.sln lub *.csproj*.sln or *.csproj
PHPPHP index.phpindex.php
Ruby (tylko system Linux)Ruby (Linux only) GemfileGemfile
Node.jsNode.js Server.js, app.js, lub package.json przy użyciu skryptu uruchamianiaserver.js, app.js, or package.json with a start script
PythonPython *PY, requirements.txt, lub pliku runtime.txt*.py, requirements.txt, or runtime.txt
HTMLHTML default.htm, default.html, default.asp, index.htm, index.html, lub iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
Zadania WebJobWebJobs <Parametr job_name > / run. <rozszerzenia > w obszarze aplikacji_danych/zadania/continuous dla ciągłych zadań Webjob, lub aplikacji_danych/zadania/triggered dla wyzwolone Zadania Webjob.<job_name>/run.<extension> under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Aby uzyskać więcej informacji, zobacz dokumentacji Kudu WebJobs.For more information, see Kudu WebJobs documentation.
FunkcjeFunctions Zobacz ciągłe wdrażanie dla usługi Azure Functions.See Continuous deployment for Azure Functions.

Aby dostosować swoje wdrożenia, należy dołączyć .deployment plik w folderze głównym repozytorium.To customize your deployment, include a .deployment file in the repository root. Aby uzyskać więcej informacji, zobacz Dostosowywanie wdrożeń i skrypt wdrożenia niestandardowego.For more information, see Customize deployments and Custom deployment script.

Uwaga

W przypadku tworzenia w programie Visual Studio umożliwiają programu Visual Studio Utwórz repozytorium dla Ciebie.If you develop in Visual Studio, let Visual Studio create a repository for you. Projekt jest natychmiast gotowy do wdrożenia przy użyciu narzędzia Git.The project is immediately ready to be deployed by using Git.

Autoryzuj Azure App ServiceAuthorize Azure App Service

Aby użyć Azure Repos, upewnij się, że organizacja usługi Azure DevOps jest połączona z subskrypcją platformy Azure.To use Azure Repos, make sure your Azure DevOps organization is linked to your Azure subscription. Aby uzyskać więcej informacji, zobacz Konfigurowanie konta Azure DevOps Services, aby można było je wdrożyć w aplikacji sieci Web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

W przypadku usługi BitBucket lub GitHub Autoryzuj Azure App Service, aby nawiązać połączenie z repozytorium.For Bitbucket or GitHub, authorize Azure App Service to connect to your repository. Wystarczy tylko autoryzować z usługą kontroli źródła.You only need to authorize with a source control service once.

  1. W Azure PortalWyszukaj i wybierz pozycję App Services.In the Azure portal, search for and select App Services.

    Wyszukaj usługi App Services.

  2. Wybierz aplikację sieci Web, którą chcesz wdrożyć.Select the web app you want to deploy.

    Wybierz aplikację.

  3. Na stronie aplikacja wybierz pozycję centrum wdrażania w menu po lewej stronie.On the app page, select Deployment Center in the left menu.

  4. Na stronie centrum wdrażania wybierz pozycję GitHub lub BitBucket, a następnie wybierz pozycję Autoryzuj.On the Deployment Center page, select GitHub or Bitbucket, and then select Authorize.

    Wybierz pozycję Usługa kontroli źródła, a następnie wybierz pozycję Autoryzuj.

  5. W razie potrzeby zaloguj się do usługi i postępuj zgodnie z monitami o autoryzację.Sign in to the service if necessary, and follow the authorization prompts.

Włącz ciągłe wdrażanieEnable continuous deployment

Po zatwierdzeniu usługi kontroli źródła Skonfiguruj aplikację do ciągłego wdrażania za pomocą wbudowanego serwera Kudu App Service Buildlub Azure Pipelines.After you authorize a source control service, configure your app for continuous deployment through the built-in Kudu App Service build server, or through Azure Pipelines.

Opcja 1: korzystanie z usługi kompilacji App ServiceOption 1: Use the App Service build service

Wbudowanego kudu App Service Build Server można użyć do ciągłego wdrażania z usługi GitHub, BitBucket lub Azure Repos.You can use the built-in Kudu App Service build server to continuously deploy from GitHub, Bitbucket, or Azure Repos.

  1. W Azure PortalWyszukaj i wybierz pozycję App Services, a następnie wybierz aplikację sieci Web, którą chcesz wdrożyć.In the Azure portal, search for and select App Services, and then select the web app you want to deploy.

  2. Na stronie aplikacja wybierz pozycję centrum wdrażania w menu po lewej stronie.On the app page, select Deployment Center in the left menu.

  3. Wybierz autoryzowanego dostawcę kontroli źródła na stronie centrum wdrażania , a następnie wybierz pozycję Kontynuuj.Select your authorized source control provider on the Deployment Center page, and select Continue. W witrynie GitHub lub BitBucket można także wybrać pozycję Zmień konto , aby zmienić autoryzowane konto.For GitHub or Bitbucket, you can also select Change account to change the authorized account.

    Uwaga

    Aby użyć Azure Repos, upewnij się, że Azure DevOps Services organizacja jest połączona z subskrypcją platformy Azure.To use Azure Repos, make sure your Azure DevOps Services organization is linked to your Azure subscription. Aby uzyskać więcej informacji, zobacz Konfigurowanie konta Azure DevOps Services, aby można było je wdrożyć w aplikacji sieci Web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

  4. W witrynie GitHub lub Azure Repos na stronie dostawca kompilacji wybierz pozycję App Service usługa kompilacji, a następnie wybierz pozycję Kontynuuj.For GitHub or Azure Repos, on the Build provider page, select App Service build service, and then select Continue. BitBucket zawsze używa usługi kompilacji App Service.Bitbucket always uses the App Service build service.

    Wybierz pozycję App Service Build Service, a następnie wybierz pozycję Kontynuuj.

  5. Na stronie Konfigurowanie :On the Configure page:

    • W witrynie GitHub wybierz pozycję organizacja, repozytoriumi gałąź , którą chcesz stale wdrożyć.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Uwaga

      Jeśli nie widzisz żadnych repozytoriów, może być konieczne autoryzowanie Azure App Service w serwisie GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Przejdź do repozytorium GitHub i przejdź do pozycji ustawienia > aplikacje > autoryzowane aplikacje uwierzytelniania OAuth.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Wybierz pozycję Azure App Service, a następnie wybierz pozycję Udziel.Select Azure App Service, and then select Grant. W przypadku repozytoriów organizacji musisz być właścicielem organizacji, aby przyznać uprawnienia.For organization repositories, you must be an owner of the organization to grant the permissions.

    • W przypadku BitBucket wybierz zespółBitBucket, repozytoriumi gałąź , które chcesz wdrożyć w sposób ciągły.For Bitbucket, select the Bitbucket Team, Repository, and Branch you want to deploy continuously.

    • W obszarze Azure Repos wybierz organizację, projekt, repozytoriumi gałąź usługi Azure DevOps, która ma być ciągle wdrażana.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously.

      Uwaga

      Jeśli Twoja organizacja usługi Azure DevOps nie znajduje się na liście, upewnij się, że jest ona połączona z subskrypcją platformy Azure.If your Azure DevOps organization isn't listed, make sure it's linked to your Azure subscription. Aby uzyskać więcej informacji, zobacz Konfigurowanie konta Azure DevOps Services, aby można było je wdrożyć w aplikacji sieci Web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app..

  6. Wybierz przycisk Kontynuuj.Select Continue.

    Wypełnij pola informacje o repozytorium, a następnie wybierz pozycję Kontynuuj.

  7. Po skonfigurowaniu dostawcy kompilacji przejrzyj ustawienia na stronie Podsumowanie , a następnie wybierz pozycję Zakończ.After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Nowe zatwierdzenia w wybranym repozytorium i rozgałęzieniu teraz wdrażają się w sposób ciągły w aplikacji App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Zatwierdzenia i wdrożenia można śledzić na stronie centrum wdrażania .You can track the commits and deployments on the Deployment Center page.

    Śledzenie zatwierdzeń i wdrożeń w centrum wdrażania

Opcja 2: Użyj Azure PipelinesOption 2: Use Azure Pipelines

Jeśli Twoje konto ma wymagane uprawnienia, możesz skonfigurować Azure Pipelines do ciągłego wdrażania z repozytorium GitHub lub Azure Repos repozytoriów.If your account has the necessary permissions, you can set up Azure Pipelines to continuously deploy from GitHub or Azure Repos repositories. Aby uzyskać więcej informacji o wdrażaniu za pomocą Azure Pipelines, zobacz wdrażanie aplikacji sieci Web na platformie Azure App Services.For more information about deploying through Azure Pipelines, see Deploy a web app to Azure App Services.

Aby uzyskać Azure App Service do tworzenia Azure Pipelines ciągłego dostarczania w organizacji usługi Azure DevOps:For Azure App Service to create continuous delivery Azure Pipelines in your Azure DevOps organization:

  • Twoje konto platformy Azure musi mieć uprawnienia do zapisu w Azure Active Directory i tworzenia usługi.Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • Twoje konto platformy Azure musi mieć rolę właściciela w ramach subskrypcji platformy Azure.Your Azure account must have the Owner role in your Azure subscription.

  • Musisz być administratorem w projekcie usługi Azure DevOps, którego chcesz użyć.You must be an administrator in the Azure DevOps project you want to use.

Aby skonfigurować Azure Pipelines (wersja zapoznawcza):To configure Azure Pipelines (Preview):

  1. W Azure PortalWyszukaj i wybierz pozycję App Services, a następnie wybierz aplikację sieci Web, którą chcesz wdrożyć.In the Azure portal, search for and select App Services, and then select the web app you want to deploy.

  2. Na stronie aplikacja wybierz pozycję centrum wdrażania w menu po lewej stronie.On the app page, select Deployment Center in the left menu.

  3. Na stronie dostawca kompilacji wybierz pozycję Azure Pipelines (wersja zapoznawcza) , a następnie wybierz pozycję Kontynuuj.On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

  4. Na stronie Konfigurowanie w sekcji kod :On the Configure page, in the Code section:

    • W witrynie GitHub wybierz pozycję organizacja, repozytoriumi gałąź , którą chcesz stale wdrożyć.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Uwaga

      Jeśli nie widzisz żadnych repozytoriów, może być konieczne autoryzowanie Azure App Service w serwisie GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Przejdź do repozytorium GitHub i przejdź do pozycji ustawienia > aplikacje > autoryzowane aplikacje uwierzytelniania OAuth.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Wybierz pozycję Azure App Service, a następnie wybierz pozycję Udziel.Select Azure App Service, and then select Grant. W przypadku repozytoriów organizacji musisz być właścicielem organizacji, aby przyznać uprawnienia.For organization repositories, you must be an owner of the organization to grant the permissions.

    • W obszarze Azure Repos wybierz organizację Azure DevOps, projekt, repozytoriumi gałąź , którą chcesz wdrożyć w sposób ciągły, lub skonfiguruj nową organizację usługi Azure DevOps.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously, or configure a new Azure DevOps organization.

      Uwaga

      Jeśli istniejąca organizacja usługi Azure DevOps nie jest wymieniona, może być konieczne połączenie jej z subskrypcją platformy Azure.If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. Aby uzyskać więcej informacji, zobacz Definiowanie potoku wydania dysku CD.For more information, see Define your CD release pipeline.

  5. Wybierz przycisk Kontynuuj.Select Continue.

  6. W przypadku Azure Repos w sekcji kompilacja określ strukturę języka, która Azure Pipelines powinna być używana do uruchamiania zadań kompilacji, a następnie wybierz pozycję Kontynuuj.For Azure Repos, in the Build section, specify the language framework that Azure Pipelines should use to run build tasks, and then select Continue.

  7. Na stronie test wybierz, czy włączyć testy obciążenia, a następnie wybierz pozycję Kontynuuj.On the Test page, choose whether to enable load tests, and then select Continue.

  8. W zależności od warstwy cenowejplanu App Service może zostać wyświetlona strona wdrażanie do przemieszczania .Depending on your App Service plan pricing tier, you may see a Deploy to staging page. Zdecyduj, czy chcesz włączyć miejsca wdrożenia, a następnie wybierz pozycję Kontynuuj.Choose whether to enable deployment slots, and then select Continue.

    Uwaga

    Azure Pipelines nie umożliwia ciągłego dostarczania do miejsca produkcyjnego.Azure Pipelines doesn't allow continuous delivery to the production slot. To ograniczenie zapobiega przypadkowym wdrożeniom w środowisku produkcyjnym.This restriction prevents accidental deployments to production. Skonfiguruj ciągłe dostarczanie do miejsca przejściowego, Sprawdź zmiany tam, a następnie Zamień miejsca, gdy wszystko będzie gotowe.Set up continuous delivery to a staging slot, verify the changes there, and then swap the slots when you are ready.

  9. Po skonfigurowaniu dostawcy kompilacji przejrzyj ustawienia na stronie Podsumowanie , a następnie wybierz pozycję Zakończ.After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Nowe zatwierdzenia w wybranym repozytorium i rozgałęzieniu teraz wdrażają się w sposób ciągły w aplikacji App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Zatwierdzenia i wdrożenia można śledzić na stronie centrum wdrażania .You can track the commits and deployments on the Deployment Center page.

    Śledzenie zatwierdzeń i wdrożeń w centrum wdrażania

Wyłącz ciągłe wdrażanieDisable continuous deployment

Aby wyłączyć ciągłe wdrażanie, wybierz pozycję Rozłącz w górnej części strony centrum wdrażania aplikacji.To disable continuous deployment, select Disconnect at the top of your app's Deployment Center page.

Wyłącz ciągłe wdrażanie

Co się stanie z moją aplikacją podczas wdrażania?What happens to my app during deployment?

Wszystkie oficjalnie obsługiwane metody wdrażania wprowadzają zmiany w plikach w folderze /home/site/wwwroot aplikacji.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Te pliki są używane do uruchamiania aplikacji.These files are used to run your app. W związku z tym wdrożenie może zakończyć się niepowodzeniem ze względu na zablokowane pliki.Therefore, the deployment can fail because of locked files. Aplikacja może również zachowywać się nieprzewidywalne podczas wdrażania, ponieważ nie wszystkie pliki zostały zaktualizowane w tym samym czasie.The app may also behave unpredictably during deployment, because not all the files updated at the same time. Jest to niepożądane dla aplikacji klienta.This is undesirable for a customer-facing app. Istnieje kilka różnych sposobów, aby uniknąć następujących problemów:There are a few different ways to avoid these issues:

Użyj nieobsługiwanych repozytoriówUse unsupported repos

W przypadku aplikacji systemu Windows możesz ręcznie skonfigurować ciągłe wdrażanie z repozytorium Git lub Mercurial w chmurze, które nie jest bezpośrednio obsługiwane przez portal, na przykład GitLab.For Windows apps, you can manually configure continuous deployment from a cloud Git or Mercurial repository that the portal doesn't directly support, such as GitLab. Możesz to zrobić, wybierając pole zewnętrzne na stronie centrum wdrażania .You do it by choosing the External box in the Deployment Center page. Aby uzyskać więcej informacji, zobacz Konfigurowanie ciągłego wdrażania przy użyciu kroków ręcznych.For more information, see Set up continuous deployment using manual steps.

Zasoby dodatkoweAdditional resources