Udostępnij za pośrednictwem


Wdrażanie w usłudze Azure App Service przy użyciu lokalnego narzędzia Git

Jednym z najprostszych sposobów wdrażania kodu jest z komputera lokalnego. W tym artykule pokazano, jak wdrożyć aplikację w usłudze Azure App Service z repozytorium Git na komputerze lokalnym.

Uwaga / Notatka

Lokalne wdrożenie usługi Git wymaga podstawowego uwierzytelniania menedżera kontroli źródła (SCM), które jest mniej bezpieczne niż inne metody wdrażania. Jeśli uwierzytelnianie podstawowe jest wyłączone, nie można skonfigurować lokalnego wdrożenia usługi Git w Centrum wdrażania aplikacji.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, potrzebne są następujące elementy:

  • Konto platformy Azure i subskrypcja z uprawnieniami do tworzenia zasobów usługi App Services. Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

  • Zainstalowano narzędzie Git oraz lokalne repozytorium Git, które zawiera kod aplikacji do wdrożenia.

    Możesz sklonować przykładowe repozytorium aplikacji Node.js, uruchamiając następujące polecenie w lokalnym terminalu Bash.

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Aby używać poleceń Azure CLI, musisz mieć zainstalowaną najnowszą wersję Azure CLI na komputerze lokalnym. Zaloguj się do platformy Azure przy użyciu az login.

  • Jeśli chcesz uruchomić polecenia programu Azure PowerShell, zainstalowano najnowszą wersję programu Azure PowerShell. Zaloguj się do platformy Azure przy użyciu polecenia Connect-AzAccount.

Przygotowywanie repozytorium

Aby uzyskać automatyczne kompilacje z serwera kompilacji usługi App 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, *.csprojlub 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.
Pyton *.py, requirements.txtlub 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 WebJobs, lub App_Data/jobs/triggered dla wyzwalanych WebJobs. 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 .deployment plik do katalogu głównego repozytorium. Aby uzyskać więcej informacji, zobacz Dostosowywanie wdrożeń i Skrypt niestandardowego wdrażania.

Wskazówka

Program Visual Studio może utworzyć repozytorium dla Ciebie. Dzięki tej metodzie projekt jest natychmiast gotowy do wdrożenia za pośrednictwem usługi Git.

Poświadczenia użytkownika wdrożenia

Aby uwierzytelnić i wdrożyć swoją aplikację, potrzebujesz poświadczeń użytkownika wdrożeniowego. Różnią się one od poświadczeń subskrypcji platformy Azure i można użyć poświadczeń zakresu użytkownika lub zakresu aplikacji .

Użytkownik wdrożenia w zakresie użytkownika na potrzeby lokalnego wdrożenia usługi Git wymaga tylko nazwy użytkownika, a nie hasła. Nazwę użytkownika w zakresie użytkownika można ustawić, uruchamiając polecenie CLI platformy Azure lub w sekcji Zakres użytkownika na karcie Lokalne poświadczenia Git/FTPS w Centrum wdrażania aplikacji.

Po utworzeniu użytkownika wdrożenia w zakresie użytkownika możesz użyć go dla wszystkich aplikacji usługi App Service, do których masz dostęp. Aby uzyskać więcej informacji, zobacz Konfigurowanie poświadczeń zakresu użytkownika.

Użytkownik wdrożenia w zakresie aplikacji jest specyficzny dla aplikacji i jest tworzony automatycznie podczas tworzenia aplikacji. Poświadczenia użytkownika o zasięgu aplikacji do użycia przy wdrażaniu można uzyskać na karcie Lokalne poświadczenia git/FTPS w Centrum wdrażania aplikacji.

Tworzenie i konfigurowanie aplikacji z obsługą usługi Git

Możesz utworzyć i skonfigurować aplikację z włączoną usługą Git lub skonfigurować lokalne wdrożenie usługi Git dla istniejącej aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.

  • Aby utworzyć nową aplikację internetową skonfigurowaną na potrzeby lokalnego wdrożenia usługi Git, uruchom polecenie az webapp create z opcją --deployment-local-git . Przykład:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git
    
  • Aby skonfigurować lokalne wdrożenie git dla już istniejącej aplikacji, uruchom polecenie az webapp deployment source config-local-git. Przykład:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

W obu poleceniach są generowane dane wyjściowe zawierające adres URL, takie jak:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

Powyższy adres URL zawiera nazwę contoso-userużytkownika wdrożenia zakresu użytkownika. Jeśli nie masz nazwy użytkownika dla wdrożenia w zakresie użytkownika, adres URL używa nazwy użytkownika w zakresie aplikacji, na przykład https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Użyj tego adresu URL klonowania Git, aby wdrożyć swoją aplikację w następnym kroku.

Wdrażanie aplikacji internetowej

