Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.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. |
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
Wechseln Sie im Azure-Portal zur Seite für Ihre App Service-App, und wählen Sie im linken Navigationsmenü das Bereitstellungscenter aus.
Wählen Sie auf der Registerkarte "Einstellungen " unter " Quelle" den Repositorytyp der Quellcodeverwaltung aus.
Folgen Sie den Anweisungen für Ihren Quelltyp, um die Bereitstellung zu konfigurieren.
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.
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.
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.
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.
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:
Wechseln Sie im Azure-Portal zur Seite für Ihre App Service-App, und wählen Sie im linken Navigationsmenü das Bereitstellungscenter aus.
Wählen Sie auf der Registerkarte "Einstellungen " die Option "Trennen" aus.
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:
- Projekt Kudu
- Untersuchen häufiger Probleme mit Continuous Deployment
- Bereitstellen ohne Standardauthentifizierung
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?
- Was geschieht mit meiner App während der Bereitstellung, die zu einem Fehler oder unvorhersehbaren Verhalten führen kann?
- Was bewirkt die Option „Benutzerseitig zugewiesene Identität“ für GitHub Actions?
- Warum sehe ich den Fehler "Sie verfügen nicht über genügend Berechtigungen für diese App, um einen rollenbasierten Zugriff einer managed identity zuzuweisen und Verbundanmeldeinformationen zu konfigurieren"?
- 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.
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.
- Führen Sie Ihre App direkt aus dem ZIP-Paket aus, ohne sie zu entpacken.
- Beenden Sie die App, oder aktivieren Sie während der Bereitstellung den Offlinemodus. Weitere Informationen finden Sie unter Deal with locked files during deployment (Umgang mit gesperrten Dateien während der Bereitstellung).
- Stellen Sie sie in einem Stagingslot bereit, bei dem Automatisch tauschen aktiviert ist.
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
undAZURE_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.