Lokalne wdrożenie usługi Git do Azure App Service

W tym przewodniku z instrukcjami pokazano, jak wdrożyć aplikację w celu Azure App Service z repozytorium Git na komputerze lokalnym.

Wymagania wstępne

Aby wykonać kroki opisane w tym przewodniku z instrukcjami:

Przygotowywanie repozytorium

Aby uzyskać automatyczne kompilacje z serwera kompilacji Azure App Service, upewnij się, że katalog główny repozytorium zawiera 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 uruchamiania
Python *.py, requirements.txtlub runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.htmllub iisstart.htm
Zadania WebJob <>job_name/uruchom.< rozszerzenie> w obszarze App_Data/jobs/continuous dla ciągłych zadań WebJob lub App_Data/jobs/triggered dla wyzwalanych zadań WebJob. Aby uzyskać więcej informacji, zobacz dokumentację usługi Kudu WebJobs.
Funkcje Zobacz Ciągłe wdrażanie, aby uzyskać 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 Azure App Service. 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ę 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 . 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 jeszcze nie utworzono aplikacji, zobacz Tworzenie aplikacji z obsługą usługi Git .

Uruchom polecenie . 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.

Porada

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 nada 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. Wypychanie do zdalnej platformy Azure za pomocą git push azure master polecenia (zobacz Zmienianie gałęzi wdrażania).

  3. W oknie Menedżer poświadczeń usługi Git 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 być widoczna automatyzacja specyficzna dla środowiska uruchomieniowego, taka jak MSBuild dla ASP.NET, npm install Node.js i pip install Python.

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

Zmień gałąź wdrożenia

Gdy wypychasz zatwierdzenia do repozytorium App Service, 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 prawej gałęzi w repozytorium App Service na jeden z dwóch sposobów:

  • Wdróż je master jawnie za 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 App Service na platformie Azure za pomocą 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 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 z 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 elemecie .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 na platformie 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\

Dodatkowe zasoby