Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett av de enklaste sätten att distribuera kod är från din lokala dator. Den här artikeln visar hur du distribuerar din app till Azure App Service- från en Git-lagringsplats på din lokala dator.
Kommentar
Lokal Git-distribution kräver grundläggande autentisering i Source Control Manager (SCM), vilket är mindre säkert än andra distributionsmetoder. Om grundläggande autentisering är inaktiverad kan du inte konfigurera lokal Git-distribution i appens distributionscenter.
Förutsättningar
För att utföra stegen i den här artikeln behöver du:
- Ett Azure-konto och en prenumeration med behörighet att skapa App Services-resurser. Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar. 
- Git installerat och en lokal Git-lagringsplats som innehåller appkod som ska distribueras. - Du kan klona ett exempel Node.js applagringsplats genom att köra följande kommando i ditt lokala Bash-terminalfönster: - git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
- Om du vill använda Azure CLI-kommandona är den senaste versionen av Azure CLI installerad på den lokala datorn. Logga in på Azure med az login. 
- Om du vill köra Azure PowerShell-kommandona installeras den senaste versionen av Azure PowerShell. Logga in på Azure med Connect-AzAccount. 
Förbereda lagringsplatsen
Om du vill hämta automatiserade versioner från App Service-byggservern kontrollerar du att lagringsplatsens rot har rätt filer i projektet.
| Körningstid | Rotkatalogfiler | 
|---|---|
| ASP.NET (endast Windows) | *.sln,*.csproj, ellerdefault.aspx. | 
| ASP.NET Kärna | *.slneller*.csproj. | 
| PHP | index.php. | 
| Ruby (bara Linux) | Gemfile. | 
| Node.js | server.js,app.jsellerpackage.jsonmed ett startskript. | 
| python | *.py,requirements.txt, ellerruntime.txt. | 
| HTML | default.htm,default.html,default.asp,index.htm,index.htmlelleriisstart.htm. | 
| Webbjobb | <job_name>/run.<extension>underApp_Data/jobs/continuousför kontinuerliga webbjobb ellerApp_Data/jobs/triggeredfö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, inkludera en .deployment-fil i rotkatalogen på lagringsplatsen. Mer information finns i Anpassa distributioner och Anpassat distributionsskript.
Tips
Visual Studio kan skapa en lagringsplats åt dig. Med den här metoden är projektet omedelbart redo för distribution via Git.
Autentiseringsuppgifter för distributionsanvändare
Du behöver autentiseringsuppgifter för distributionsanvändare för att autentisera och distribuera din app. Dessa skiljer sig från dina autentiseringsuppgifter för Azure-prenumerationen och du kan använda autentiseringsuppgifter för användaromfattning eller programomfattning .
En användare som arbetar med användarbaserad distribution för lokal Git-distribution behöver bara ett användarnamn, inte ett lösenord. Du kan ange användarnamnet för användaromfattningen genom att köra Azure CLI-kommandot az webapp deployment user set --user-name <username>eller under Användaromfång på fliken Lokala Git/FTPS-autentiseringsuppgifter i distributionscentret för en app.
När du har skapat distributionsanvändaren för användaromfånget kan du använda den för alla App Service-appar som du har åtkomst till. Mer information finns i Konfigurera autentiseringsuppgifter för användaromfattning.
En programomfattande distributionsanvändare är appspecifik och skapas automatiskt när du skapar en app. Du kan hämta autentiseringsuppgifterna för programomfattningen som ska användas för distribution från fliken Lokala Git/FTPS-autentiseringsuppgifter i appens distributionscenter.
Skapa och konfigurera en Git-aktiverad app
Du kan skapa och konfigurera en Git-aktiverad app eller konfigurera lokal Git-distribution för en befintlig app med hjälp av Azure CLI, Azure PowerShell eller Azure-portalen.
- Om du vill skapa en ny webbapp som konfigurerats för lokal Git-distribution kör du az webapp create med alternativet - --deployment-local-git. Till exempel:- az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git
- Om du vill konfigurera lokal Git-distribution för en redan befintlig app kör du az webapp deployment source config-local-git. Till exempel: - az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
Båda kommandona genererar utdata som innehåller en URL, till exempel:
Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'
Föregående URL innehåller användarområdets distributions användarnamncontoso-user. Om du inte har ett användarnamn för användaromfångsdistribution använder URL:en användarnamnet för programomfattningen, till exempel https://$myApp@myApp.scm.azurewebsites.net/myApp.git.
Använd den här Git-klon-URL:en för att distribuera din app i nästa steg.
Distribuera webbappen
Om du vill distribuera appen till Azure skapar du en fjärrgren om det behövs, ser till att du distribuerar till rätt gren och sedan push-överför koden till fjärrplatsen.
Skapa fjärrgrenen
Om du använde Azure PowerShell New-AzWebApp för att skapa appen från exempelkoden skapades fjärren azure redan. I annat fall följer du de här anvisningarna för att skapa fjärranslutningen:
- I en lokal terminal ändrar du katalogen till roten för din klonade Git-lagringsplats. 
- Lägg till en Git-fjärranslutning med namnet - azuremed hjälp av din Git-klonings-URL. Om du inte känner till din Git-klonings-URL använder du- https://<app-name>.scm.azurewebsites.net/<app-name>.git.- git remote add azure <git-clone-url>
Tryck till rätt gren
App Service-lagringsplatser distribuerar filer till grenen master som standard. Om dina befintliga lokala filer finns i grenen master av lagringsplatsen kan du nu distribuera appen genom att köra git push azure master.
Men många Git-lagringsplatser, inklusive exempelkodlagringsplatsen för den här artikeln, använder main eller ett annat standardgrennamn. Om du vill distribuera till rätt gren måste du antingen uttryckligen distribuera till fjärrgrenen master eller ändra distributionsgrenen till main eller något annat grennamn och distribuera till den grenen.
Distribuera direkt till master från din main-gren med hjälp av följande push-kommando:
git push azure main:master
Eller ändra appens DEPLOYMENT_BRANCH appinställning till main och push-överför sedan direkt till main, enligt följande:
- Azure CLI: - az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
- Azure Portal: - På portalsidan för din app väljer du Miljövariabler under Inställningar i den vänstra navigeringsmenyn.
- Välj Lägg till, lägg till en programinställning med namnet DEPLOYMENT_BRANCH och värdet main och välj Använd.
- I terminalfönstret kör du git push azure main.
 
