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.

  • Installeer Git.

  • 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, index.html of iisstart.htm
WebJobs <>job_name/uitvoeren.<extensie> onder App_Data/taken/doorlopend voor continue webtaken of App_Data/jobs/geactiveerd voor geactiveerde webtaken. Zie Kudu WebJobs documentation (Documentatie over Kudu WebJobs) voor meer informatie.
Functions 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

  1. 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.

  2. Push naar de externe Azure-app ( git push azure master zie Implementatiebranch wijzigen).

  3. 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.

  4. Controleer de uitvoer. Mogelijk ziet u runtimespecifieke automatisering, zoals MSBuild voor ASP.NET, npm install voor Node.js en pip install voor Python.

  5. 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 mainkomenmaster, 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 Configuratie te selecteren onder Instellingen en een nieuwe toepassingsinstelling toe te voegen met een naam DEPLOYMENT_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 pushof 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\

Meer resources