Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een van de eenvoudigste manieren om code te implementeren is vanaf uw lokale computer. In dit artikel leest u hoe u uw app implementeert in Azure App Service vanuit een Git-opslagplaats op uw lokale computer.
Notitie
Voor lokale Git-implementatie is SCM-basisverificatie (Source Control Manager) vereist. Dit is minder veilig dan andere implementatiemethoden. Als basisverificatie is uitgeschakeld, kunt u geen lokale Git-implementatie configureren in het implementatiecentrum van de app.
Vereiste voorwaarden
U hebt het volgende nodig om de stappen in dit artikel te voltooien:
Een Azure-account en -abonnement met toestemming om App Services-resources te maken. Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
Git is geïnstalleerd en een lokale Git-opslagplaats met app-code die moet worden geïmplementeerd.
U kunt een voorbeeld van een Node.js app-opslagplaats klonen door de volgende opdracht uit te voeren in het lokale Bash-terminalvenster:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Als u de Azure CLI-opdrachten wilt gebruiken, is de nieuwste versie van de Azure CLI geïnstalleerd op uw lokale computer. Meld u aan bij Azure met az login.
Als u de Azure PowerShell-opdrachten wilt uitvoeren, is de nieuwste versie van Azure PowerShell geïnstalleerd. Meld u aan bij Azure met behulp van Connect-AzAccount.
Uw opslagplaats voorbereiden
"Om geautomatiseerde builds van de App Service-buildserver te verkrijgen, moet je ervoor zorgen dat de hoofdmap van je repository de juiste bestanden in je project bevat."
Looptijd | Bestanden in de rootdirectory |
---|---|
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 webtaken of App_Data/jobs/triggered voor geactiveerde webtaken. Zie Kudu WebJobs documentation (Documentatie over Kudu WebJobs) voor meer informatie. |
Functies | Zie Continue implementatie voor Azure Functions. |
Om uw implementatie aan te passen, voegt u een .deployment
bestand toe in de hoofdmap van de repository. Voor meer informatie, zie Customize deployments (Implementaties aanpassen) en Custom deployment script (Aangepast implementatiescript).
Aanbeveling
Visual Studio kan een repository voor u maken. Met deze methode is uw project direct klaar voor implementatie via Git.
Inloggegevens voor uitrol
U hebt gebruikersreferenties voor implementatie nodig om uw app te verifiëren en te implementeren. Deze verschillen van de referenties van uw Azure-abonnement en u kunt referenties voor gebruikersbereik of toepassingsbereik gebruiken.
Een gebruiker die een implementatie met gebruikersbereik uitvoert voor lokale Git-implementatie heeft alleen een gebruikersnaam nodig, geen wachtwoord. U kunt de gebruikersnaam van het gebruikersbereik instellen door de Azure CLI-opdrachtaz webapp deployment user set --user-name <username>
uit te voeren of onder Gebruikersbereik op het tabblad Lokale Git/FTPS-referenties van het implementatiecentrum van een app.
Zodra u de implementatiegebruiker voor gebruikersbereik hebt gemaakt, kunt u deze gebruiken voor alle App Service-apps waarvoor u toegang hebt. Zie Referenties voor gebruikersbereik configureren voor meer informatie.
Een toepassingsbereikimplementatiegebruiker is app-specifiek en wordt automatisch gemaakt wanneer u een app maakt. U kunt de gebruikersreferenties voor toepassingsbereik ophalen die moeten worden gebruikt voor implementatie via het tabblad Lokale Git/FTPS-referenties in het implementatiecentrum van de app.
Een Git-enabled applicatie maken en configureren
U kunt een Git-app maken en configureren of lokale Git-implementatie configureren voor een bestaande app met behulp van Azure CLI, Azure PowerShell of Azure Portal.
Als u een nieuwe web-app wilt maken die is geconfigureerd voor lokale Git-implementatie, voert u az webapp create uit met de
--deployment-local-git
optie. Voorbeeld:az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git
Als u lokale Git-implementatie wilt configureren voor een al bestaande app, voert u az webapp deployment source config-local-git uit. Voorbeeld:
az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
Met beide opdrachten wordt uitvoer geproduceerd die een URL bevat, zoals:
Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'
De voorgaande URL bevat de gebruikersnaam van de gebruikersspecifieke implementatiecontoso-user
. Als u geen gebruikersnaam voor de implementatie van het gebruikersbereik hebt, gebruikt de URL bijvoorbeeld https://$myApp@myApp.scm.azurewebsites.net/myApp.git
de gebruikersnaam van het toepassingsbereik.
Gebruik deze Git-kloon-URL om uw app in de volgende stap te implementeren.
De web-app implementeren
Als je de app in Azure wilt implementeren, maak indien nodig een externe vertakking aan, zorg ervoor dat je naar de juiste vertakking implementeert en vervolgens pusht je je code naar de externe vertakking.
De externe branch maken
Als u Azure PowerShell New-AzWebApp
hebt gebruikt om de app te maken op basis van de voorbeeldcode, is de azure
remote al aangemaakt. Volg anders deze instructies om de remote repository te maken:
Navigeer in een lokale terminal naar de hoofddirectory van uw gekloonde Git-opslagplaats.
Voeg een externe Git-naam
azure
toe met behulp van uw Git-kloon-URL. Als u uw Git-kloon-URL niet weet, gebruikt uhttps://<app-name>.scm.azurewebsites.net/<app-name>.git
.git remote add azure <git-clone-url>
Push naar de juiste branch
App Service-opslagplaatsen implementeren standaard bestanden in de master
vertakking. Als uw bestaande lokale bestanden zich in de master
vertakking van uw opslagplaats bevinden, kunt u uw app nu implementeren door deze uit te voeren git push azure master
.
Veel Git-opslagplaatsen, met inbegrip van de voorbeeldcodeopslagplaats voor dit artikel, gebruiken main
of een andere standaard branchnaam. Als u naar de juiste tak wilt implementeren, moet u expliciet implementeren naar de externe master
tak of de implementatietak wijzigen in main
of een andere taknaam en in die tak implementeren.
Implementeer expliciet naar master
vanuit uw main
-branch met behulp van het volgende push
commando:
git push azure main:master
U kunt de app-instelling main
van DEPLOYMENT_BRANCH
uw app ook als volgt wijzigen en vervolgens rechtstreeks naar main
pushen:
Azure CLI:
az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Azure Portal:
- Selecteer op de portalpagina voor uw app omgevingsvariabelen onder Instellingen in het linkernavigatiemenu.
- Selecteer Toevoegen, voeg een toepassingsinstelling toe met de naam DEPLOYMENT_BRANCH en waarde , en selecteer Toepassen.
- Voer in het terminalvenster de opdracht uit
git push azure main
.
De implementatie voltooien en verifiëren
Als het dialoogvenster Git Credential Manager wordt weergegeven nadat u uw code hebt gepusht, voert u uw gebruikersnaam en wachtwoord voor het gebruikersbereik of toepassingsbereik in. Als uw externe Git-URL al de aanmeldingsgegevens bevat, wordt u niet gevraagd deze in te voeren.
Controleer de uitvoer van de push
opdracht. Mogelijk ziet u runtimespecifieke automatisering, zoals npm install
voor Node.js, MSBuild
voor ASP.NET of pip install
voor Python. Als u fouten krijgt, raadpleegt u Implementatie oplossen.
Ga naar Azure Portal en controleer of de app is geïmplementeerd door de koppeling Standaarddomein te selecteren op de overzichtspagina van de app. De app moet worden geopend op een browsertabblad en Hello World! weergeven.
Problemen met implementatie oplossen
De volgende veelvoorkomende fouten kunnen optreden wanneer u lokale Git gebruikt om te publiceren naar een App Service-app in Azure:
Bericht | Oorzaak | Resolutie |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
De app draait niet. | 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 azure afstandsbediening zijn onjuist. |
Gebruik de git remote -v opdracht om alle externen en de bijbehorende URL's weer te geven. Controleer of de URL voor de azure remote correct is. Verwijder indien nodig de onjuiste URL met behulp van git remote remove en maak vervolgens de externe verbinding opnieuw met 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 het uitvoeren git push of u hebt de push.default waarde niet ingesteld in .gitconfig . |
Voer opnieuw uit git push en geef de juiste vertakking op met git push azure <branch> . |
Error - Changes committed to remote repository but deployment to website failed. |
U hebt een lokale vertakking gepusht die niet overeenkomt met de vertakking voor app-implementatie op azure . |
Controleer of de huidige branch is master , of wijzig de deploymentbranch door de instructies in Push naar de juiste branch te volgen. |
src refspec [branchname] does not match any. |
U hebt geprobeerd naar een andere branch te pushen dan main op de azure remote. |
Voer opnieuw uit git push en geef de main vertakking op met git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
U hebt geprobeerd een grote Git-opslagplaats via HTTPS te pushen. | Wijzig de Git-configuratie op de lokale computer om een hogere waarde in te stellen voor postBuffer . 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 dat de vereiste modules aangeeft. | Bekijk de npm ERR! foutberichten die vóór deze fout worden weergegeven voor meer context. De volgende bekende oorzaken van deze fout produceren de bijbehorende npm ERR! berichten:Onjuist 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\ |