Slutför och verifiera distributionen
Om dialogrutan Git Credential Manager visas när du har push-överfört koden anger du användarnamnet och lösenordet för användaromfattningsdistributionen eller användarnamnet och lösenordet för programomfattningen. Om git-fjärr-URL:en redan innehåller inloggningsinformationen uppmanas du inte att ange den.
Granska utdata från push kommandot. Du kan se körspecifik automatisering, till exempel npm install för Node.js, MSBuild för ASP.NET eller pip install för Python. Om du får felmeddelanden, se Felsök distribution.
Gå till Azure-portalen och kontrollera att appen har distribuerats genom att välja länken Standarddomän på appens översiktssida . Appen bör öppnas på en webbläsarflik och visa Hello World!.
Felsöka driftsättning
Följande vanliga fel kan inträffa när du använder lokal Git för att publicera till en App Service-app i Azure:
| Meddelande | Orsak | Upplösning / Beslut | 
|---|---|---|
| Unable to access '[siteURL]': Failed to connect to [scmAddress] | Appen körs inte. | 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. | Använd kommandot git remote -vför att visa en lista över alla fjärranslutningar och deras associerade URL:er. Kontrollera att URL:en för fjärrenazureär korrekt. Om det behövs tar du bort den felaktiga URL:en med hjälp avgit remote removeoch återskapar fjärrlänken 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 när du körde git pusheller så angavpush.defaultdu inte värdet i.gitconfig. | Kör git pushigen och ange rätt gren medgit push azure <branch>. | 
| 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 mastereller ändra distributionsgrenen genom att följa anvisningarna i Push till rätt gren. | 
| src refspec [branchname] does not match any. | Du försökte pusha till en annan gren än mainpå fjärrlagringenazure. | Kör git pushigen och ange grenenmainmedgit push azure main. | 
| RPC failed; result=22, HTTP code = 5xx. | Du försökte push-överföra en stor Git-lagringsplats via HTTPS. | Ändra git-konfigurationen på den lokala datorn för att ange ett högre värde för postBuffer. 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 vilka moduler som krävs. | Granska npm ERR!-felmeddelandena som visas före de här felen för mer kontext. Följande kända orsaker till det här felet genererar motsvarandenpm 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 1eller npm ERR! [modulename@version] preinstall: \make \|\| gmake\ | 
