Continuous Deployment in Azure App ServiceContinuous deployment to Azure App Service

Der Azure App Service ermöglicht die kontinuierliche Bereitstellung von GitHub-, BitBucket- und Azure Repos-Repositorys durch Abrufen der neuesten Updates.Azure App Service enables continuous deployment from GitHub, BitBucket, and Azure Repos repositories by pulling in the latest updates. Dieser Artikel zeigt Ihnen, wie Sie das Azure-Portal nutzen können, um Ihre App kontinuierlich über den Kudu Build-Dienst oder Azure Pipelines bereitzustellen.This article shows you how to use the Azure portal to continuously deploy your app through the Kudu build service or Azure Pipelines.

Weitere Informationen zu den Quellcodeverwaltungsdiensten finden Sie unter Erstellen eines Repositorys (GitHub), Erstellen eines Repositorys (BitBucket) oder Erstellen eines neuen Git-Repositorys (Azure Repos).For more information on the source control services, see Create a repo (GitHub), Create a repo (BitBucket), or Create a new Git repo (Azure Repos).

Vorbereiten Ihres RepositorysPrepare your repository

Um automatische Builds vom Azure App Service-Kudu-Buildserver zu erhalten, muss das Stammverzeichnis Ihres Repositorys die richtigen Dateien enthalten.To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

LaufzeitRuntime StammverzeichnisdateienRoot directory files
ASP.NET (nur Windows)ASP.NET (Windows only) *.sln, *.csproj oder default.aspx*.sln, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *.sln oder *.csproj*.sln or *.csproj
PHPPHP index.phpindex.php
Ruby (nur Linux)Ruby (Linux only) GemfileGemfile
Node.jsNode.js server.js, app.js oder package.json mit einem Startskriptserver.js, app.js, or package.json with a start script
PythonPython *.py, requirements.txt oder runtime.txt*.py, requirements.txt, or runtime.txt
HTMLHTML default.htm, default.html, default.asp, index.htm, index.html oder iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
WebJobsWebJobs <Auftragsname>/run.<Erweiterung> unter App_Data/jobs/continuous (für fortlaufende WebJobs) oder App_Data/jobs/triggered (für ausgelöste WebJobs).<job_name>/run.<extension> under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Weitere Informationen finden Sie in der Kudu-Dokumentation zu WebJobs.For more information, see Kudu WebJobs documentation.
FunctionsFunctions Siehe Kontinuierliche Bereitstellung für Azure Functions.See Continuous deployment for Azure Functions.

Zum Anpassen Ihrer Bereitstellung schließen Sie eine Datei vom Typ .deployment im Repositorystamm ein.To customize your deployment, include a .deployment file in the repository root. Weitere Informationen finden Sie unter Anpassen von Bereitstellungen und Benutzerdefiniertes Bereitstellungsskript.For more information, see Customize deployments and Custom deployment script.

Hinweis

Wenn Sie in Visual Studio entwickeln, kann Visual Studio ein Repository für Sie erstellen.If you develop in Visual Studio, let Visual Studio create a repository for you. Das Projekt kann sofort über Git bereitgestellt werden.The project is immediately ready to be deployed by using Git.

Autorisieren von Azure App ServiceAuthorize Azure App Service

Um Azure Repos zu verwenden, stellen Sie sicher, dass Ihre Azure DevOps-Organisation mit Ihrem Azure-Abonnement verknüpft ist.To use Azure Repos, make sure your Azure DevOps organization is linked to your Azure subscription. Weitere Informationen finden Sie unter „Einrichten eines Azure DevOps-Dienstkontos zur Bereitstellung für eine Webanwendung“.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

Für Bitbucket oder GitHub autorisieren Sie den Azure App Service, sich mit Ihrem Repository zu verbinden.For Bitbucket or GitHub, authorize Azure App Service to connect to your repository. Sie müssen sich nur einmal bei einem Quellcodverwaltungsdienst autorisieren.You only need to authorize with a source control service once.

  1. Wählen Sie App Services in der linken Navigation des Azure-Portals und dann die Web-App, die Sie bereitstellen möchten.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Wählen Sie auf der App-Seite im linken Menü „Bereitstellungscenter“ aus.On the app page, select Deployment Center in the left menu.

  3. Wählen Sie auf der Seite „Bereitstellungscenter“ die Option GitHub oder Bitbucket und dann „Autorisieren“ .On the Deployment Center page, select GitHub or Bitbucket, and then select Authorize.

    Wählen Sie den Quellcodeverwaltungdienst und dann „Autorisieren“.

  4. Melden Sie sich bei Bedarf beim Dienst an, und folgen Sie den Anweisungen zur Autorisierung.Sign in to the service if necessary, and follow the authorization prompts.

