Lokale Git-implementatie in Azure App Service

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

Vereisten

Volg de stappen in deze handleiding:

  • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  • Installeer Git.

  • U hebt een lokale Git-opslagplaats met code die u wilt implementeren. Als u een voorbeeldopslagplaats wilt downloaden, moet u de volgende opdracht uitvoeren in het lokale terminalvenster:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    

Uw opslagplaats voorbereiden

Als u geautomatiseerde builds wilt 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>/run.<extension> onder App_Data/jobs/continuous voor continue WebJobs, of App_Data/jobs/triggered voor geactiveerde WebJobs. 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 een Visual Studio gebruikt, 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 het gebruikersbereik of referenties voor het toepassingsbereik gebruiken.

Een git-app maken

Zie Een bestaande app configureren als u App Service app hebt en er lokale Git-implementatie voor wilt configureren.

Voer az webapp create uit met de optie --deployment-local-git . 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 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 gemaakt, bekijkt 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 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 binnen 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-locatie toe met behulp van de URL die u hebt van uw app. Als de gekozen methode u geen URL geeft, gebruikt u https://<app-name>.scm.azurewebsites.net/<app-name>.git met de naam van uw app in <app-name> .

    git remote add azure <url>
    

    Notitie

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

  2. Push naar de externe Azure-locatie met git push azure master (zie Implementatie vertakking wijzigen).

  3. Voer in Aanmeldingsgegevensbeheer Git-venster uw referenties voor gebruikersbereik of toepassingsbereikin, niet uw Azure-aanmeldingsreferenties.

    Als uw externe Git-URL al de gebruikersnaam en het wachtwoord bevat, wordt u hier niet om gevraagd.

  4. Controleer de uitvoer. Mogelijk ziet u runtimespecifieke automatisering, zoals MSBuild voor ASP.NET, npm install 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.

Implementatie vertakking wijzigen

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

  • Implementeer master expliciet naar met een opdracht zoals:

    git push azure main:master
    
  • Wijzig de implementatie-vertakking door de DEPLOYMENT_BRANCH app-instelling in te stellen en vervolgens commits naar de aangepaste vertakking te pushen. Ga als volgende te werk om dit te doen met Azure CLI:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    

Problemen met de 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-locatie zijn onjuist. Gebruik de git remote -v opdracht om alle remotes weer te geven, samen met de bijbehorende URL. Controleer of de URL voor de externe azure-locatie juist is. Verwijder deze externe locatie zo 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 push of u hebt de waarde niet ingesteld in push.default .gitconfig . Voer git push opnieuw uit en geef de volgende main branch: git push azure main .
Error - Changes committed to remote repository but deployment to website failed. U hebt een lokale vertakking naar 'azure' ge pusht die niet overeen komt met de app-implementatietak. Controleer of current branch master is. Als u de standaard branch wilt wijzigen, gebruikt DEPLOYMENT_BRANCH u de toepassingsinstelling (zie Implementatietak wijzigen).
src refspec [branchname] does not match any. U hebt geprobeerd te pushen naar een andere vertakking dan main op de externe azure-locatie. Voer git push opnieuw uit en geef de volgende main branch: git push azure main .
RPC failed; result=22, HTTP code = 5xx. Deze fout kan zich voor doen als u probeert een grote Git-opslagplaats via HTTPS te pushen. Wijzig de git-configuratie op de lokale computer om de grotere postBuffer 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 geïmplementeerd met eenpackage.js in een bestand dat aanvullende vereiste modules specificeert. 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:

Een verkeerd package.jsin het 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 bronnen