Freigeben über


Konfigurieren der kontinuierlichen Bereitstellung für Azure App Service

In diesem Artikel wird erläutert, wie Sie die kontinuierliche Bereitstellung (CD) für Azure App Service konfigurieren können, indem Sie Updates von GitHub, Bitbucket, Azure Repos oder anderen Repositorys abrufen.

Voraussetzungen

Schreiben Sie Berechtigungen für eine Azure App Service-App in einem Quellcodeverwaltungs-Repository.

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.

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

Kontinuierliche Bereitstellung aktivieren

  1. Wechseln Sie im Azure-Portal zur Seite für Ihre App Service-App, und wählen Sie im linken Navigationsmenü das Bereitstellungscenter aus.

  2. Wählen Sie auf der Registerkarte "Einstellungen " unter " Quelle" den Repositorytyp der Quellcodeverwaltung aus.

    Screenshot, der zeigt, wie man die Bereitstellungsquelle auswählt

  3. Folgen Sie den Anweisungen für Ihren Quelltyp, um die Bereitstellung zu konfigurieren.

    Screenshot, der zeigt, wie Die Bereitstellungsquelle konfiguriert wird.

Alle aufgelisteten Quellen können mit dem App Service Build Service erstellt werden. Einige Quellen können auch mit GitHub-Aktionen oder Azure-Pipelines erstellt werden. Weitere Informationen finden Sie unter Build-Dienstanbieter.

GitHub Actions ist der Standardmäßige GitHub-Buildanbieter . Um den Anbieter zu ändern, wählen Sie " Anbieter ändern", wählen Sie "App Service Build Service " oder "Azure Pipelines" und dann "OK" aus.

Wählen Sie bei Bedarf "Autorisieren" aus, und folgen Sie den Autorisierungsaufforderungen für GitHub. Um sie aus dem Repository eines anderen Benutzers bereitzustellen, wählen Sie "Konto ändern" aus.

  1. Wählen Sie die passende GitHub-Organisation, das Repository und den Branch aus.

    Wenn Sie eine Organisation oder ein Repository nicht finden können, müssen Sie möglicherweise weitere Berechtigungen auf GitHub aktivieren. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Repositorys Ihrer Organisation.

  2. Wählen Sie unter Authentifizierungstyp die Option Benutzerseitig zugewiesenen Identität aus, um die Sicherheit zu erhöhen.

    Wenn Ihr Azure-Konto über die erforderlichen Berechtigungen verfügt, erstellt App Service eine vom Benutzer zugewiesene verwaltete Identität für Sie, oder Sie können eine vorhandene verwaltete Identität auswählen. Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, arbeiten Sie mit Ihrem Azure-Administrator zusammen, um eine Identität mit der erforderlichen Rolle in Ihrer App zu erstellen, und wählen Sie sie dann in der Dropdownliste aus.

  3. Der App-Dienst wählt eine Workflowvorlage basierend auf der Sprachstapeleinstellung Ihrer App aus und führt einen Commit in Ihr ausgewähltes GitHub-Repository durch. Sie können optional die Vorschaudatei auswählen, um die Workflowdatei anzuzeigen, bevor Sie Ihre Änderungen speichern.

  4. Wählen Sie Speichern.

Neue Commits im ausgewählten Repository und Branch werden nun fortlaufend in Ihrer App Service-App bereitgestellt. Sie können die Commits und Bereitstellungen auf der Registerkarte Protokolle nachverfolgen.

Deaktivieren von Continuous Deployment

So deaktivieren Sie die kontinuierliche Bereitstellung für eine verbundene Quelle:

  1. Wechseln Sie im Azure-Portal zur Seite für Ihre App Service-App, und wählen Sie im linken Navigationsmenü das Bereitstellungscenter aus.

  2. Wählen Sie auf der Registerkarte "Einstellungen " die Option "Trennen" aus.

    Screenshot, der zeigt, wie Sie die Synchronisierung Ihres Cloudordners mit Ihrer App Service-App im Azure-Portal trennen.

  3. Klickan Sie auf OK.

Für GitHub verbleibt die Workflowdatei standardmäßig im Repository, aber auf dem Tab Protokolle im Bereitstellungscenter ist der integrierte Fortschritt nicht mehr sichtbar.

Was sind die Buildanbietenden?

Buildanbieter helfen Ihnen beim Erstellen einer kontinuierlichen Integrations- und Kontinuierlichen Bereitstellungslösung (CI/CD) mit Azure App Service, indem Sie Build, Test und Bereitstellung automatisieren. Einige Bereitstellungsquellen bieten mehrere Optionen für Buildanbieter. Alle aufgelisteten Quellen können mit dem App Service Build Service erstellt werden.

