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 , eller default.aspx . |
ASP.NET Kärna |
*.sln eller *.csproj . |
PHP |
index.php . |
Ruby (bara 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 . |
Webbjobb |
<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, 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
azure
med hjälp av din Git-klonings-URL. Om du inte känner till din Git-klonings-URL använder duhttps://<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 -v för att visa en lista över alla fjärranslutningar och deras associerade URL:er. Kontrollera att URL:en för fjärren azure är korrekt. Om det behövs tar du bort den felaktiga URL:en med hjälp av git remote remove och å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 push eller så angav push.default du inte värdet i .gitconfig . |
Kör git push igen och ange rätt gren med git 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 master eller ä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 main på fjärrlagringen azure . |
Kör git push igen och ange grenen main med git 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 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\ |