Aktivieren von Continuous DeploymentEnable continuous deployment

Nachdem Sie einen Quellcodeverwaltungdienst autorisiert haben, konfigurieren Sie Ihre Anwendung für die fortlaufende Bereitstellung über den integrierten Kudu App Service Build-Server oder über Azure Pipelines.After you authorize a source control service, configure your app for continuous deployment through the built-in Kudu App Service build server, or through Azure Pipelines.

Option 1: Verwendung des App Service-BuilddienstsOption 1: Use the App Service build service

Sie können den integrierten Kudu App Service Build-Server verwenden, um die Bereitstellung kontinuierlich von GitHub, Bitbucket oder Azure Repos aus vorzunehmen.You can use the built-in Kudu App Service build server to continuously deploy from GitHub, Bitbucket, or Azure Repos.

  1. Wählen Sie App Services in der linken Navigation des Azure-Portals und dann die Web-App, die Sie bereitstellen möchten.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Wählen Sie auf der App-Seite im linken Menü „Bereitstellungscenter“ aus.On the app page, select Deployment Center in the left menu.

  3. Wählen Sie auf der Seite „Bereitstellungscenter“ Ihren autorisierten Quellcodeverwaltungdienst aus und wählen Sie „Weiter“ .Select your authorized source control provider on the Deployment Center page, and select Continue. Für GitHub oder Bitbucket können Sie auch „Konto ändern“ wählen, um das autorisierte Konto zu ändern.For GitHub or Bitbucket, you can also select Change account to change the authorized account.

    Hinweis

    Um Azure Repos zu verwenden, stellen Sie sicher, dass Ihre Azure DevOps Services-Organisation mit Ihrem Azure-Abonnement verknüpft ist.To use Azure Repos, make sure your Azure DevOps Services organization is linked to your Azure subscription. Weitere Informationen finden Sie unter „Einrichten eines Azure DevOps-Dienstkontos zur Bereitstellung für eine Webanwendung“.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

  4. Wählen Sie für GitHub oder Azure Repos auf der Seite „Buildanbieter“ die Option „App Service-Builddienst“ und dann „Weiter“ .For GitHub or Azure Repos, on the Build provider page, select App Service build service, and then select Continue. Bitbucket verwendet immer den App Service-Builddienst.Bitbucket always uses the App Service build service.

    Wählen Sie die Option „App Service-Builddienst“ und dann „Weiter“.

  5. Auf der Seite Konfigurieren:On the Configure page:

    • Wählen Sie das Dropdownmenü für GitHub, und wählen Sie dann die „Organisation“ , „Repository“ und „Branch“ , die sie fortlaufend bereitstellen möchten.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Hinweis

      Wenn Sie keine Repositorys sehen, müssen Sie möglicherweise den Azure App Service in GitHub autorisieren.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Navigieren Sie zu Ihrem GitHub-Repository und wählen Sie Einstellungen > Anwendungen > Autorisierte OAuth-Apps.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Wählen Sie Azure App Service und dann „Zuweisung“ .Select Azure App Service, and then select Grant.

    • Wählen Sie für Bitbucket „Team“ aus, dann „Repository“ und die „Branch“ , die Sie fortlaufend nutzen möchten.For Bitbucket, select the Bitbucket Team, Repository, and Branch you want to deploy continuously.

    • Wählen Sie für Azure Repos die Azure DevOps-Organisation, das Projekt, das Repository und Branch aus, die Sie fortlaufend nutzen möchten.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously.

      Hinweis

      Wenn Ihre Azure DevOps-Organisation nicht aufgeführt ist, stellen Sie sicher, dass sie mit Ihrem Azure-Abonnement verknüpft ist.If your Azure DevOps organization isn't listed, make sure it's linked to your Azure subscription. Weitere Informationen finden Sie unter „Einrichten eines Azure DevOps-Dienstkontos zur Bereitstellung für eine Webanwendung“.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app..

  6. Wählen Sie Weiter.Select Continue.

    Geben Sie die Repository-Informationen ein und wählen Sie dann „Weiter“.

  7. Nachdem Sie den Buildanbieter konfiguriert haben, überprüfen Sie die Einstellungen auf der Seite „Zusammenfassung“ und wählen Sie dann „Fertig stellen“ .After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Neue Commits im ausgewählten Repository und Branch werden nun fortlaufend in Ihrer App Service-App bereitgestellt.New commits in the selected repository and branch now deploy continuously into your App Service app. Auf der Seite „Bereitstellungscenter“ können Sie die Commits und Bereitstellen verfolgen.You can track the commits and deployments on the Deployment Center page.

    Verfolgung von Commits und Bereitstellen im Bereitstellungscenter

Option 2: Verwendung von Azure PipelinesOption 2: Use Azure Pipelines

Wenn Ihr Konto über die erforderlichen Berechtigungen verfügt, können Sie Azure Pipelines so einrichten, dass sie kontinuierlich aus GitHub- oder Azure Repos-Repositorys bereitgestellt werden.If your account has the necessary permissions, you can set up Azure Pipelines to continuously deploy from GitHub or Azure Repos repositories. Weitere Informationen zur Bereitstellung über Azure Pipelines finden Sie unter „Bereitstellen einer Webanwendung für Azure App Services“.For more information about deploying through Azure Pipelines, see Deploy a web app to Azure App Services.

Folgendes ist erforderlich, damit Azure App Service kontinuierliche Azure Pipelines in Ihrer Azure DevOps-Organisation erstellen kann:For Azure App Service to create continuous delivery Azure Pipelines in your Azure DevOps organization:

  • Ihr Azure-Konto muss über Berechtigungen zum Schreiben in Azure Active Directory und zum Erstellen eines Diensts verfügen.Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • Ihr Azure-Konto muss in Ihrem Azure-Abonnement über die Rolle Besitzer verfügen.Your Azure account must have the Owner role in your Azure subscription.

  • Sie müssen ein Administrator in dem Azure DevOps-Projekt sein, das Sie verwenden möchten.You must be an administrator in the Azure DevOps project you want to use.

