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:
-
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Masz lokalne repozytorium Git z kodem, który chcesz wdrożyć. Aby pobrać przykładowe repozytorium, uruchom następujące polecenie w lokalnym oknie terminalu:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
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.js lub package.json za pomocą skryptu startowego |
Python | *.py , requirements.txt lub runtime.txt |
HTML | default.htm , , default.html , default.asp , index.htm , index.html lub 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
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>
Uwaga
Jeśli aplikacja z obsługą usługi Git została utworzona w programie PowerShell przy użyciu polecenia New-AzWebApp, zdalne zostanie już utworzone.
Wypchnij na zdalną platformę Azure za pomocą
git push azure master
polecenia (zobacz Zmienianie gałęzi wdrażania).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.
Przejrzyj dane wyjściowe. Może zostać wyświetlona automatyzacja specyficzna dla środowiska uruchomieniowego, taka jak MSBuild dla ASP.NET,
npm install
Node.js ipip install
python.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ę Zmienne środowiskowe 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 push lub 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
- Serwer kompilacji usługi App Service (dokumentacja narzędzia Project Kudu)
- Ciągłe wdrażanie do usługi Azure App Service
- Przykład: tworzenie aplikacji internetowej i wdrażanie kodu z lokalnego repozytorium Git (interfejs wiersza polecenia platformy Azure)
- Przykład: tworzenie aplikacji internetowej i wdrażanie kodu z lokalnego repozytorium Git (PowerShell)