Lokal Git-distribution till Azure App Service

Den här guiden visar hur du distribuerar din app för att Azure App Service från en Git-lagringsplats på din lokala dator.

Förutsättningar

Så här följer du stegen i den här guiden:

  • Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.

  • Installera Git.

  • 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 din lagringsplats

Om du vill hämta automatiserade versioner från Azure App Service build-server 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.jseller package.json med ett startskript
Python *.py, requirements.txteller runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.htmleller iisstart.htm
WebJobs <>job_name/kör.< -tillägg> under App_Data/jobb/kontinuerligt för kontinuerliga webbjobb eller App_Data/jobb/utlöses 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 du låta Visual Studio skapa en lagringsplats åt dig. Ditt projekt ä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ä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 läsa Konfigurera en befintlig app i stället.

Kör az webapp create med --deployment-local-git alternativet . Ett 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 ännu kan du läsa Skapa en Git-aktiverad app i stället.

Kör az webapp deployment source config-local-git. Ett 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 programomfattningen i stället.

Distribuera webbappen

  1. I ett lokalt terminalfönster ändrar du katalogen till roten på git-lagringsplatsen och lägger till en Git-fjärrplats 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>
    

    Anteckning

    Om du har skapat en Git-aktiverad app i PowerShell med Hjälp av New-AzWebApp skapas redan fjärrappen åt dig.

  2. Push-överför till Azure-fjärrplatsen med git push azure master (se Ändra distributionsgren).

  3. I fönstret Git Credential Manager anger du dina autentiseringsuppgifter för användaromfång eller programomfång, 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.

  4. Granska utdata. Du kan se körningsspecifik automatisering, till exempel MSBuild för ASP.NET, npm install för Node.js och pip install för Python.

  5. Bläddra till din app i Azure Portal för att kontrollera att innehållet har distribuerats.

Ändra distributionsgren

När du skickar 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 mainmå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 Konfiguration under Inställningar och lägga till en ny programinställning med namnet DEPLOYMENT_BRANCH och värdet 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 fjärrplatsen "azure" är felaktig. git remote -v Använd kommandot för att visa alla fjärranslutningar, tillsammans med den associerade URL:en. Kontrollera att URL:en för azure-fjärrplatsen är korrekt. Om det behövs tar du bort och återskapar den här fjärrplatsen med rätt URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Du angav inte en gren under git pusheller 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å azure-fjärrplatsen. 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 push-överföra 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 moduler som krävs. 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\

Ytterligare resurser