Lokale Git-implementatie in Azure App Service

In deze handleiding ziet u hoe u uw app implementeert in Azure App Service vanuit een Git-opslagplaats op uw lokale computer.

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.

  • Zorg voor 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 van Azure App Service buildserver wilt ophalen, moet u ervoor zorgen dat de hoofdmap van de opslagplaats de juiste bestanden in uw project bevat.

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.txtof runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.html of iisstart.htm
WebJobs <>job_name uitvoeren.< onder>App_Data/taken/doorlopend voor continue webtaken of App_Data/taken/geactiveerd 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 gereed 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

Als u al een App Service-app hebt en de lokale Git-implementatie hiervoor wilt configureren, raadpleegt u In plaats daarvan een bestaande app configureren.

Voer uit az webapp create met de --deployment-local-git optie . Bijvoorbeeld:

az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git

De uitvoer bevat een URL als: 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 gemaakt, raadpleegt u In plaats daarvan een git-app maken.

Voer az webapp deployment source config-local-git uit. Bijvoorbeeld:

az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>

De uitvoer bevat een URL als: 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 van uw app hebt verkregen. Als de gekozen methode u geen URL geeft, gebruikt https://<app-name>.scm.azurewebsites.net/<app-name>.git u met de naam van uw app in <app-name>.

    git remote add azure <url>
    

    Notitie

    Als u een git-app hebt gemaakt in PowerShell met behulp van New-AzWebApp, is de externe app al voor u gemaakt.

  2. Push naar de externe Azure met 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 de Azure Portal om te controleren of de inhoud is geïmplementeerd.

Implementatiebranch wijzigen

Wanneer u doorvoeringen naar uw App Service-opslagplaats pusht, implementeert App Service de bestanden standaard in de master vertakking. Omdat veel Git-opslagplaatsen worden verplaatst van master naar main, moet u ervoor zorgen dat u op twee manieren naar de juiste vertakking in de App Service-opslagplaats pusht:

  • Implementeer expliciet naar master met een opdracht zoals:

    git push azure main:master
    
  • Wijzig de implementatiebranch door de app-instelling DEPLOYMENT_BRANCH in te stellen en push doorvoeringen vervolgens 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 de naam DEPLOYMENT_BRANCH en waarde van main.

Notitie

U kunt de DEPLOYMENT_BRANCH ook wijzigen met behulp van de Azure Portal-interface door Implementatiecentrum te selecteren onder Implementatie en de Branchte wijzigen.

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. Start de app in de Azure Portal. Git-implementatie is niet beschikbaar wanneer de web-app wordt gestopt.
Couldn't resolve host 'hostname' De adresgegevens voor de externe azure 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 externe azure juist is. Verwijder deze externe locatie indien nodig en maak deze 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 en geef de hoofdvertakking op: 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 u DEPLOYMENT_BRANCH de toepassingsinstelling (zie Implementatiebranch wijzigen).
src refspec [branchname] does not match any. U hebt geprobeerd om te pushen naar een andere vertakking dan main op de afstandsbediening 'azure'. Voer opnieuw uit git push en geef de hoofdvertakking op: 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 de postBuffer grotere te maken. Bijvoorbeeld: 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 waarin aanvullende vereiste modules worden opgegeven. Bekijk de npm ERR! foutberichten vóór deze fout voor meer context over 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\

Aanvullende resources