Freigeben über


Bereitstellen in Azure App Service mithilfe eines lokalen Git-Repositorys

Eine der einfachsten Methoden zum Bereitstellen von Code stammt von Ihrem lokalen Computer. In diesem Artikel erfahren Sie, wie Sie Ihre App über ein Git-Repository auf Ihrem lokalen Computer in Azure App Service bereitstellen.

Hinweis

Für die lokale Git-Bereitstellung ist die SCM-Standardauthentifizierung (Source Control Manager) erforderlich, was weniger sicher ist als andere Bereitstellungsmethoden. Wenn die Standardauthentifizierung deaktiviert ist, können Sie die lokale Git-Bereitstellung im Bereitstellungscenter der App nicht konfigurieren.

Voraussetzungen

Zur Durchführung der in diesem Artikel aufgeführten Schritte ist Folgendes erforderlich:

  • Ein Azure-Konto und ein Abonnement mit der Berechtigung zum Erstellen von App-Dienste-Ressourcen. Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.

  • Git installiert und ein lokales Git-Repository, das App-Code enthält, der bereitgestellt werden soll.

    Sie können ein Beispiel Node.js App-Repository klonen, indem Sie den folgenden Befehl in Ihrem lokalen Bash-Terminalfenster ausführen:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Wenn Sie die Azure CLI-Befehle verwenden möchten, wird die neueste Version der Azure CLI auf Ihrem lokalen Computer installiert. Melden Sie sich mit az login bei Azure an.

  • Wenn Sie die Azure PowerShell-Befehle ausführen möchten, ist die neueste Version von Azure PowerShell installiert. Melden Sie sich mit Connect-AzAccount bei Azure an.

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 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.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.

Benutzeranmeldeinformationen für die Bereitstellung

Sie benötigen Bereitstellungs-Benutzeranmeldeinformationen, um Ihre App zu authentifizieren und bereitzustellen. Diese unterscheiden sich von Ihren Azure-Abonnementanmeldeinformationen, und Sie können entweder Anmeldeinformationen für den Benutzerbereich oder den Anwendungsbereich verwenden.

Ein Benutzer für die benutzerbereichsgebundene Bereitstellung für die lokale Git-Bereitstellung benötigt nur einen Benutzernamen und kein Kennwort. Sie können den Benutzernamen des Benutzerbereichs festlegen, indem Sie den Azure CLI-Befehl az webapp deployment user set --user-name <username> ausführen, oder auf der Registerkarte Lokale Git/FTPS-Anmeldeinformationen des Bereitstellungscenters einer App unter Benutzerbereich.

Nachdem Sie den Bereitstellungsbenutzer für Ihren Benutzerbereich erstellt haben, können Sie ihn für alle App Service-Apps verwenden, auf die Sie Zugriff haben. Weitere Informationen finden Sie unter Konfigurieren von Benutzerbereich-Anmeldeinformationen.

Ein Benutzer für die Bereitstellung im Anwendungsbereich ist spezifisch für die App und wird automatisch erstellt, wenn Sie eine App erstellen. Sie können die für die Bereitstellung zu verwendenden Benutzeranmeldeinformationen für den Anwendungsbereich auf der Registerkarte Lokale Git/FTPS-Anmeldeinformationen im Bereitstellungscenter der App abrufen.

Erstellen und Konfigurieren einer Git-fähigen App

Sie können eine Git-fähige App erstellen und konfigurieren oder lokale Git-Bereitstellung für eine bereits vorhandene App konfigurieren, indem Sie Azure CLI, Azure PowerShell oder das Azure-Portal verwenden.

  • Um eine neue Web-App zu erstellen, die für die lokale Git-Bereitstellung konfiguriert ist, führen Sie az webapp create mit der --deployment-local-git Option aus. Beispiel:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-git
    
  • Um die lokale Git-Bereitstellung für eine bereits vorhandene App zu konfigurieren, führen Sie az webapp deployment source config-local-git aus. Beispiel:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

Jeder Befehl erzeugt eine Ausgabe, die eine URL enthält, z. B.:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

Die vorherige URL enthält den Benutzernamen für die bereichsspezifische Nutzungcontoso-user. Wenn Sie keinen Benutzernamen für die Bereitstellung im Benutzerbereich haben, verwendet die URL beispielsweise den https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Verwenden Sie diese Git-Klon-URL, um Ihre App im nächsten Schritt bereitzustellen.

Bereitstellen der Web-App

Um die App in Azure bereitzustellen, erstellen Sie bei Bedarf einen Remotebranch, stellen Sie sicher, dass Sie in den richtigen Branch bereitstellen, und pushen Sie dann Ihren Code an den Remotebranch.

