Lokalne wdrożenie usługi Git w usłudze aplikacja systemu Azure

W tym przewodniku z instrukcjami pokazano, jak wdrożyć aplikację w usłudze aplikacja systemu Azure z repozytorium Git na komputerze lokalnym.

Uwaga

Jeśli uwierzytelnianie podstawowe programu SCM jest wyłączone, lokalne wdrożenie usługi Git nie działa i nie można skonfigurować lokalnego wdrożenia git w Centrum wdrażania aplikacji.

Wymagania wstępne

Aby wykonać kroki opisane w tym przewodniku z instrukcjami:

Przygotowywanie repozytorium

Aby uzyskać automatyczne kompilacje z serwera kompilacji usługi aplikacja systemu Azure Service, upewnij się, że katalog główny repozytorium ma poprawne pliki w projekcie.

Środowisko uruchomieniowe Pliki katalogu głównego
ASP.NET (tylko system Windows) *.sln, *.csproj lub default.aspx
ASP.NET Core *.sln lub *.csproj
PHP index.php
Ruby (tylko system Linux) Gemfile
Node.js server.js, app.jslub package.json za pomocą skryptu startowego
Python *.py, requirements.txt lub runtime.txt
HTML default.htm, , default.html, default.asp, index.htm, index.htmllub iisstart.htm
Zadania WebJob <job_name>/run.<extension> w obszarze App_Data/jobs/continuous dla ciągłych zadań WebJob lub App_Data/jobs/triggered wyzwalanych zadań WebJob. Aby uzyskać więcej informacji, zobacz dokumentację usługi Kudu WebJobs.
Funkcje Zobacz Ciągłe wdrażanie dla usługi Azure Functions.

Aby dostosować wdrożenie, dołącz plik wdrożenia do katalogu głównego repozytorium. Aby uzyskać więcej informacji, zobacz Dostosowywanie wdrożeń i niestandardowego skryptu wdrażania.

Uwaga

Jeśli używasz programu Visual Studio, pozwól programowi Visual Studio utworzyć repozytorium. Projekt będzie natychmiast gotowy do wdrożenia za pośrednictwem usługi Git.

Konfigurowanie użytkownika wdrożenia

Zobacz Konfigurowanie poświadczeń wdrożenia dla usługi aplikacja systemu Azure. Możesz użyć poświadczeń zakresu użytkownika lub poświadczeń zakresu aplikacji.

Tworzenie aplikacji z obsługą usługi Git

Jeśli masz już aplikację usługi App Service i chcesz skonfigurować lokalne wdrożenie usługi Git, zobacz Konfigurowanie istniejącej aplikacji .

Uruchom polecenie az webapp create z opcją --deployment-local-git . Na przykład:

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

Dane wyjściowe zawierają adres URL, taki jak: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Użyj tego adresu URL, aby wdrożyć aplikację w następnym kroku.

Konfigurowanie istniejącej aplikacji

Jeśli nie masz jeszcze aplikacji, zobacz Tworzenie aplikacji z włączoną usługą Git.

Uruchom program az webapp deployment source config-local-git. Na przykład:

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

Dane wyjściowe zawierają adres URL, taki jak: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Użyj tego adresu URL, aby wdrożyć aplikację w następnym kroku.

Napiwek

Ten adres URL zawiera nazwę użytkownika wdrożenia w zakresie użytkownika. Jeśli chcesz, możesz zamiast tego użyć poświadczeń zakresu aplikacji.

Wdrażanie aplikacji internetowej

  1. W lokalnym oknie terminalu zmień katalog na katalog główny repozytorium Git i dodaj repozytorium Git zdalny przy użyciu adresu URL uzyskanym z aplikacji. Jeśli wybrana metoda nie nadaje Ci adresu URL, użyj jej https://<app-name>.scm.azurewebsites.net/<app-name>.git z nazwą aplikacji w pliku <app-name>.

    git remote add azure <url>
    
  2. Wypchnij na zdalną platformę Azure za pomocą git push azure master polecenia (zobacz Zmienianie gałęzi wdrażania).

  3. W oknie Git Credential Manager wprowadź poświadczenia zakresu użytkownika lub zakresu aplikacji, a nie poświadczenia logowania platformy Azure.

    Jeśli zdalny adres URL usługi Git zawiera już nazwę użytkownika i hasło, nie zostanie wyświetlony monit.

  4. Przejrzyj dane wyjściowe. Może zostać wyświetlona automatyzacja specyficzna dla środowiska uruchomieniowego, taka jak MSBuild dla ASP.NET, npm install Node.js i pip install python.

  5. Przejdź do aplikacji w witrynie Azure Portal, aby sprawdzić, czy zawartość została wdrożona.

