Lokal Git-distribution till Azure App Service
Den här guiden visar hur du distribuerar din app till Azure App Service från en Git-lagringsplats på din lokala dator.
Kommentar
När grundläggande SCM-autentisering är inaktiverad fungerar inte lokal Git-distribution och du kan inte konfigurera lokal Git-distribution i appens distributionscenter.
Förutsättningar
Så här följer du stegen i den här guiden:
-
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Ha en lokal Git-lagringsplats med kod som du vill distribuera. Om du vill ladda ned en exempellagringsplats kör du följande kommando i det lokala terminalfönstret:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Förbereda lagringsplatsen
Om du vill hämta automatiserade versioner från Azure App Service-byggservern kontrollerar du att lagringsplatsens rot har rätt filer i projektet.
Körmiljö | Rotkatalogfiler |
---|---|
ASP.NET (endast Windows) | *.sln , *.csproj eller default.aspx |
ASP.NET Core | *.sln eller *.csproj |
PHP | index.php |
Ruby (endast Linux) | Gemfile |
Node.js | server.js , app.js eller package.json med ett startskript |
Python | *.py , requirements.txt eller runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html , eller iisstart.htm |
WebJobs | <job_name>/run.<extension> under App_Data/jobs/continuous för kontinuerliga webbjobb eller App_Data/jobs/triggered för utlösta webbjobb. Mer information finns i Dokumentation om Kudu WebJobs. |
Funktioner | Se Kontinuerlig distribution för Azure Functions. |
Om du vill anpassa distributionen tar du med en .distributionsfil i lagringsplatsens rot. Mer information finns i Anpassa distributioner och Anpassat distributionsskript.
Kommentar
Om du använder Visual Studio kan du låta Visual Studio skapa en lagringsplats åt dig. Projektet är omedelbart redo för distribution via Git.
Konfigurera en distributionsanvändare
Se Konfigurera autentiseringsuppgifter för distribution för Azure App Service. Du kan använda autentiseringsuppgifter för användaromfattning eller autentiseringsuppgifter för programomfattning.
Skapa en Git-aktiverad app
Om du redan har en App Service-app och vill konfigurera lokal Git-distribution för den kan du läsa Konfigurera en befintlig app i stället.
Kör az webapp create
med alternativet --deployment-local-git
. Till exempel:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Utdata innehåller en URL som: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Använd den här URL:en för att distribuera din app i nästa steg.
Konfigurera en befintlig app
Om du inte har någon app än kan du läsa Skapa en Git-aktiverad app i stället.
Kör az webapp deployment source config-local-git
. Till exempel:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Utdata innehåller en URL som: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Använd den här URL:en för att distribuera din app i nästa steg.
Dricks
Den här URL:en innehåller användarnamnet för användaromfattningsdistributionen. Om du vill kan du använda autentiseringsuppgifterna för programomfattning i stället.
Distribuera webbappen
I ett lokalt terminalfönster ändrar du katalogen till roten på git-lagringsplatsen och lägger till en Git-fjärranslutning med hjälp av url:en som du fick från din app. Om den valda metoden inte ger dig en URL använder
https://<app-name>.scm.azurewebsites.net/<app-name>.git
du med appnamnet i<app-name>
.git remote add azure <url>
Kommentar
Om du har skapat en Git-aktiverad app i PowerShell med New-AzWebApp har fjärrappen redan skapats åt dig.
Skicka till Azure-fjärren med
git push azure master
(se Ändra distributionsgren).I fönstret Git Credential Manager anger du dina autentiseringsuppgifter för användaromfattning eller programomfattning, inte dina autentiseringsuppgifter för Azure-inloggning.
Om git-fjärr-URL:en redan innehåller användarnamnet och lösenordet uppmanas du inte att göra det.
Granska utdata. Du kan se körningsspecifik automatisering, till exempel MSBuild för ASP.NET,
npm install
för Node.js ochpip install
för Python.Bläddra till din app i Azure-portalen för att kontrollera att innehållet har distribuerats.
Ändra distributionsgren
När du push-överför incheckningar till din App Service-lagringsplats distribuerar App Service filerna i grenen master
som standard. Eftersom många Git-lagringsplatser flyttas från master
till main
måste du se till att du push-överför till rätt gren i App Service-lagringsplatsen på något av två sätt:
Distribuera till
master
explicit med ett kommando som:git push azure main:master
Ändra distributionsgrenen genom att ange appinställningen
DEPLOYMENT_BRANCH
och sedan skicka incheckningar till den anpassade grenen. Så här gör du med Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Du kan också ändra appinställningen
DEPLOYMENT_BRANCH
i Azure-portalen genom att välja Miljövariabler under Inställningar och lägga till en ny appinställning med namnetDEPLOYMENT_BRANCH
och värdetmain
.
Felsöka distribution
Du kan se följande vanliga felmeddelanden när du använder Git för att publicera till en App Service-app i Azure:
Meddelande | Orsak | Åtgärd |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Appen är inte igång. | Starta appen i Azure-portalen. Git-distributionen är inte tillgänglig när webbappen stoppas. |
Couldn't resolve host 'hostname' |
Adressinformationen för fjärrplatsen azure är felaktig. |
git remote -v Använd kommandot för att lista alla fjärranslutningar, tillsammans med den associerade URL:en. Kontrollera att URL:en för fjärren azure är korrekt. Om det behövs tar du bort och återskapar den här fjärranslutningen med rätt URL. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Du har inte angett någon gren under git push , eller så har du inte angett push.default värdet i .gitconfig . |
Kör git push igen och ange huvudgrenen: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Du push-överförde en lokal gren som inte matchar appdistributionsgrenen på azure . |
Kontrollera att den aktuella grenen är master . Om du vill ändra standardgrenen använder du DEPLOYMENT_BRANCH programinställningen (se Ändra distributionsgren). |
src refspec [branchname] does not match any. |
Du försökte push-överföra till en annan gren än main på fjärrplatsen azure . |
Kör git push igen och ange huvudgrenen: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Det här felet kan inträffa om du försöker skicka en stor git-lagringsplats via HTTPS. | Ändra git-konfigurationen på den lokala datorn så att den postBuffer blir större. Exempel: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Du har distribuerat en Node.js-app med en package.json fil som anger ytterligare nödvändiga moduler. | Granska felmeddelandena npm ERR! före det här felet för mer kontext om felet. Följande är de kända orsakerna till det här felet och motsvarande npm ERR! meddelanden:Felaktig package.json fil: npm ERR! Couldn't read dependencies. Den inbyggda modulen har ingen binär distribution för Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 eller npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |