Lokale Git-Bereitstellung in Azure App Service
In dieser Anleitung erfahren Sie, wie Sie Ihre App aus einem Git-Repository auf dem lokalen Computer in Azure App Service bereitstellen.
Hinweis
Wenn die SCM-Standardauthentifizierung deaktiviert ist, funktioniert die lokale Git-Bereitstellung nicht, und Sie können die lokale Git-Bereitstellung nicht im Bereitstellungscenter der App konfigurieren.
Voraussetzungen
Ausführen der Schritte in dieser Anleitung:
-
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Über ein lokales Git-Repository mit dem Code verfügen, den Sie bereitstellen möchten. Führen Sie zum Herunterladen eines Beispielrepositorys den folgenden Befehl in Ihrem lokalen Terminalfenster aus:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Vorbereiten Ihres Repositorys
Um automatische Builds vom Azure App Service-Buildserver zu erhalten, muss das Stammverzeichnis Ihres Repositorys die richtigen Dateien enthalten.
Typ | Stammverzeichnisdateien |
---|---|
ASP.NET (nur Windows) | *.sln , *.csproj oder default.aspx |
ASP.NET Core | *.sln oder *.csproj |
PHP | index.php |
Ruby (nur Linux) | Gemfile |
Node.js | server.js , app.js oder package.json mit einem Startskript |
Python | *.py , requirements.txt oder runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html oder iisstart.htm |
WebJobs | <job_name>/run.<extension> unter App_Data/jobs/continuous für fortlaufende WebJobs oder App_Data/jobs/triggered für ausgelöste WebJobs Weitere Informationen finden Sie in der Kudu-Dokumentation zu WebJobs. |
Functions | Siehe Kontinuierliche Bereitstellung für Azure Functions. |
Zum Anpassen Ihrer Bereitstellung schließen Sie eine Datei vom Typ .deployment im Repositorystamm ein. Weitere Informationen finden Sie unter Anpassen von Bereitstellungen und Benutzerdefiniertes Bereitstellungsskript.
Hinweis
Wenn Sie Visual Studio verwenden, kann Visual Studio ein Repository für Sie erstellen. Ihr Projekt ist dann sofort für die Bereitstellung über Git bereit.
Konfigurieren eines Bereitstellungsbenutzers
Weitere Informationen finden Sie unter Konfigurieren von Anmeldeinformationen für die Azure App Service-Bereitstellung. Sie können Anmeldeinformationen für den Benutzerbereich oder Anmeldeinformationen für den Anwendungsbereich verwenden.
Erstellen einer Git-fähigen App
Wenn Sie bereits über eine App Service-App verfügen und dafür die lokale Git-Bereitstellung konfigurieren möchten, lesen Sie stattdessen unter Konfigurieren einer vorhandenen App nach.
Führen Sie az webapp create
mit der Option --deployment-local-git
aus. Beispiel:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Die Ausgabe enthält eine URL wie https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Verwenden Sie diese URL zum Bereitstellen Ihrer App im nächsten Schritt.
Konfigurieren einer vorhandenen App
Wenn Sie noch keine App haben, lesen Sie stattdessen Erstellen einer Git-fähigen App.
Führen Sie az webapp deployment source config-local-git
aus. Beispiel:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Die Ausgabe enthält eine URL wie https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Verwenden Sie diese URL zum Bereitstellen Ihrer App im nächsten Schritt.
Tipp
Diese URL enthält den Benutzernamen für die Bereitstellung im Benutzerbereich. Auf Wunsch können Sie stattdessen auch die Anmeldeinformationen für den Anwendungsbereich verwenden.
Bereitstellen der Web-App
Wechseln Sie in einem lokalen Terminalfenster zum Stammverzeichnis Ihres Git-Repositorys, und fügen Sie mithilfe der URL, die Sie aus Ihrer App abgerufen haben, ein Git-Remoterepository hinzu. Wenn Sie mit der ausgewählten Methode keine URL abrufen können, verwenden Sie
https://<app-name>.scm.azurewebsites.net/<app-name>.git
mit dem Namen Ihrer App in<app-name>
.git remote add azure <url>
Hinweis
Wenn Sie eine Git-fähige App in PowerShell mithilfe von „New-AzWebApp“ erstellt haben, wurde das Remoterepository bereits für Sie erstellt.
Führen Sie einen Pushvorgang an den Azure-Remotecomputer mit
git push azure master
durch. (Informationen hierzu finden Sie unter Ändern des Bereitstellungsbranchs.)Geben Sie im Fenster Git Credential Manager Ihre Anmeldeinformationen für den Benutzerbereich oder den Anwendungsbereich ein. Verwenden Sie hier nicht Ihre Anmeldeinformationen für die Azure-Anmeldung.
Wenn Ihre Git-Remote-URL bereits den Benutzernamen und das Kennwort enthält, werden Sie zu deren Eingabe aufgefordert.
Überprüfen Sie die Ausgabe. Sie enthält möglicherweise eine runtimespezifische Automatisierung wie MSBuild für ASP.NET,
npm install
für Node.js undpip install
für Python.Navigieren Sie im Azure-Portal zu Ihrer App, um zu überprüfen, ob der Inhalt bereitgestellt wurde.
Ändern des Bereitstellungsbranchs
Wenn Sie Commits per Push an Ihr App Service-Repository übertragen, stellt App Service die Dateien standardmäßig im master
-Branch bereit. Da viele Git-Repositorys von master
in main
verschoben werden, müssen Sie mit einer von zwei Methoden sicherstellen, dass der Pushvorgang in den richtigen Branch im App Service-Repository erfolgt:
Führen Sie die Bereitstellung in
master
explizit durch einen Befehl wie den folgenden durch:git push azure main:master
Ändern Sie den Bereitstellungsbranch, indem Sie die App-Einstellung
DEPLOYMENT_BRANCH
festlegen und dann Commits per Push an den benutzerdefinierten Branch übertragen. Vorgehensweise über die Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Sie können auch die App-Einstellung
DEPLOYMENT_BRANCH
im Azure-Portal ändern, indem Sie Umgebungsvariablen unter Einstellungen auswählen und eine neue Anwendungseinstellung mit dem NamenDEPLOYMENT_BRANCH
und dem Wertmain
hinzufügen.
Problembehandlung bei der Bereitstellung
Möglicherweise werden die folgenden häufigen Fehlermeldungen angezeigt, wenn Sie eine App Service-App mithilfe von Git in Azure veröffentlichen:
`Message` | Ursache | Lösung |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Die App wird nicht ordnungsgemäß ausgeführt. | Starten Sie die App im Azure-Portal. Die Git-Bereitstellung ist nicht verfügbar, wenn die Web-App beendet wurde. |
Couldn't resolve host 'hostname' |
Die Adressinformationen für das azure -Remoterepository sind falsch. |
Verwenden Sie den Befehl git remote -v , um alle Remotewebsites zusammen mit der jeweils zugehörigen URL aufzulisten. Überprüfen Sie, ob die URL für das azure -Remoterepository korrekt ist. Entfernen Sie diese Remote-Website bei Bedarf und erstellen Sie sie mit der korrekten URL neu. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Sie haben während git push keinen Branch angegeben, oder Sie haben den Wert push.default in .gitconfig nicht festgelegt. |
Führen Sie git push erneut aus, und geben Sie dabei den Hauptbranch an: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Sie haben einen lokalen Branch gepusht, der nicht mit dem App-Bereitstellungsbranch in azure übereinstimmt. |
Vergewissern Sie sich, dass Current Branch gleich master ist. Um den Standardbranch zu ändern, verwenden Sie die Anwendungseinstellung DEPLOYMENT_BRANCH . (Informationen hierzu finden Sie unter Ändern des Bereitstellungsbranchs.) |
src refspec [branchname] does not match any. |
Sie haben versucht, einen anderen Branch als den main-Branch in das azure -Remoterepository zu pushen. |
Führen Sie git push erneut aus, und geben Sie dabei den Hauptbranch an: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Dieser Fehler kann auftreten, wenn Sie versuchen, ein großes Git-Repository über HTTPS mithilfe von Push zu übertragen. | Ändern Sie die Git-Konfiguration auf dem lokalen Computer, um den postBuffer zu vergrößern. Beispiel: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Sie haben eine Node.js-App mit einer Datei von Typ package.json bereitgestellt, die zusätzliche erforderliche Module angibt. | Überprüfen Sie die Fehlermeldungen vom Typ npm ERR! vor diesem Fehler, um mehr Kontext zu erhalten. Es folgen die bekannten Ursachen für diesen Fehler und die entsprechenden Meldungen vom Typ npm ERR! :Falsch formatierte „package.json“-Datei: npm ERR! Couldn't read dependencies. Systemeigenes Modul verfügt über keine binäre Verteilung für Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 oder npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |
Weitere Ressourcen
- App Service-Buildserver (Kudu-Projektdokumentation)
- Continuous Deployment in Azure App Service
- Beispiel: Erstellen einer Web-App und Bereitstellen von Code über ein lokales Git-Repository (Azure CLI)
- Beispiel: Erstellen einer Web-App und Bereitstellen von Code über ein lokales Git-Repository (PowerShell)