Sdílet prostřednictvím


Nasazení do Služby Azure App Service pomocí místního Gitu

Jedním z nejjednodušších způsobů, jak nasadit kód, je z místního počítače. Tento článek ukazuje, jak nasadit svou aplikaci do Azure App Service z úložiště Git na místním počítači.

Poznámka:

Místní nasazení Gitu vyžaduje základní ověřování Správce správy zdrojového kódu (SCM), což je méně bezpečné než jiné metody nasazení. Pokud je základní ověřování zakázané, nemůžete nakonfigurovat místní nasazení Gitu v Centru nasazení aplikace.

Požadavky

K dokončení kroků v tomto článku potřebujete:

  • Účet Azure a předplatné s oprávněním k vytváření prostředků App Services. Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

  • Nainstalovaný Git a místní úložiště Git, které obsahuje kód aplikace, který se má nasadit.

    Ukázkové úložiště aplikace Node.js můžete naklonovat spuštěním následujícího příkazu v místním okně terminálu Bash:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Pokud chcete použít příkazy Azure CLI, nejnovější verze Azure CLI nainstalovaná na místním počítači. Přihlaste se k Azure pomocí příkazu az login.

  • Pokud chcete spustit příkazy Azure PowerShellu, nainstalujte si nejnovější verzi Azure PowerShellu. Přihlaste se k Azure pomocí Connect-AzAccount.

Příprava úložiště

Pokud chcete získat automatizované buildy ze serveru sestavení služby App Service, ujistěte se, že váš kořen úložiště obsahuje správné soubory v projektu.

Běhové prostředí Soubory kořenového adresáře
ASP.NET (jenom Windows) *.sln, *.csprojnebo default.aspx.
ASP.NET Core *.sln nebo *.csproj.
PHP index.php.
Ruby (jenom Linux) Gemfile.
Node.js server.js, app.jsnebo package.json se spouštěcím skriptem.
Krajta *.py, requirements.txtnebo runtime.txt.
HTML default.htm, default.html, default.asp, index.htm, , index.htmlnebo iisstart.htm.
Webové úlohy <job_name>/run.<extension> pro App_Data/jobs/continuous nepřetržité webové úlohy nebo App_Data/jobs/triggered pro aktivované webové úlohy. Další informace najdete v dokumentaci k webovým úlohám Kudu.
Funkce Viz Průběžné nasazování pro Azure Functions.

Pokud chcete nasazení přizpůsobit, zahrňte .deployment soubor do kořenového adresáře úložiště. Další informace najdete v tématu Přizpůsobení nasazení a Vlastní skript nasazení.

Návod

Visual Studio za vás může vytvořit úložiště. Díky této metodě je váš projekt okamžitě připravený k nasazení prostřednictvím Gitu.

Přihlašovací údaje pro uživatele při nasazení

K ověření a nasazení aplikace potřebujete přihlašovací údaje uživatele nasazení. Liší se od přihlašovacích údajů předplatného Azure a můžete použít přihlašovací údaje oboru uživatele nebo oboru aplikace .

Uživatel v rozsahu uživatele pro lokální nasazení Git potřebuje pouze uživatelské jméno, nikoli heslo. Uživatelské jméno můžete nastavit spuštěním příkazu Azure CLI nebo v sekci uživatelský obor na kartě místní přihlašovací údaje Git/FTPS v Centru zavádění aplikace.

Jakmile vytvoříte uživatele nasazení v oboru uživatele, můžete ho použít pro všechny aplikace služby App Service, ke kterým máte přístup. Další informace najdete v části Konfigurace uživatelských přihlašovacích údajů.

Uživatel nasazení v oboru aplikace je specifický pro aplikaci a vytvoří se automaticky při vytváření aplikace. Přihlašovací údaje uživatele v oboru aplikace, které se mají použít pro nasazení, můžete získat na kartě Místní přihlašovací údaje Git/FTPS v Centru nasazení aplikace.

Vytvoření a konfigurace aplikace s podporou Gitu

Aplikaci s podporou Gitu můžete vytvořit a nakonfigurovat nebo nakonfigurovat místní nasazení Gitu pro existující aplikaci pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.

  • Pokud chcete vytvořit novou webovou aplikaci nakonfigurovanou pro místní nasazení Gitu, spusťte příkaz az webapp create s --deployment-local-git možností. Příklad:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git
    
  • Pokud chcete nakonfigurovat místní nasazení Gitu pro již existující aplikaci, spusťte příkaz az webapp deployment source config-local-git. Příklad:

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

Buď příkaz vytvoří výstup, který obsahuje adresu URL, například:

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

Předchozí adresa URL obsahuje uživatelské jméno pro uživatelský rozsah nasazenícontoso-user. Pokud nemáte uživatelské jméno v oboru nasazení uživatele, adresa URL používá uživatelské jméno oboru aplikace, například https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Použijte tuto Git clone URL k nasazení vaší aplikace v dalším kroku.

Nasazení webové aplikace