Konfigurieren von Azure Pipelines (Vorschauversion):To configure Azure Pipelines (Preview):

  1. Wählen Sie App Services in der linken Navigation des Azure-Portals und dann die Web-App, die Sie bereitstellen möchten.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Wählen Sie auf der App-Seite im linken Menü „Bereitstellungscenter“ aus.On the app page, select Deployment Center in the left menu.

  3. Wählen Sie auf der Seite Buildanbieter nacheinander Azure Pipelines (Vorschau) und dann Weiter aus.On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

  4. Auf der Seite „Konfigurieren“ im Abschnitt „Code“ :On the Configure page, in the Code section:

    • Wählen Sie das Dropdownmenü für GitHub, und wählen Sie dann die „Organisation“ , „Repository“ und „Branch“ , die sie fortlaufend bereitstellen möchten.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Hinweis

      Wenn Sie keine Repositorys sehen, müssen Sie möglicherweise den Azure App Service in GitHub autorisieren.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Navigieren Sie zu Ihrem GitHub-Repository und wählen Sie Einstellungen > Anwendungen > Autorisierte OAuth-Apps.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Wählen Sie Azure App Service und dann „Zuweisung“ .Select Azure App Service, and then select Grant.

    • Wählen Sie für Azure Repos die Azure DevOps-Organisation, das Projekt, das Repository und Branch aus, die Sie fortlaufend nutzen möchten oder konfigurieren Sie eine neue Azure DevOps-Organisation.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously, or configure a new Azure DevOps organization.

      Hinweis

      Wenn Ihre vorhandene Azure DevOps-Organisation nicht aufgeführt ist, müssen Sie sie möglicherweise mit Ihrem Azure-Abonnement verknüpfen.If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. Weitere Informationen finden Sie unter Definieren Ihrer CD-Releasepipeline.For more information, see Define your CD release pipeline.

  5. Wählen Sie Weiter.Select Continue.

  6. Geben Sie für Azure Repos im Abschnitt „Build“ das Sprachenframework an, das Azure Pipelines verwenden soll, um Build-Aufgaben auszuführen, und wählen Sie dann „Weiter“ .For Azure Repos, in the Build section, specify the language framework that Azure Pipelines should use to run build tasks, and then select Continue.

  7. Wählen Sie auf der Seite „Test“ aus, ob Auslastungstests aktiviert werden sollen, und wählen Sie dann „Weiter“ .On the Test page, choose whether to enable load tests, and then select Continue.

  8. Abhängig vom Tarif Ihres App Service-Plans wird ggf. auch eine Seite Für Staging bereitstellen angezeigt.Depending on your App Service plan pricing tier, you may see a Deploy to staging page. Wählen Sie, ob Bereitstellungsslots aktiviert werden sollen, und wählen Sie Weiter aus.Choose whether to enable deployment slots, and then select Continue.

    Hinweis

    Azure Pipelines erlaubt keine Continuous Delivery an den Produktionsslot.Azure Pipelines doesn't allow continuous delivery to the production slot. Diese Einschränkung soll versehentliche Bereitstellungen für die Produktion verhindern.This restriction prevents accidental deployments to production. Richten Sie einen Continuous Delivery-Vorgang für einen Stagingslot ein, überprüfen Sie die Änderungen dort und tauschen Sie die Slots aus, wenn Sie fertig sind.Set up continuous delivery to a staging slot, verify the changes there, and then swap the slots when you are ready.

  9. Nachdem Sie den Buildanbieter konfiguriert haben, überprüfen Sie die Einstellungen auf der Seite „Zusammenfassung“ und wählen Sie dann „Fertig stellen“ .After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Neue Commits im ausgewählten Repository und Branch werden nun fortlaufend in Ihrer App Service-App bereitgestellt.New commits in the selected repository and branch now deploy continuously into your App Service app. Auf der Seite „Bereitstellungscenter“ können Sie die Commits und Bereitstellen verfolgen.You can track the commits and deployments on the Deployment Center page.

    Verfolgung von Commits und Bereitstellen im Bereitstellungscenter

Deaktivieren der fortlaufenden BereitstellungDisable continuous deployment

Um Continuous Deployment zu deaktivieren, wählen Sie „Trennen“ oben auf der Seite „Bereitstellungscenter“ Ihrer Anwendung.To disable continuous deployment, select Disconnect at the top of your app's Deployment Center page.

Deaktivieren der fortlaufenden Bereitstellung

Was geschieht während der Bereitstellung mit meiner App?What happens to my app during deployment?

Alle offiziell unterstützten Bereitstellungsmethoden nehmen Änderungen an den Dateien im Ordner /home/site/wwwroot Ihrer App vor.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Dabei handelt es sich um dieselben Dateien, die in der Produktionsumgebung ausgeführt werden.These files are the same ones that are run in production. Daher kann die Bereitstellung aufgrund von gesperrten Dateien fehlschlagen.Therefore, the deployment can fail because of locked files. Die App in der Produktionsumgebung kann sich während der Bereitstellung unvorhersehbar verhalten, da nicht alle Dateien gleichzeitig aktualisiert werden.The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. Es gibt mehrere Möglichkeiten, wie Sie diese Probleme umgehen können:There are a few different ways to avoid these issues:

Nicht unterstützte RepositorysUse unsupported repos

Für Windows-Apps können Sie Continuous Deployment aus einem Git oder Mecurial Cloudrepository, das das Portal nicht direkt unterstützt, beispielsweise GitLab, manuell konfigurieren.For Windows apps, you can manually configure continuous deployment from a cloud Git or Mecurial repository that the portal doesn't directly support, such as GitLab. Wählen Sie hierzu das Feld „Extern“ auf der Seite Bereitstellungscenter aus.You do it by choosing the External box in the Deployment Center page. Weitere Informationen finden Sie unter Einrichten von Continuous Deployment mit manuellen Schritten.For more information, see Set up continuous deployment using manual steps.

Zusätzliche RessourcenAdditional resources