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.
Förutsättningar
Följ stegen i den här instruktionerna:
-
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Ha en lokal Git-lagringsplats med kod som du vill distribuera. Om du vill ladda ned en exempeldatabas 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 din lagringsplats
Om du vill hämta automatiserade Azure App Service från en byggserver kontrollerar du att lagringsplatsens rot har rätt filer i projektet.
| Körning | 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 ellerpackage.js på 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 _ Appdata/jobb/kontinuerlig för kontinuerliga webbjobb eller _ Appdata/jobb/utlösta för utlösta webbjobb. Mer information finns i Kudu WebJobs-dokumentationen. |
| Functions | Se Kontinuerlig distribution för Azure Functions. |
Om du vill anpassa distributionen inkluderar du en .deployment-fil i lagringsplatsens rot. Mer information finns i Anpassa distributioner och Anpassat distributionsskript.
Anteckning
Om du använder Visual Studio kan Visual Studio skapa en lagringsplats åt dig. Projektet kommer omedelbart att vara 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 antingen autentiseringsuppgifter för användaromfång eller autentiseringsuppgifter för programomfång.
Skapa en Git-aktiverad app
Om du redan har en App Service-app och vill konfigurera lokal Git-distribution för den kan du se Konfigurera en befintlig app i stället.
Kör az webapp create med --deployment-local-git alternativet . 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 skapat en app än kan du se Skapa en Git-aktiverad app i stället.
Kör az webapp deployment source config-local-git . 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.
Tips
Den här URL:en innehåller användarnamnet för distribution av användaromfång. Om du vill kan du använda autentiseringsuppgifterna för programomfång i stället.
Distribuera webbappen
I ett lokalt terminalfönster ändrar du katalogen till roten på Git-lagringsplatsen och lägger till en Fjärransluten Git med hjälp av den URL som du fick från din app. Om den valda metoden inte ger dig en URL använder du
https://<app-name>.scm.azurewebsites.net/<app-name>.gitmed appnamnet i<app-name>.git remote add azure <url>Anteckning
Om du har skapat en Git-aktiverad app i PowerShell med hjälp av New-AzWebApphar fjärrservern redan skapats åt dig.
Push-skicka till Azure-fjärrservern
git push azure mastermed (se Ändra distributionsgren).I fönstret Git Autentiseringshanteraren anger du dina autentiseringsuppgifter för användaromfång eller programomfång, inte dina autentiseringsuppgifter för Azure-inloggning.
Om din fjärranslutna URL för Git 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 installför Node.js och förpip installPython.Bläddra till appen i Azure Portal för att verifiera att innehållet har distribuerats.
Ändra distributionsgren
När du push-skickar App Service till App Service distribuerar filerna i master -grenen som standard. Eftersom många Git-lagringsplatsen flyttas från till måste du se till att du push-flyttar till rätt gren i App Service-lagringsplatsen på master main något av två sätt:
Distribuera till
masterexplicit med ett kommando som:git push azure main:masterÄndra distributionsgrenen genom att ange
DEPLOYMENT_BRANCHappinställningen och sedan skicka genomföranden till den anpassade grenen. Så här gör du det med Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
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 | Lösning |
|---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Appen är inte igång. | Starta appen i Azure Portal. Git-distributionen är inte tillgänglig när webbappen stoppas. |
Couldn't resolve host 'hostname' |
Adressinformationen för "azure"-fjärrdatorn är felaktig. | Använd kommandot git remote -v för att visa en lista över alla fjärrdatorer, tillsammans med den associerade URL:en. Kontrollera att URL:en för "azure"-fjärrdatorn är korrekt. Om det behövs tar du bort och återskapar den här fjärrdatorn 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 värdet i push.default .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 har push-distribuerat en lokal gren som inte matchar appdistributionsgrenen på "azure". | Kontrollera att current branch ä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 skicka till en annan gren än main på fjärrdatorn "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 medpackage.jsfil som anger ytterligare nödvändiga moduler. | Granska npm ERR! felmeddelandena före det här felet för mer kontext om felet. Följande är kända orsaker till det här felet och motsvarande npm ERR! meddelanden:Felaktigt package.jspå filen: npm ERR! Couldn't read dependencies.Inbyggd modul 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\ |