Sie sind nicht auf die aufgeführten Buildanbieteroptionen beschränkt, aber App Service hilft Ihnen, die aufgeführten Optionen schnell einzurichten und mit der integrierten Bereitstellungsprotokollierung zu beginnen.

GitHub-Aktionen

Der GitHub Actions-Buildanbieter ist nur für die GitHub-Quelle verfügbar und ist die Standardeinstellung für GitHub-Bereitstellungen. Der Buildanbieter richtet CI/CD ein, indem er eine GitHub Actions-Workflowdatei in Ihr GitHub-Repository eingibt, das App Service-Build- und Bereitstellungsaufgaben verarbeitet.

Für die Standardauthentifizierung fügt der GitHub Actions-Buildanbieter das Veröffentlichungsprofil für Ihre App als GitHub-Geheimnis hinzu. Die Workflowdatei verwendet dieses Geheimnis für die Authentifizierung bei App Service.

Bei der vom Benutzer zugewiesenen Identität ermöglicht App Service die empfohlene Microsoft OpenID Connect-Authentifizierung und konfiguriert die erforderlichen Ressourcen in Azure und GitHub. Weitere Informationen finden Sie unter Was bewirkt die Option "Benutzerzugewiesene Identität" für GitHub Actions?

Der GitHub Actions-Buildanbieter erfasst Informationen aus den Workflowausführungsprotokollen und zeigt sie auf der Registerkarte "Protokolle " im Bereitstellungscenter der App an.

Sie können den GitHub Actions-Buildanbieter auf verschiedene Arten anpassen:

  • Passen Sie die Workflowdatei an, nachdem sie in Ihrem GitHub-Repository generiert wurde. Weitere Informationen finden Sie unter Workflowsyntax für GitHub Actions. Stellen Sie den angepassten Workflow mit der azure/webapps-deploy Aktion für App Service bereit.
  • Wenn die ausgewählte Verzweigung geschützt ist, zeigen Sie eine Vorschau der Workflowdatei an, ohne die Konfiguration zu speichern. Passen Sie die Datei an, und fügen Sie sie dann manuell zu Ihrem Repository hinzu. Bei dieser Methode erfolgt keine Protokollintegration in das Azure-Portal.
  • Führen Sie die Bereitstellung mithilfe eines Dienstprinzipals in Microsoft Entra ID durch, anstatt die Standardauthentifizierung oder eine benutzerseitig zugewiesene Identität zu verwenden. Sie können diese Methode nicht im Portal konfigurieren.

App Service-Builddienst

Der App Service-Builddienst ist die native Bereitstellungs- und Buildengine von App Service. Wenn Sie diese Option auswählen, fügt Der App-Dienst dem von Ihnen autorisierten Repository einen Webhook hinzu. Jeder Code-Push an das Repository löst den Webhook aus, und der App-Dienst ruft die Änderungen ab und führt alle Bereitstellungsaufgaben durch. Weitere Informationen finden Sie unter Bereitstellen über GitHub (Kudu).

Der App Service-Builddienst erfordert die Standardauthentifizierung des Quellcodeverwaltungs-Managers (Source Control Manager, SCM), damit der Webhook funktioniert. Die Standardauthentifizierung ist weniger sicher als andere Authentifizierungsmethoden. Weitere Informationen finden Sie unter:

Azure-Pipelines

Azure Pipelines ist die Buildkomponente von Azure DevOps. Sie können eine Pipeline für das Erstellen, Testen und Bereitstellen Ihrer App in App Service aus jedem unterstützten Quellrepository konfigurieren.

Um Azure Pipelines als Buildanbieter zu verwenden, wählen Sie die Option Azure Pipelines im App Service Deployment Center aus, und wechseln Sie dann direkt zu Azure DevOps , um die Pipeline zu konfigurieren. Weitere Informationen finden Sie unter Bereitstellen in App Service mithilfe von Azure Pipelines.

Häufig gestellte Fragen

Wie funktioniert der GitHub Actions-Buildanbieter, wenn die Standardauthentifizierung deaktiviert ist?

Der GitHub Actions-Buildanbieter funktioniert nicht mit der Standardauthentifizierung, wenn die Standardauthentifizierung deaktiviert ist. Versuchen Sie stattdessen, GitHub-Aktionen mit der Vom Benutzer zugewiesenen Identitätsoption zu verwenden. Weitere Informationen finden Sie unter Bereitstellen ohne Standardauthentifizierung.