Erstellen Sie den Remote-Branch

Wenn Sie Azure PowerShell New-AzWebApp zum Erstellen der App aus dem Beispielcode verwendet haben, wurde die azure Remote bereits erstellt. Führen Sie andernfalls die folgenden Anweisungen aus, um die Remoteverbindung zu erstellen:

  1. Ändern Sie in einem lokalen Terminal das Verzeichnis in das Stammverzeichnis Ihres geklonten Git-Repositorys.

  2. Fügen Sie ein Git-Remote mit dem Namen azure mithilfe Ihrer Git-Klon-URL hinzu. Wenn Sie Ihre Git-Klon-URL nicht kennen, verwenden Sie https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Pushen zum richtigen Branch

App Service-Repositorys stellen standardmäßig Dateien in der master-Verzweigung bereit. Wenn sich Ihre bereits vorhandenen lokalen Dateien im master Branch Ihres Repositorys befinden, können Sie Ihre App jetzt bereitstellen, indem Sie git push azure master ausführen.

Viele Git-Repositorys, einschließlich des Beispielcode-Repositorys für diesen Artikel, verwenden main oder einen anderen Standard-Verzweigungsnamen. Um an den richtigen Branch bereitzustellen, müssen Sie entweder explizit zum Remote-master-Branch bereitstellen oder den Bereitstellungsbranch auf main oder einen anderen Branchnamen ändern und in diesem Branch bereitstellen.

Verwenden Sie den folgenden Befehl master, um explizit aus Ihrem Branch main nach push bereitzustellen:

git push azure main:master

Sie können die DEPLOYMENT_BRANCH-Einstellung Ihrer App auf main ändern und dann direkt an main senden, wie folgt:

  • Azure CLI:

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

    1. Wählen Sie auf der Portalseite für Ihre App unter "Einstellungen" im linken Navigationsmenü "Umgebungsvariablen" aus.
    2. Wählen Sie "Hinzufügen" aus, fügen Sie eine Anwendungseinstellung mit dem Namen DEPLOYMENT_BRANCH und dem Hauptwert hinzu, und wählen Sie "Übernehmen" aus.
    3. Führen Sie git push azure main im Terminalfenster aus.

Abschließen und Überprüfen der Bereitstellung

Wenn das Dialogfeld Git-Credential-Manager nach dem Übertragen Ihres Codes angezeigt wird, geben Sie Ihren Benutzernamen und Ihr Kennwort für die Bereitstellung im Benutzer- oder Anwendungsbereich ein. Wenn Ihre Git-Remote-URL bereits die Anmeldeinformationen enthält, werden Sie nicht aufgefordert, sie einzugeben.

Überprüfen Sie die Ausgabe des Befehls push. Möglicherweise sehen Sie laufzeitspezifische Automatisierung, z. B. npm install für Node.js, MSBuild für ASP.NET oder pip install für Python. Wenn Fehler auftreten, siehe Problembehandlung bei der Bereitstellung.

Wechseln Sie zum Azure-Portal, und überprüfen Sie, ob die App erfolgreich bereitgestellt wurde, indem Sie auf der Seite "Übersicht" der App den Link "Standarddomäne" auswählen. Die App sollte in einem Browser-Tab geöffnet werden und Hallo Welt! anzeigen.

Problembehandlung bei der Bereitstellung

Die folgenden allgemeinen Fehler können auftreten, wenn Sie lokale Git verwenden, um sie in einer App Service-App in Azure zu 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 die falsche URL, indem Sie sie verwenden git remote remove , und erstellen Sie dann die Remote mit der richtigen URL neu.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Sie haben keinen Branch 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 richtigen Branch mit git push azure <branch> an.
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, oder ändern Sie den Bereitstellungsbranch, indem Sie die Anweisungen unter Pushen in den richtigen Branch befolgen.
src refspec [branchname] does not match any. Sie haben versucht, an einen anderen Branch als main im Remoterepository azure zu pushen. Führen Sie den Vorgang git push erneut aus, und geben Sie den Branch main mit git push azure main an.
RPC failed; result=22, HTTP code = 5xx. Sie haben versucht, 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 package.json Datei bereitgestellt, die die hinzugefügten erforderlichen Module angibt. Überprüfen Sie die Fehlermeldungen vom Typ npm ERR! vor diesem Fehler, um mehr Kontext zu erhalten. Die folgenden bekannten Ursachen für diesen Fehler erzeugen die entsprechenden npm ERR! Meldungen:
Falsch formatierte „package.json“-Datei: npm ERR! Couldn't read dependencies.
Das systemeigene Modul verfügt nicht über eine binäre Verteilung für Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
oder npm ERR! [modulename@version] preinstall: \make \|\| gmake\