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. Voer de volgende opdracht uit in het lokale terminalvenster om een voorbeeldopslagplaats te downloaden:

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

Uw opslagplaats voorbereiden

Als u automatische builds van Azure App Service build-server wilt maken, moet u ervoor zorgen dat de hoofdmap van uw opslag plaats 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.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 in Visual Studio ontwikkelt, laat u Visual Studio een opslagplaats voor u maken. Het project kan direct worden geïmplementeerd met behulp van 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-opslagplaats 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>
    
  2. Push naar de externe Azure-verbinding met git push azure master .

  3. Voer in Aanmeldingsgegevensbeheer Git-account 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, voor Node.js npm install en pip install voor Python.

  5. Blader naar uw app in Azure Portal om te controleren of de inhoud is geïmplementeerd.

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 u DEPLOYMENT_BRANCH de toepassingsinstelling.
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:

Misvormde 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