Was geschieht mit meiner App während der Bereitstellung, die zu einem Fehler oder unvorhersehbaren Verhalten führen kann?

Offiziell unterstützte Bereitstellungsmethoden nehmen Änderungen an Dateien im Ordner "/home/site/wwwroot " vor, die zum Ausführen Ihrer App verwendet werden. Die Bereitstellung kann aufgrund gesperrter Dateien fehlschlagen. Die App verhält sich möglicherweise auch während der Bereitstellung unvorhersehbar, wenn die Dateien nicht gleichzeitig aktualisiert werden, was für eine kundenorientierte App nicht erwünscht ist.

Es gibt einige Möglichkeiten, diese Probleme zu vermeiden.

Was bewirkt die Option „Benutzerseitig zugewiesene Identität“ für GitHub Actions?

Wenn Sie die vom Benutzer zugewiesene Identität für die GitHub-Quelle auswählen, konfiguriert Der App-Dienst alle erforderlichen Ressourcen in Azure und GitHub. App Service aktiviert die empfohlene Microsoft OpenID Connect-Authentifizierung mit GitHub-Aktionen.

Insbesondere führt App Service die folgenden Vorgänge aus:

  • Erstellen von Verbundanmeldeinformationen zwischen einer benutzendenseitig zugewiesenen verwalteten Identität in Azure und Ihrem ausgewählten Repository und Branch in GitHub.
  • Erstellen der Geheimnisse AZURE_CLIENT_ID, AZURE_TENANT_ID und AZURE_SUBSCRIPTION_ID aus den Verbundanmeldeinformationen in Ihrem ausgewählten GitHub-Repository.
  • Weist Ihrer App die Identität zu.

Anschließend können Sie die Azure/login Aktion in einem GitHub-Aktionsworkflow in Ihrem GitHub-Repository verwenden, um sich mit Ihrer App mithilfe von OpenID Connect zu authentifizieren. Beispiele finden Sie unter Hinzufügen der Workflowdatei zum GitHub-Repository.

Wenn Ihr Azure-Konto über die erforderlichen Berechtigungen verfügt, erstellt App Service eine benutzerseitig zugewiesene verwaltete Identität und konfiguriert sie für Sie. Diese Identität wird nicht auf der Seite "Identität" Ihrer App angezeigt. Wenn Ihr Azure-Konto nicht über die erforderlichen Berechtigungen verfügt, müssen Sie eine vorhandene Identität mit der erforderlichen Rolle auswählen.

Warum wird folgender Fehler angezeigt: „Sie verfügen nicht über ausreichende Berechtigungen für diese App, um rollenbasierten Zugriff auf eine verwaltete Identität zuzuweisen und Verbundanmeldeinformationen zu konfigurieren“?

Die Meldung gibt an, dass Ihr Azure-Konto nicht über die erforderlichen Berechtigungen zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität für GitHub-Aktionen verfügt. Sie benötigen die folgenden Berechtigungen, die für Ihre App gelten:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Standardmäßig verfügen die Rollen " Azure-Benutzerzugriffsadministrator " und "Besitzer " über diese Berechtigungen, die Rolle " Mitwirkender " jedoch nicht. Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, arbeiten Sie mit Ihrem Azure-Administrator zusammen, um eine vom Benutzer zugewiesene verwaltete Identität zu erstellen, die über die Rolle " Mitwirkender der Websites" verfügt. Sie können diese Identität dann in der Dropdownliste " Identität" für GitHub-Quelle im App Service Deployment Center auswählen.

Weitere Informationen zur Verwendung alternativer Schritte finden Sie unter Deploy to App Service using GitHub Actions.

Warum wird die Fehlermeldung "Diese Identität verfügt nicht über Schreibberechtigungen für diese App." angezeigt? Bitte wählen Sie eine andere Identität aus oder arbeiten Sie mit Ihrem Administrator zusammen, um Ihrer Identität die Rolle „Webseiten-Beitragender“ für diese App zuzuweisen.

Die Meldung gibt an, dass die ausgewählte benutzerseitig zugewiesene verwaltete Identität nicht über die erforderliche Rolle zum [Aktivieren von OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) zwischen dem GitHub-Repository und der App Service-App verfügt. Die Identität muss die Rolle Besitzer, Mitwirkende oder Websitemitwirkender für die App besitzen. Die am wenigsten privilegierte Rolle, die die Identität benötigt, ist Websitemitwirkende.