Lokalne wdrożenie narzędzia Git do Azure App ServiceLocal Git deployment to Azure App Service

Ten przewodnik zawiera informacje na temat sposobu wdrażania aplikacji w celu Azure App Service z repozytorium Git na komputerze lokalnym.This how-to guide shows you how to deploy your app to Azure App Service from a Git repository on your local computer.

Wymagania wstępnePrerequisites

Aby wykonać kroki opisane w tym przewodniku:To follow the steps in this how-to guide:

  • 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.

  • Zainstaluj narzędzie git.Install Git.

  • Posiadanie lokalnego repozytorium git z kodem, który chcesz wdrożyć.Have a local Git repository with code you want to deploy. Aby pobrać przykładowe repozytorium, uruchom następujące polecenie w lokalnym oknie terminala:To download a sample repository, run the following command in your local terminal window:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    

Przygotowywanie repozytoriumPrepare your repository

Aby uzyskać kompilacje automatyczne z programu Azure App Service kudu Build Server, upewnij się, że katalog główny 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 Pliki katalogu głównegoRoot directory files
ASP.NET (tylko system 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.jsna skrypcie uruchamianiaserver.js, app.js, or package.json with a start script
PythonPython * . pr, requirements.txt lub 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
WebJobsWebJobs <job_name>/Run.<extension><job_name>/run.<extension> w obszarze _ dane aplikacji/zadania/ciągłe dla ciągłych zadań WebJob lub _ dane/zadania aplikacji/wyzwolone dla wyzwalanych zadań WebJob.under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Aby uzyskać więcej informacji, zobacz Dokumentacja kudu WebJobs.For more information, see Kudu WebJobs documentation.
FunkcjeFunctions Zobacz ciągłe wdrażanie dla Azure Functions.See Continuous deployment for Azure Functions.

Aby dostosować wdrożenie, Uwzględnij plik . Deployment w katalogu 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 niestandardowego skryptu wdrażania.For more information, see Customize deployments and Custom deployment script.

Uwaga

Jeśli tworzysz w programie Visual Studio, pozwól programowi Visual Studio utworzyć repozytorium.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.

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

Na platforma Azure hostowane jest 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ć programu Bash lub PowerShell w środowisku Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Aby uruchomić kod z tego artykułu bez konieczności instalowania narzędzi w środowisku lokalnym, można użyć wstępnie zainstalowanych poleceń środowiska Cloud Shell.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 uruchomić środowisko 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 pozycji Wypróbuj nie spowoduje automatycznego skopiowania kodu do środowiska Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Przykład funkcji Wypróbuj w środowisku Azure Cloud Shell
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko 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. Uruchamianie środowiska Cloud Shell w nowym oknieLaunch Cloud Shell in a new window
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Przycisk Cloud Shell w witrynie Azure Portal

Aby uruchomić kod z tego artykułu w środowisku Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.Start Cloud Shell.

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

  3. Wklej kod w sesji Cloud Shell, naciskając klawisze Ctrl+Shift+V w systemach Windows i Linux lub klawisze Cmd+Shift+V w systemie 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. Naciśnij klawisz Enter, aby uruchomić kod.Select Enter to run the code.

Wdróż z serwerem kompilacji kuduDeploy with Kudu build server

Najprostszym sposobem włączenia lokalnego wdrożenia narzędzia Git dla aplikacji przy użyciu serwera kudu App Service Build jest użycie Azure Cloud Shell.The easiest way to enable local Git deployment for your app with the Kudu App Service build server is to use Azure Cloud Shell.

Konfigurowanie użytkownika wdrożeniaConfigure a deployment user

Usługa FTP i lokalne narzędzia Git można wdrożyć w aplikacji sieci Web 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 go użyć do wszystkich wdrożeń platformy Azure.Once you configure your deployment user, you can use it for all your Azure deployments. Nazwa użytkownika i hasło wdrożenia na poziomie konta 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 polecenie AZ webapp Deployment User Set w Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Zastąp <username> i nazwą <password> użytkownika i hasłem dla wdrożenia.Replace <username> and <password> with a deployment user username and password.

  • Nazwa użytkownika musi być unikatowa w ramach platformy Azure, a w przypadku lokalnych powiadomień wypychanych Git nie może zawierać symbolu "@".</span><span class="sxs-lookup">The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Hasło musi składać się z co najmniej ośmiu znaków, a 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 przedstawiają 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, aby użyć do wdrożenia aplikacji sieci Web.Record your username and password to use to deploy your web apps.

Pobierz adres URL wdrożeniaGet the deployment URL

Aby uzyskać adres URL umożliwiający lokalne wdrożenie narzędzia Git dla istniejącej aplikacji, uruchom polecenie az webapp deployment source config-local-git w Cloud Shell.To get the URL to enable local Git deployment for an existing app, run az webapp deployment source config-local-git in the Cloud Shell. Zastąp <app-name> <group-name> wartości i nazwami aplikacji oraz jej grupą zasobów platformy Azure.Replace <app-name> and <group-name> with the names of your app and its Azure resource group.

az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>

Uwaga

Jeśli używasz planu usługi App-Service-system dla systemu Linux, musisz dodać ten parametr:--Runtime Python | 3.7If you are using a linux app-service-plan, you need to add this parameter: --runtime python|3.7

Lub, aby utworzyć nową aplikację z obsługą git, uruchom polecenie az webapp create w Cloud Shell z --deployment-local-git parametrem.Or, to create a new Git-enabled app, run az webapp create in the Cloud Shell with the --deployment-local-git parameter. Zastąp <app-name> , <group-name> i <plan-name> z nazwami nowej aplikacji git, jej grupą zasobów platformy Azure i planem Azure App Service.Replace <app-name>, <group-name>, and <plan-name> with the names for your new Git app, its Azure resource group, and its Azure App Service plan.

az webapp create --name <app-name> --resource-group <group-name> --plan <plan-name> --deployment-local-git

Każde polecenie zwraca adres URL, na przykład: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git .Either command returns a URL like: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Użyj tego adresu URL, aby wdrożyć aplikację w następnym kroku.Use this URL to deploy your app in the next step.

Zamiast używać tego adresu URL na poziomie konta, można również włączyć lokalny git przy użyciu poświadczeń na poziomie aplikacji.Instead of using this account-level URL, you can also enable local Git by using app-level credentials. Azure App Service automatycznie generuje te poświadczenia dla każdej aplikacji.Azure App Service automatically generates these credentials for every app.

Pobierz poświadczenia aplikacji, uruchamiając następujące polecenie w Cloud Shell.Get the app credentials by running the following command in the Cloud Shell. Zastąp <app-name> nazwy i nazwą <group-name> swojej aplikacji oraz grupą zasobów platformy Azure.Replace <app-name> and <group-name> with your app's name and Azure resource group name.

az webapp deployment list-publishing-credentials --name <app-name> --resource-group <group-name> --query scmUri --output tsv

Użyj adresu URL, który powraca do wdrożenia aplikacji w następnym kroku.Use the URL that returns to deploy your app in the next step.

Wdrażanie aplikacji sieci WebDeploy the web app

  1. Otwórz lokalne okno terminalu w lokalnym repozytorium git, a następnie Dodaj element zdalny platformy Azure.Open a local terminal window to your local Git repository, and add an Azure remote. W poniższym poleceniu Zastąp <url> ciąg adresem URL specyficznym dla użytkownika, który został uzyskany z poprzedniego kroku.In the following command, replace <url> with the deployment user-specific URL or app-specific URL you got from the previous step.

    git remote add azure <url>
    
  2. Wypchnij do zdalnego systemu Azure za pomocą usługi git push azure master .Push to the Azure remote with git push azure master.

  3. W oknie Menedżer poświadczeń git wprowadź hasło użytkownika wdrożenia, a nie hasło logowania do platformy Azure.In the Git Credential Manager window, enter your deployment user password, not your Azure sign-in password.

  4. Przejrzyj dane wyjściowe.Review the output. Dla npm install Node.js i dla języka Python może zostać wyświetlona Automatyzacja specyficzna dla środowiska uruchomieniowego, taka jak MSBuild for ASP.NET pip install .You may see runtime-specific automation, such as MSBuild for ASP.NET, npm install for Node.js, and pip install for Python.

  5. Przejdź do aplikacji w Azure Portal, aby sprawdzić, czy zawartość została wdrożona.Browse to your app in the Azure portal to verify that the content is deployed.

Wdróż z kompilacjami Azure PipelinesDeploy with Azure Pipelines builds

Jeśli Twoje konto ma wymagane uprawnienia, możesz skonfigurować Azure Pipelines (wersja zapoznawcza), aby włączyć lokalne wdrożenie narzędzia Git dla aplikacji.If your account has the necessary permissions, you can set up Azure Pipelines (Preview) to enable local Git deployment for your app.

  • 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 włączyć lokalne wdrożenie narzędzia Git dla aplikacji przy użyciu Azure Pipelines (wersja zapoznawcza):To enable local Git deployment for your app with Azure Pipelines (Preview):

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

  2. Wybierz aplikację Azure App Service i wybierz pozycję centrum wdrażania w menu po lewej stronie.Select your Azure App Service app and select Deployment Center in the left menu.

  3. Na stronie centrum wdrażania wybierz pozycję lokalny program git , a następnie wybierz pozycję Kontynuuj .On the Deployment Center page, select Local Git , and then select Continue .

    Wybierz pozycję lokalny git, a następnie wybierz pozycję Kontynuuj.

  4. 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 .

    Wybierz pozycję Azure Pipelines (wersja zapoznawcza), a następnie wybierz pozycję Kontynuuj.

  5. Na stronie Konfigurowanie Skonfiguruj nową organizację usługi Azure DevOps lub określ istniejącą organizację, a następnie wybierz pozycję Kontynuuj .On the Configure page, configure a new Azure DevOps organization, or specify an existing organization, and then select Continue .

    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.

  6. 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 .

  7. Na stronie Podsumowanie przejrzyj ustawienia, a następnie wybierz pozycję Zakończ .On the Summary page, review the settings, and then select Finish .

  8. Gdy potok platformy Azure jest gotowy, skopiuj adres URL repozytorium git ze strony centrum wdrażania , aby użyć go w następnym kroku.When the Azure Pipeline is ready, copy the Git repository URL from the Deployment Center page to use in the next step.

    Skopiuj adres URL repozytorium git

  9. W oknie terminalu lokalnego Dodaj zdalne Azure do lokalnego repozytorium git.In your local terminal window, add an Azure remote to your local Git repository. W poleceniu Zastąp ciąg <url> adresem URL repozytorium git uzyskanym w poprzednim kroku.In the command, replace <url> with the URL of the Git repository that you got from the previous step.

    git remote add azure <url>
    
  10. Wypchnij do zdalnego systemu Azure za pomocą usługi git push azure master .Push to the Azure remote with git push azure master.

  11. Na stronie Menedżer poświadczeń git Zaloguj się przy użyciu nazwy użytkownika VisualStudio.com.On the Git Credential Manager page, sign in with your visualstudio.com username. Aby poznać inne metody uwierzytelniania, zobacz Omówienie uwierzytelniania Azure DevOps Services.For other authentication methods, see Azure DevOps Services authentication overview.

  12. Po zakończeniu wdrożenia Przejrzyj postęp kompilacji o godzinie https://<azure_devops_account>.visualstudio.com/<project_name>/_build i postęp wdrażania o https://<azure_devops_account>.visualstudio.com/<project_name>/_release .Once deployment is finished, view the build progress at https://<azure_devops_account>.visualstudio.com/<project_name>/_build, and the deployment progress at https://<azure_devops_account>.visualstudio.com/<project_name>/_release.

  13. Przejdź do aplikacji w Azure Portal, aby sprawdzić, czy zawartość została wdrożona.Browse to your app in the Azure portal to verify that the content is deployed.

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 /home/site/wwwroot folderze 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:

Rozwiązywanie problemów z wdrażaniemTroubleshoot deployment

W przypadku publikowania w aplikacji App Service na platformie Azure przy użyciu narzędzia Git mogą pojawić się następujące typowe komunikaty o błędach:You may see the following common error messages when you use Git to publish to an App Service app in Azure:

WiadomośćMessage PrzyczynaCause RozwiązanieResolution
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikacja nie działa.The app isn't up and running. Uruchom aplikację w Azure Portal.Start the app in the Azure portal. Wdrożenie narzędzia Git jest niedostępne, gdy aplikacja sieci Web jest zatrzymana.Git deployment isn't available when the web app is stopped.
Couldn't resolve host 'hostname' Informacje o adresie dla elementu zdalnego "Azure" są nieprawidłowe.The address information for the 'azure' remote is incorrect. Użyj git remote -v polecenia, aby wyświetlić listę wszystkich zdalnych, wraz z skojarzonym adresem URL.Use the git remote -v command to list all remotes, along with the associated URL. Sprawdź, czy adres URL dla zdalnego "Azure" jest prawidłowy.Verify that the URL for the 'azure' remote is correct. W razie konieczności Usuń i Utwórz ponownie ten zdalny przy użyciu poprawnego adresu URL.If needed, remove and recreate this remote using the correct URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. Nie określono gałęzi git push w trakcie lub wartość nie została ustawiona push.default w .gitconfig .You didn't specify a branch during git push, or you haven't set the push.default value in .gitconfig. Uruchom git push ponownie, określając gałąź główną: git push azure master .Run git push again, specifying the master branch: git push azure master.
src refspec [branchname] does not match any. Podjęto próbę wypchnięcia do gałęzi innej niż główna na zdalnym serwerze "Azure".You tried to push to a branch other than master on the 'azure' remote. Uruchom git push ponownie, określając gałąź główną: git push azure master .Run git push again, specifying the master branch: git push azure master.
RPC failed; result=22, HTTP code = 5xx. Ten błąd może wystąpić, jeśli spróbujesz wypchnąć duże repozytorium Git za pośrednictwem protokołu HTTPS.This error can happen if you try to push a large git repository over HTTPS. Zmień konfigurację Git na komputerze lokalnym, aby zwiększyć postBuffer rozmiar.Change the git configuration on the local machine to make the postBuffer bigger. Na przykład: git config --global http.postBuffer 524288000.For example: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. Wdrożono aplikację Node.js przy użyciu package.jsw pliku, który określa dodatkowe wymagane moduły.You deployed a Node.js app with a package.json file that specifies additional required modules. Sprawdź npm ERR! komunikaty o błędach przed tym błędem, aby uzyskać więcej kontekstu w przypadku awarii.Review the npm ERR! error messages before this error for more context on the failure. Poniżej przedstawiono znane przyczyny tego błędu oraz odpowiadające im npm ERR! komunikaty:The following are the known causes of this error, and the corresponding npm ERR! messages:

Nieprawidłowo sformułowany package.jsw pliku : npm ERR! Couldn't read dependencies.Malformed package.json file : npm ERR! Couldn't read dependencies.

Moduł macierzysty nie ma dystrybucji binarnej dla systemu Windows :Native module doesn't have a binary distribution for Windows :
npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
lubor
npm ERR! [modulename@version] preinstall: \make || gmake\

Dodatkowe zasobyAdditional resources