Místní nasazení Gitu do služby Aplikace Azure Service

Tento návod ukazuje, jak nasadit aplikaci do služby Aplikace Azure Service z úložiště Git na místním počítači.

Poznámka:

Když je základní ověřování SCM zakázané, místní nasazení Gitu nefunguje a nemůžete nakonfigurovat místní nasazení Gitu v Centru nasazení aplikace.

Požadavky

Postup popsaný v tomto průvodci postupy:

  • Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

  • Nainstalovat Git

  • Mít místní úložiště Git s kódem, který chcete nasadit. Pokud chcete stáhnout ukázkové úložiště, spusťte v okně místního terminálu následující příkaz:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    

Příprava úložiště

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

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

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

Poznámka:

Pokud používáte Visual Studio, nechte Visual Studio vytvořit úložiště za vás. Váš projekt bude okamžitě připravený k nasazení prostřednictvím Gitu.

Konfigurace uživatele nasazení

Viz Konfigurace přihlašovacích údajů nasazení pro službu Aplikace Azure Service. Můžete použít přihlašovací údaje oboru uživatele nebo přihlašovací údaje oboru aplikace.

Vytvoření aplikace s podporou Gitu

Pokud už máte aplikaci App Service a chcete pro ni nakonfigurovat místní nasazení Gitu, přečtěte si téma Konfigurace existující aplikace .

Spusťte az webapp create s možností --deployment-local-git . Příklad:

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

Výstup obsahuje adresu URL, například: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Tuto adresu URL použijte k nasazení aplikace v dalším kroku.

Konfigurace existující aplikace

Pokud ještě nemáte aplikaci, přečtěte si článek Vytvoření aplikace s podporou Gitu.

Spusťte az webapp deployment source config-local-git. Příklad:

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

Výstup obsahuje adresu URL, například: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Tuto adresu URL použijte k nasazení aplikace v dalším kroku.

Tip

Tato adresa URL obsahuje uživatelské jméno nasazení v oboru uživatele. Pokud chcete, můžete místo toho použít přihlašovací údaje oboru aplikace.

Nasazení webové aplikace

  1. V okně místního terminálu změňte adresář na kořen úložiště Git a přidejte vzdálený Git pomocí adresy URL, kterou jste získali z aplikace. Pokud vámi zvolená metoda nedává adresu URL, použijte https://<app-name>.scm.azurewebsites.net/<app-name>.git ji s názvem vaší aplikace v <app-name>souboru .

    git remote add azure <url>
    

    Poznámka:

    Pokud jste v PowerShellu vytvořili aplikaci s podporou Gitu pomocí New-AzWebAppu, vzdálené prostředí už je pro vás vytvořené.

  2. Nasdílení změn do vzdáleného úložiště Azure ( git push azure master viz Změna větve nasazení)

  3. V okně Git Credential Manager zadejte přihlašovací údaje pro obor uživatele nebo obor aplikace, ne přihlašovací údaje Azure.

    Pokud vaše vzdálená adresa URL Gitu už obsahuje uživatelské jméno a heslo, nezobrazí se výzva.

  4. Zkontrolujte výstup. Může se zobrazit automatizace specifická pro modul runtime, jako je MSBuild pro ASP.NET, npm install pro Node.js a pip install pro Python.

  5. Přejděte do aplikace na webu Azure Portal a ověřte, že je obsah nasazený.

Změna větve nasazení

Když do úložiště služby App Service nasdílíte potvrzení, služba App Service ve výchozím nastavení nasadí soubory ve master větvi. Vzhledem k tomu, že se mnoho úložišť Git přesouvá mimo mastermainprovoz, musíte se ujistit, že se v úložišti služby App Service nasdílíte do správné větve jedním ze dvou způsobů:

  • Nasazení explicitně master pomocí příkazu, jako je:

    git push azure main:master
    
  • Změňte větev nasazení nastavením DEPLOYMENT_BRANCH nastavení aplikace a potom nasdílejte potvrzení do vlastní větve. Postup s využitím Azure CLI:

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

    Nastavení aplikace můžete změnit také DEPLOYMENT_BRANCH na webu Azure Portal tak, že v části Nastavení vyberete Možnost Konfigurace a přidáte nové nastavení aplikace s názvem DEPLOYMENT_BRANCH a hodnotou main.

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

Při publikování do aplikace App Service v Azure se můžou zobrazit následující běžné chybové zprávy:

Zpráva Příčina Řešení
Unable to access '[siteURL]': Failed to connect to [scmAddress] Aplikace není spuštěná. Spusťte aplikaci na webu Azure Portal. 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 zobrazte seznam všech vzdálených zařízení spolu s přidruženou adresou URL. Ověřte správnost adresy URL vzdáleného azure umístění. V případě potřeby odeberte a znovu vytvořte tento vzdálený přístup pomocí správné adresy URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Nezadali jste větev během git push, nebo jste nenastavili push.default hodnotu v .gitconfig. Spusťte git push znovu a zadejte hlavní větev: git push azure main.
Error - Changes committed to remote repository but deployment to website failed. Odeslali jste místní větev, která neodpovídá větvi azurenasazení aplikace. Ověřte, zda je masteraktuální větev . Pokud chcete změnit výchozí větev, použijte DEPLOYMENT_BRANCH nastavení aplikace (viz Změna větve nasazení).
src refspec [branchname] does not match any. Pokusili jste se nasdílit jinou větev než hlavní na vzdáleném azure počítači. Spusťte git push znovu a zadejte hlavní větev: git push azure main.
RPC failed; result=22, HTTP code = 5xx. K této chybě může dojít v případě, že se pokusíte nasdílet velké úložiště Git přes PROTOKOL HTTPS. Změňte konfiguraci Gitu na místním počítači tak, aby byla větší 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 souborem package.json , který určuje další požadované moduly. npm ERR! Zkontrolujte chybové zprávy před touto chybou a vyhledejte další kontext selhání. Níže jsou uvedené známé příčiny této chyby a 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\

Další materiály