Freigeben über


Lokal bereitstellen auf Azure App Service mithilfe von Git

In diesem Artikel erfahren Sie, wie Sie Ihre App über ein Git-Repository auf Ihrem lokalen Computer in Azure App Service bereitstellen.

Hinweis

Diese Bereitstellungsmethode erfordert die SCM-Standardauthentifizierung (Source Control Manager), die weniger sicher ist als andere Bereitstellungsmethoden. Wenn die lokale Git-Bereitstellung nicht funktioniert, können Sie die lokale Git-Bereitstellung im App-Bereitstellungscenter nicht konfigurieren.

Voraussetzungen

So führen Sie die in diesem Artikel beschriebenen Schritte aus:

  • Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.

  • Git installieren.

  • Verwenden Sie ein lokales Git-Repository mit Code für die Bereitstellung. 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 automatisierte Builds vom App Service-Buildserver zu erhalten, stellen Sie sicher, dass Ihr Repositorystamm die richtigen Dateien in Ihrem Projekt enthält.

Typ Stammverzeichnisdateien
ASP.NET (nur Windows) *.sln, *.csproj oder default.aspx.
ASP.NET Kern *.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.htmloder 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.
Funktionen Siehe Kontinuierliche Bereitstellung für Azure Functions.

Um Ihre Bereitstellung anzupassen, fügen Sie eine .deployment Datei im Stammverzeichnis des Repositorys ein. Weitere Informationen finden Sie unter Anpassen von Bereitstellungen und Benutzerdefiniertes Bereitstellungsskript.

Tipp

Visual Studio kann ein Repository für Sie erstellen. Mit dieser Methode ist Ihr Projekt sofort für die Bereitstellung über Git bereit.

Konfigurieren eines Bereitstellungsbenutzers

Erfahren Sie, wie Sie Bereitstellungsanmeldeinformationen für Azure App Service konfigurieren. Sie können entweder Anmeldeinformationen des Benutzerbereichs oder Anmeldeinformationen für den Anwendungsbereich verwenden.

Erstellen einer Git-fähigen App

Wenn Sie bereits über eine App Service-App verfügen und eine lokale Git-Bereitstellung für die App konfigurieren möchten, lesen Sie stattdessen "Konfigurieren einer vorhandenen App" .

Führen Sie az webapp create mit der --deployment-local-git Option 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 das Beispiel 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, beginnen Sie mit der Erstellung einer git-aktivierten 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 das Beispiel 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. Sie können stattdessen Anmeldeinformationen für den Anwendungsbereich verwenden .

Bereitstellen der Web-App

  1. Ändern Sie in einem lokalen Terminalfenster das Verzeichnis in das Stammverzeichnis Ihres Git-Repositorys. Fügen Sie eine Git-Remote mithilfe der URL aus Ihrer App hinzu. Wenn die verwendete Methode keine URL bereitstellt, verwenden Sie https://<app-name>.scm.azurewebsites.net/<app-name>.git mit Ihrem App-Namen.

    git remote add azure <url>
    

    Hinweis

    Wenn Sie eine Git-fähige App in PowerShell mithilfe von New-AzWebApp erstellt haben, wird die Remote bereits erstellt.

  2. Pushen Sie an den Azure-Remotebranch, indem Sie git push azure master ausführen.

    Weitere Informationen finden Sie unter "Ändern des Bereitstellungszweigs".

  3. Geben Sie im Dialogfeld "Git Credential Manager " Ihre Anmeldeinformationen für den Benutzerbereich oder den Anwendungsbereich und nicht Ihre Azure-Anmeldeinformationen ein.

    Wenn Ihre Git-Remote-URL bereits Ihren Benutzernamen und Ihr Kennwort enthält, werden Sie nicht aufgefordert, sie einzugeben.

  4. Überprüfen Sie die Ausgabe. Möglicherweise werden laufzeitspezifische Automatisierungen wie MSBuild für ASP.NET, npm install for Node.jsoder pip install for Python angezeigt.

  5. Wechseln Sie im Azure-Portal zu Ihrer App, um zu überprüfen, ob der Inhalt bereitgestellt wird.

Ändern des Bereitstellungszweigs

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:

  • Zum expliziten Bereitstellen auf master führen Sie einen Befehl wie in diesem Beispiel aus:

    git push azure main:master
    
  • Ändern Sie den Bereitstellungsbranch, indem Sie die App-Einstellung DEPLOYMENT_BRANCH festlegen und dann Commits an den benutzerdefinierten Branch pushen.

    Gehen Sie wie folgt vor, indem Sie die Azure CLI verwenden:

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

    Sie können die DEPLOYMENT_BRANCH App-Einstellung auch im Azure-Portal ändern:

    1. Wählen Sie unter "Einstellungen" die Option "Umgebungsvariablen" aus.
    2. Fügen Sie eine App-Einstellung hinzu, die den Namen DEPLOYMENT_BRANCH und den Wert mainenthält.

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 läuft nicht. 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 git remote -v Befehl, um alle Remotebenutzer und die zugehörigen URLs auflisten. Überprüfen Sie, ob die URL für das azure-Remoterepository korrekt ist. Entfernen Sie bei Bedarf diese Remotewebsites, 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 keinen Zweig angegeben, als Sie git push ausgeführt haben oder Sie haben den Wert push.default in .gitconfig nicht festgelegt. Führen Sie git push erneut aus und geben Sie den Hauptzweig 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. Überprüfen Sie, ob der aktuelle Branch master ist. Verwenden Sie die DEPLOYMENT_BRANCH Anwendungseinstellung, um die Standardverzweigung zu ändern. Weitere Informationen finden Sie unter Ändern des Bereitstellungsbranches.
src refspec [branchname] does not match any. Sie haben versucht, an einen anderen Branch als main im Remoterepository azure zu pushen. Führen Sie git push erneut aus und geben Sie den Hauptzweig 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 zu übertragen. Ändern Sie die Git-Konfigurationseinstellung auf dem lokalen Computer, um einen höheren Wert für postBuffer festzulegen. 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. Die folgenden Ursachen sind bekannte Ursachen für diesen Fehler und die entsprechenden npm ERR! Meldungen:

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\