Lokale Git-implementatie in Azure App Service
Deze handleiding laat zien hoe u uw app implementeert in Azure-app Service vanuit een Git-opslagplaats op uw lokale computer.
Notitie
Wanneer SCM-basisverificatie is uitgeschakeld, werkt de lokale Git-implementatie niet en kunt u geen lokale Git-implementatie configureren in het Implementatiecentrum van de app.
Vereisten
Volg de stappen in deze handleiding:
-
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Een lokale Git-opslagplaats met code die u wilt implementeren. Als u een voorbeeldopslagplaats wilt downloaden, voert u de volgende opdracht uit in het lokale terminalvenster:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Uw opslagplaats voorbereiden
Als u geautomatiseerde builds wilt ophalen van Azure-app Service-buildserver, moet u ervoor zorgen dat de hoofdmap van uw opslagplaats de juiste bestanden in uw project heeft.
Runtime | Bestanden in hoofdmap |
---|---|
ASP.NET (alleen Windows) | *.sln , *.csproj of default.aspx |
ASP.NET Core | *.sln of *.csproj |
PHP | index.php |
Ruby (alleen Linux) | Gemfile |
Node.js | server.js , app.js of package.json met een startscript |
Python | *.py , requirements.txt of runtime.txt |
HTML | default.htm , , default.html default.asp , , index.htm , of index.html iisstart.htm |
WebJobs | <job_name>/run.<extension> onder App_Data/jobs/continuous voor continue webtaken of App_Data/jobs/triggered voor geactiveerde webtaken. Zie Kudu WebJobs documentation (Documentatie over Kudu WebJobs) voor meer informatie. |
Functies | Zie Continue implementatie voor Azure Functions. |
Als u uw implementatie wilt aanpassen, neemt u een DEPLOYMENT-bestand op in de hoofdmap van de opslagplaats. Zie Customize deployments (Implementaties aanpassen) en Custom deployment script (Aangepast implementatiescript) voor meer informatie.
Notitie
Als u Visual Studio gebruikt, laat u Visual Studio een opslagplaats voor u maken. Uw project is onmiddellijk klaar voor implementatie via Git.
Een implementatiegebruiker configureren
Zie Implementatiereferenties configureren voor Azure-app Service. U kunt referenties voor gebruikersbereik of referenties voor toepassingsbereik gebruiken.
Een git-app maken
Zie In plaats daarvan een bestaande app configureren als u al een App Service-app hebt en lokale Git-implementatie wilt configureren.
Voer az webapp create
uit met de --deployment-local-git
optie. Voorbeeld:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
De uitvoer bevat een URL zoals: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Gebruik deze URL om uw app in de volgende stap te implementeren.
Een bestaande app configureren
Als u nog geen app hebt, raadpleegt u in plaats daarvan een Git-app maken.
Voer az webapp deployment source config-local-git
uit. Voorbeeld:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
De uitvoer bevat een URL zoals: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Gebruik deze URL om uw app in de volgende stap te implementeren.
Tip
Deze URL bevat de gebruikersnaam voor de implementatie van het gebruikersbereik. Als u wilt, kunt u in plaats daarvan de referenties voor het toepassingsbereik gebruiken.
De web-app implementeren
Wijzig in een lokaal terminalvenster de map in de hoofdmap van uw Git-opslagplaats en voeg een Externe Git toe met behulp van de URL die u hebt verkregen uit uw app. Als uw gekozen methode u geen URL geeft, gebruikt
https://<app-name>.scm.azurewebsites.net/<app-name>.git
u deze met uw app-naam in<app-name>
.git remote add azure <url>
Notitie
Als u een Git-app in PowerShell hebt gemaakt met behulp van New-AzWebApp, wordt de externe app al voor u gemaakt.
Push naar de externe Azure-app (
git push azure master
zie Implementatiebranch wijzigen).Voer in het venster Git Credential Manager uw referenties voor gebruikersbereik of toepassingsbereik in, niet uw Azure-aanmeldingsreferenties.
Als uw externe Git-URL al de gebruikersnaam en het wachtwoord bevat, wordt u niet gevraagd.
Controleer de uitvoer. Mogelijk ziet u runtimespecifieke automatisering, zoals MSBuild voor ASP.NET,
npm install
voor Node.js enpip install
voor Python.Blader naar uw app in Azure Portal om te controleren of de inhoud is geïmplementeerd.
Implementatiebranch wijzigen
Wanneer u doorvoeringen naar uw App Service-opslagplaats pusht, worden de bestanden in de master
vertakking standaard geïmplementeerd in App Service. Omdat veel Git-opslagplaatsen vandaan main
komenmaster
, moet u ervoor zorgen dat u op twee manieren naar de juiste vertakking in de App Service-opslagplaats pusht:
Implementeren naar
master
expliciet met een opdracht zoals:git push azure main:master
Wijzig de implementatiebranch door de
DEPLOYMENT_BRANCH
app-instelling in te stellen en push doorvoeren naar de aangepaste vertakking. Ga als volgende te werk met Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
U kunt de
DEPLOYMENT_BRANCH
app-instelling ook wijzigen in Azure Portal door omgevingsvariabelen te selecteren onder Instellingen en een nieuwe app-instelling toe te voegen met de naamDEPLOYMENT_BRANCH
en waarde vanmain
.
Problemen met implementatie oplossen
Mogelijk ziet u de volgende veelvoorkomende foutberichten wanneer u Git gebruikt om te publiceren naar een App Service-app in Azure:
Bericht | Oorzaak | Oplossing |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
De app is niet actief en werkt niet. | Start de app in Azure Portal. Git-implementatie is niet beschikbaar wanneer de web-app wordt gestopt. |
Couldn't resolve host 'hostname' |
De adresgegevens voor de azure afstandsbediening zijn onjuist. |
Gebruik de git remote -v opdracht om alle externen weer te geven, samen met de bijbehorende URL. Controleer of de URL voor de azure externe url juist is. Verwijder deze externe locatie en maak deze indien nodig opnieuw met behulp van de juiste URL. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
U hebt geen vertakking opgegeven tijdens git push of u hebt de push.default waarde niet ingesteld in .gitconfig . |
Voer opnieuw uit git push , waarbij u de hoofdvertakking opgeeft: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
U hebt een lokale vertakking gepusht die niet overeenkomt met de app-implementatiebranch op azure . |
Controleer of de huidige vertakking is master . Als u de standaardbranch wilt wijzigen, gebruikt DEPLOYMENT_BRANCH u de toepassingsinstelling (zie Implementatiebranch wijzigen). |
src refspec [branchname] does not match any. |
U hebt geprobeerd om naar een andere vertakking te pushen dan de belangrijkste op de azure afstandsbediening. |
Voer opnieuw uit git push , waarbij u de hoofdvertakking opgeeft: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Deze fout kan optreden als u probeert een grote Git-opslagplaats via HTTPS te pushen. | Wijzig de Git-configuratie op de lokale computer om het postBuffer grotere te maken. Voorbeeld: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
U hebt een Node.js-app geïmplementeerd met een package.json-bestand waarmee aanvullende vereiste modules worden opgegeven. | Bekijk de npm ERR! foutberichten vóór deze fout voor meer context bij de fout. Hier volgen de bekende oorzaken van deze fout en de bijbehorende npm ERR! berichten:Ongeldig package.json bestand: npm ERR! Couldn't read dependencies. Systeemeigen module heeft geen binaire distributie voor Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 of npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |