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.
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.js nebo 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.html nebo 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. |
Funkce | 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
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é.
Nasdílení změn do vzdáleného úložiště Azure (
git push azure master
viz Změna větve nasazení)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.
Zkontrolujte výstup. Může se zobrazit automatizace specifická pro modul runtime, jako je MSBuild pro ASP.NET,
npm install
pro Node.js apip install
pro Python.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 master
main
provoz, 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 také změnit
DEPLOYMENT_BRANCH
na webu Azure Portal tak, že v části Nastavení vyberete proměnné prostředí a přidáte nové nastavení aplikace s názvemDEPLOYMENT_BRANCH
a hodnotoumain
.
Ř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 azure nasazení aplikace. |
Ověřte, zda je master aktuá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\ |