Zmień gałąź wdrożenia

Po wypchnięciu zatwierdzeń do repozytorium usługi App Service usługa App Service domyślnie wdraża pliki w master gałęzi. Ponieważ wiele repozytoriów Git odchodzi od master usługi main, musisz upewnić się, że wypchniesz do odpowiedniej gałęzi w repozytorium usługi App Service na jeden z dwóch sposobów:

  • Wdróż jawnie za master pomocą polecenia, takiego jak:

    git push azure main:master
    
  • Zmień gałąź wdrożenia, ustawiając DEPLOYMENT_BRANCH ustawienie aplikacji, a następnie wypychaj zatwierdzenia do gałęzi niestandardowej. Aby to zrobić za pomocą interfejsu wiersza polecenia platformy Azure:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    

    Możesz również zmienić DEPLOYMENT_BRANCH ustawienie aplikacji w witrynie Azure Portal, wybierając pozycję Konfiguracja w obszarze Ustawienia i dodając nowe ustawienie aplikacji z nazwą DEPLOYMENT_BRANCH i wartością main.

Rozwiązywanie problemów z wdrażaniem

Podczas publikowania w aplikacji usługi App Service na platformie Azure przy użyciu narzędzia Git mogą zostać wyświetlone następujące typowe komunikaty o błędach:

Komunikat Przyczyna Rozwiązanie
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikacja nie jest uruchomiona. Uruchom aplikację w witrynie Azure Portal. Wdrożenie usługi Git nie jest dostępne po zatrzymaniu aplikacji internetowej.
Couldn't resolve host 'hostname' Informacje o adresie zdalnym azure są niepoprawne. Użyj polecenia , git remote -v aby wyświetlić listę wszystkich zdalnych wraz ze skojarzonym adresem URL. Sprawdź, czy adres URL zdalnego azure jest poprawny. W razie potrzeby usuń i ponownie utwórz to zdalne przy użyciu poprawnego adresu URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Nie określono gałęzi podczas git pushlub nie ustawiono push.default wartości w pliku .gitconfig. Uruchom git push ponownie polecenie , określając gałąź główną: git push azure main.
Error - Changes committed to remote repository but deployment to website failed. Wypchnięliśmy gałąź lokalną, która nie jest zgodna z gałęzią wdrażania aplikacji w systemie azure. Sprawdź, czy bieżąca gałąź to master. Aby zmienić gałąź domyślną, użyj DEPLOYMENT_BRANCH ustawienia aplikacji (zobacz Zmienianie gałęzi wdrażania).
src refspec [branchname] does not match any. Próbowano wypchnąć do gałęzi innej niż główna na zdalnym azure . Uruchom git push ponownie polecenie , określając gałąź główną: git push azure main.
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. Zmień konfigurację usługi Git na komputerze lokalnym, aby zwiększyć postBuffer rozmiar. Na przykład: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. Wdrożono aplikację Node.js z plikiem package.json , który określa dodatkowe wymagane moduły. npm ERR! Przejrzyj komunikaty o błędach przed tym błędem, aby uzyskać więcej kontekstu dotyczącego błędu. Poniżej przedstawiono znane przyczyny tego błędu i odpowiednie npm ERR! komunikaty:

Źle sformułowany plik package.json: npm ERR! Couldn't read dependencies.

Moduł macierzysty nie ma dystrybucji binarnej dla systemu Windows:
npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
lub
npm ERR! [modulename@version] preinstall: \make || gmake\

Więcej zasobów