Pokud chcete aplikaci nasadit do Azure, vytvořte v případě potřeby vzdálenou větev, ujistěte se, že nasazujete do správné větve, a pak nasdílejte kód do vzdáleného prostředí.

Vytvoření vzdálené větve

Pokud jste k vytvoření aplikace z ukázkového kódu použili Azure PowerShell New-AzWebApp , azure vzdálené prostředí už bylo vytvořeno. V opačném případě postupujte podle těchto pokynů k vytvoření vzdáleného úložiště:

  1. V místním terminálu změňte adresář na kořen naklonovaného úložiště Git.

  2. Přidejte vzdálené úložiště Git s názvem azure pomocí adresy URL klonu Gitu. Pokud neznáte adresu URL klonu Gitu, použijte https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Odeslání do správné větve

Úložiště služby App Service ve výchozím nastavení nasazují soubory do master větve. Pokud jsou vaše existující místní soubory ve master větvi úložiště, můžete teď aplikaci nasadit spuštěním git push azure masterpříkazu .

Mnoho úložišť Git, včetně úložiště vzorového kódu pro tento článek, však používá main nebo jiný výchozí název větve. Pokud chcete provést nasazení do správné větve, musíte buď explicitně nasadit na vzdálenou master větev, nebo změnit větev nasazení na main nebo jiný název větve a nasadit na tuto větev.

Explicitně nasaďte do master z vaší větve main pomocí následujícího push příkazu:

git push azure main:master

Nebo změňte nastavení vaší aplikace DEPLOYMENT_BRANCH na main a pak přímo pusťte do main následujícím způsobem:

  • 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 stránce portálu pro vaši aplikaci vyberte proměnné prostředí v části Nastavení v levé navigační nabídce.
    2. Vyberte Přidat, přidejte nastavení aplikace s názvem DEPLOYMENT_BRANCH a hlavní hodnotou a vyberte Použít.
    3. V okně terminálu spusťte git push azure mainpříkaz .

Dokončení a ověření nasazení

Pokud se po nasdílení kódu zobrazí dialogové okno Správce přihlašovacích údajů Gitu , zadejte do dialogového okna uživatelské jméno a heslo pro nasazení v rámci uživatele nebo uživatelské jméno a heslo v rámci aplikace. Pokud vaše vzdálená adresa URL Gitu už obsahuje přihlašovací údaje, nezobrazí se výzva k jeho zadání.

Zkontrolujte výstup příkazu push . Může se zobrazit automatizace specifická pro modul runtime, například npm install pro Node.js, MSBuild pro ASP.NET nebo pip install pro Python. Pokud dojde k chybám, přečtěte si téma Řešení potíží s nasazením.

Přejděte na web Azure Portal a ověřte, že se aplikace úspěšně nasadila, a to tak, že na stránce Přehled aplikace vyberete odkaz Výchozí doména. Aplikace by se měla otevřít na kartě prohlížeče a zobrazit Hello World!.

Řešení potíží s nasazením

K následujícím běžným chybám může dojít při publikování do aplikace App Service v Azure pomocí místního Gitu:

Zpráva Příčina Řešení
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikace není spuštěná. Na webu Azure Portal spusťte aplikaci. Nasazení Gitu není dostupné, když je webová aplikace zastavená.
Couldn't resolve host 'hostname' Informace o adrese vzdáleného azure zařízení jsou nesprávné. git remote -v Pomocí příkazu zobrazíte seznam všech vzdálených zařízení a přidružených adres URL. Ověřte správnost adresy URL vzdáleného azure. V případě potřeby odeberte nesprávnou adresu URL pomocí git remote remove a pak znovu vytvořte vzdálenou adresu URL se správnou adresou URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Nepřiřadili jste větev při spuštění git push nebo jste nenastavili hodnotu push.default v .gitconfig. Spusťte git push znovu a zadejte správnou větev s git push azure <branch>.
Error - Changes committed to remote repository but deployment to website failed. Odeslali jste místní větev, která neodpovídá nasazovací větvi aplikace na azure. Ověřte, že je aktuální větev master, nebo změňte větev nasazení podle pokynů v části Push do správné větve.
src refspec [branchname] does not match any. Pokusili jste se odeslat do jiné větve než main na vzdáleném azure. Spusťte git push znovu a zvolte větev main s pomocí git push azure main.
RPC failed; result=22, HTTP code = 5xx. Pokusili jste se nasdílit velké úložiště Git přes HTTPS. Změňte konfiguraci Git na místním počítači a nastavte vyšší hodnotu pro postBuffer. Například: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. Nasadili jste aplikaci Node.js se souborempackage.json , který určuje přidané požadované moduly. Podívejte se na chybové zprávy npm ERR!, které se zobrazí před touto chybou, pro více kontextu. Následující známé příčiny této chyby způsobí odpovídající npm ERR! zprávy:
Poškozený soubor package.json: npm ERR! Couldn't read dependencies.
Nativní modul nemá binární distribuci pro Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
nebo npm ERR! [modulename@version] preinstall: \make \|\| gmake\