Aby wdrożyć aplikację na platformie Azure, w razie potrzeby utwórz gałąź zdalną, upewnij się, że wdrażasz w odpowiedniej gałęzi, a następnie wypchnij kod do zdalnej gałęzi.

Tworzenie gałęzi zdalnej

Jeśli użyto programu Azure PowerShell New-AzWebApp do utworzenia aplikacji na podstawie przykładowego kodu, zdalne repozytorium azure zostało już utworzone. W przeciwnym razie wykonaj następujące instrukcje, aby utworzyć zdalne repozytorium:

  1. W terminalu lokalnym zmień katalog na katalog główny sklonowanego repozytorium Git.

  2. Dodaj zdalne repozytorium Git o nazwie azure przy użyciu URL klonowania Git. Jeśli nie znasz adresu URL klonowania usługi Git, użyj polecenia https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Wypchnij do właściwej gałęzi

Repozytoria usługi App Service wdrażają pliki domyślnie w gałęzi master. Jeśli istniejące pliki lokalne znajdują się w master gałęzi repozytorium, możesz teraz wdrożyć aplikację, uruchamiając polecenie git push azure master.

Jednak wiele repozytoriów Git, w tym przykładowe repozytorium kodu dla tego artykułu, używa main lub innej domyślnej nazwy gałęzi. Aby wdrożyć w odpowiedniej gałęzi, należy bezpośrednio wdrożyć w zdalnej gałęzi master lub zmienić gałąź wdrożenia na main lub inną nazwę gałęzi i wdrożyć w tej gałęzi.

Jawnie wdrożenie z gałęzi main do master przy użyciu następującego polecenia push:

git push azure main:master

Możesz też zmienić ustawienie aplikacji DEPLOYMENT_BRANCH na main, a następnie przesłać bezpośrednio do main, w następujący sposób:

  • Azure CLI

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

    1. Na stronie portalu aplikacji wybierz pozycję Zmienne środowiskowe w obszarze Ustawienia w menu nawigacji po lewej stronie.
    2. Wybierz pozycję Dodaj, dodaj ustawienie aplikacji o nazwie DEPLOYMENT_BRANCH i wartości głównej, a następnie wybierz pozycję Zastosuj.
    3. W oknie terminalu uruchom polecenie git push azure main.

Kończenie i weryfikowanie wdrożenia

Jeśli po wypchnięciu kodu pojawi się okno dialogowe Menedżera poświadczeń usługi Git, wprowadź swoją nazwę użytkownika dla wdrożeń w zakresie użytkownika lub nazwę użytkownika dla zakresu aplikacji oraz hasło. Jeśli zdalny adres URL usługi Git zawiera już informacje logowania, nie zostanie wyświetlony monit o jego wprowadzenie.

Przejrzyj dane wyjściowe polecenia push . Może zostać wyświetlona automatyzacja specyficzna dla środowiska uruchomieniowego, na przykład npm install dla Node.js, MSBuild dla ASP.NET lub pip install języka Python. Jeśli wystąpią błędy, zobacz Rozwiązywanie problemów z wdrażaniem.

Przejdź do witryny Azure Portal i sprawdź, czy aplikacja została wdrożona pomyślnie, wybierając link Domyślna domena na stronie Przegląd aplikacji. Aplikacja powinna zostać otwarta na karcie przeglądarki i wyświetlić komunikat Hello World!.

Rozwiązywanie problemów z wdrażaniem

Następujące typowe błędy mogą wystąpić, gdy używasz lokalnego narzędzia Git do publikowania w aplikacji usługi App Service na platformie Azure:

Komunikat Przyczyna Rezolucja
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikacja nie jest uruchomiona. W witrynie Azure Portal uruchom aplikację. 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 i skojarzonych z nimi adresów URL. Sprawdź, czy adres URL azure zdalnego jest poprawny. W razie potrzeby usuń niepoprawny adres URL, używając git remote remove, a następnie ponownie utwórz repozytorium 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 uruchamiania git push lub nie ustawiono wartości push.default w .gitconfig. Uruchom git push ponownie i określ poprawną gałąź za pomocą polecenia git push azure <branch>.
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, lub zmień gałąź wdrożenia, postępując zgodnie z instrukcjami w Prześlij do właściwej gałęzi.
src refspec [branchname] does not match any. Podjęto próbę wypchnięcia do gałęzi innej niż main na zdalnym azure . Uruchom ponownie git push i określ gałąź za pomocą polecenia git push azure main.
RPC failed; result=22, HTTP code = 5xx. Próbowano przesłać duże repozytorium Git przez HTTPS. Zmień konfigurację usługi Git na komputerze lokalnym, aby ustawić wyższą wartość parametru postBuffer. 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 dodane wymagane moduły. npm ERR! Przejrzyj komunikaty o błędach wyświetlane przed tym błędem, aby uzyskać więcej kontekstu. Następujące znane przyczyny tego błędu powodują wygenerowanie odpowiednich npm ERR! komunikatów:
Ź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\