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.
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
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>.gitmet 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.
Push naar de externe Azure-locatie met
git push azure master(zie Implementatie vertakking wijzigen).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.
Controleer de uitvoer. Mogelijk ziet u runtimespecifieke automatisering, zoals MSBuild voor ASP.NET,
npm installNode.js enpip installvoor Python.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
masterexpliciet naar met een opdracht zoals:git push azure main:masterWijzig de implementatie-vertakking door de
DEPLOYMENT_BRANCHapp-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\ |
