Azure App Service への継続的デプロイContinuous deployment to Azure App Service

Azure App Service により、最新の更新プログラムをプルすることで、GitHub、BitBucket、Azure Repos のリポジトリからの継続的なデプロイが可能になります。Azure App Service enables continuous deployment from GitHub, BitBucket, and Azure Repos repositories by pulling in the latest updates. この記事では、Azure portal を使用して、Kudu ビルド サービスまたは Azure Pipelines を通じてアプリを継続的にデプロイする方法について説明します。This article shows you how to use the Azure portal to continuously deploy your app through the Kudu build service or Azure Pipelines.

ソース管理サービスの詳細については、「Create a repo (GitHub) (リポジトリの作成 (GitHub))」(GitHub)、「Create a repo (BitBucket) (リポジトリの作成 (BitBucket))」(BitBucket)、「新しい Git リポジトリの作成 (Azure Repos)」(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).

リポジトリを準備するPrepare your repository

Azure App Service Kudu ビルド サーバーから自動ビルドを取得するには、リポジトリのルートに、プロジェクトの適切なファイルがあることを確認してください。To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

ランタイムRuntime ルート ディレクトリのファイルRoot directory files
ASP.NET (Windows のみ)ASP.NET (Windows only) *.sln*.csproj、または default.aspx*.sln, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *.sln または *.csproj*.sln or *.csproj
PHPPHP index.phpindex.php
Ruby (Linux のみ)Ruby (Linux only) GemfileGemfile
Node.jsNode.js server.jsapp.js、またはスタート スクリプトを含む package.jsonserver.js, app.js, or package.json with a start script
PythonPython *.pyrequirements.txt、または runtime.txt*.py, requirements.txt, or runtime.txt
HTMLHTML default.htmdefault.htmldefault.aspindex.htmindex.html、または iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
WebJobsWebJobs App_Data/jobs/continuous (継続的 WebJobs の場合) または App_Data/jobs/triggered (トリガーされた WebJobs の場合) 配下の <job_name>/run.<extension><job_name>/run.<extension> under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. 詳細については、Kudu WebJobs のドキュメントをご覧ください。For more information, see Kudu WebJobs documentation.
FunctionsFunctions Azure Functions の継続的なデプロイに関するページをご覧ください。See Continuous deployment for Azure Functions.

デプロイをカスタマイズするには、 .deployment ファイルをリポジトリのルートに含めます。To customize your deployment, include a .deployment file in the repository root. 詳細については、デプロイのカスタマイズに関するページおよび「Custom deployment script (カスタム デプロイ スクリプト)」を参照してください。For more information, see Customize deployments and Custom deployment script.

注意

Visual Studio で開発する場合は、Visual Studio にリポジトリを自動作成させてください。If you develop in Visual Studio, let Visual Studio create a repository for you. プロジェクトは Git を使用してすぐにデプロイできます。The project is immediately ready to be deployed by using Git.

Azure App Service を承認するAuthorize Azure App Service

Azure Repos を使用するには、Azure DevOps 組織がお使いの Azure サブスクリプションにリンクされていることを確認します。To use Azure Repos, make sure your Azure DevOps organization is linked to your Azure subscription. 詳細については、Web アプリにデプロイできるようにするための Azure DevOps Services アカウントの設定に関するページを参照してください。For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

Bitbucket または GitHub の場合は、Azure App Service がお使いのリポジトリに接続することを承認します。For Bitbucket or GitHub, authorize Azure App Service to connect to your repository. ソース管理サービスを使用して承認する必要があるのは 1 回だけです。You only need to authorize with a source control service once.

  1. Azure portal の左側のナビゲーションで App Services を選択し、次に、デプロイする Web アプリを選択します。Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. アプリのページで、左側のメニューから [管理者用センター] を選択します。On the app page, select Deployment Center in the left menu.

  3. [管理者用センター] ページで、 [GitHub] または [Bitbucket] を選択し、次に [承認] を選択します。On the Deployment Center page, select GitHub or Bitbucket, and then select Authorize.

    ソース管理サービスを選択し、[承認] を選択します。

  4. 必要に応じてサービスにサインインし、承認のプロンプトに従います。Sign in to the service if necessary, and follow the authorization prompts.

継続的配置を有効にするEnable continuous deployment

ソース管理サービスを承認した後は、組み込みの Kudu App Service ビルド サーバー、または 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.

オプション 1:App Service のビルド サービスを使用するOption 1: Use the App Service build service

組み込みの Kudu App Service ビルド サーバーを使用して、GitHub、Bitbucket、または Azure Repos から継続的にデプロイできます。You can use the built-in Kudu App Service build server to continuously deploy from GitHub, Bitbucket, or Azure Repos.

  1. Azure portal の左側のナビゲーションで App Services を選択し、次に、デプロイする Web アプリを選択します。Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. アプリのページで、左側のメニューから [管理者用センター] を選択します。On the app page, select Deployment Center in the left menu.

  3. [管理者用センター] ページで、承認したソース管理プロバイダーを選択し、 [続行] を選択します。Select your authorized source control provider on the Deployment Center page, and select Continue. GitHub または Bitbucket の場合、さらに [アカウントの変更] を選択して、承認されたアカウントを変更することもできます。For GitHub or Bitbucket, you can also select Change account to change the authorized account.

    注意

    Azure Repos を使用するには、Azure DevOps Services 組織がお使いの Azure サブスクリプションにリンクされていることを確認します。To use Azure Repos, make sure your Azure DevOps Services organization is linked to your Azure subscription. 詳細については、Web アプリにデプロイできるようにするための Azure DevOps Services アカウントの設定に関するページを参照してください。For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

  4. GitHub または Azure Repos の場合、 [ビルド プロバイター] ページで [App Service のビルド サービス] を選択し、 [続行] を選択します。For GitHub or Azure Repos, on the Build provider page, select App Service build service, and then select Continue. Bitbucket では常に App Service のビルド サービスが使用されます。Bitbucket always uses the App Service build service.

    [App Service のビルド サービス] を選択して、[続行] を選択します。

  5. [構成] ページで、次を実行します。On the Configure page:

    • GitHub の場合、ドロップダウンから、継続的にデプロイする [組織][リポジトリ] 、および [ブランチ] を選択します。For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      注意

      リポジトリが表示されない場合は、GitHub で Azure App Service を承認しなければならない場合があります。If you don't see any repositories, you may need to authorize Azure App Service in GitHub. GitHub リポジトリを参照し、 [設定] > [アプリケーション] > [Authorized OAuth Apps](認可された OAuth アプリ) の順に移動します。Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. [Azure App Service] を選択し、次に [許可](Grant) を選択します。Select Azure App Service, and then select Grant.

    • Bitbucket の場合、継続的にデプロイする Bitbucket の チームリポジトリブランチを選択します。For Bitbucket, select the Bitbucket Team, Repository, and Branch you want to deploy continuously.

    • Azure Repos の場合、継続的にデプロイする Azure DevOps の組織プロジェクトリポジトリブランチを選択します。For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously.

      注意

      Azure DevOps 組織が一覧に表示されていない場合は、お使いの Azure サブスクリプションにリンクされていることを確認してください。If your Azure DevOps organization isn't listed, make sure it's linked to your Azure subscription. 詳細については、Web アプリにデプロイできるようにするための Azure DevOps Services アカウントの設定に関するページを参照してください。For more information, see Set up an Azure DevOps Services account so it can deploy to a web app..

  6. [続行] をクリックします。Select Continue.

    リポジトリの情報を入力し、[続行] を選択します。

  7. ビルド プロバイダーを構成したら、 [概要] ページで設定を確認し、 [完了] を選択します。After you configure the build provider, review the settings on the Summary page, and then select Finish.

    選択したリポジトリおよびブランチでの新しいコミットが App Service アプリに継続的にデプロイされるようになりました。New commits in the selected repository and branch now deploy continuously into your App Service app. [管理者用センター] ページで、コミットとデプロイを追跡できます。You can track the commits and deployments on the Deployment Center page.

    管理者用センターでコミットとデプロイを追跡する

オプション 2:Azure Pipelines を使用するOption 2: Use Azure Pipelines

アカウントに、必要なアクセス許可がある場合は、GitHub または Azure Repos のリポジトリから継続的にデプロイするように Azure Pipelines を設定できます。If your account has the necessary permissions, you can set up Azure Pipelines to continuously deploy from GitHub or Azure Repos repositories. Azure Pipelines を使用したデプロイの詳細については、「Web アプリを Azure App Services にデプロイする」を参照してください。For more information about deploying through Azure Pipelines, see Deploy a web app to Azure App Services.

Azure App Service で Azure DevOps 組織に継続的デリバリーの Azure Pipelines を作成するには、次のようにします。For Azure App Service to create continuous delivery Azure Pipelines in your Azure DevOps organization:

  • Azure アカウントには、Azure Active Directory への書き込みを行うためのアクセス許可とサービスを作成するためのアクセス許可が必要です。Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • ご利用の Azure アカウントには、Azure サブスクリプションの所有者ロールが必要です。Your Azure account must have the Owner role in your Azure subscription.

  • 使用する Azure DevOps プロジェクトの管理者である必要があります。You must be an administrator in the Azure DevOps project you want to use.

Azure Pipelines (プレビュー) を構成するには、次のようにします。To configure Azure Pipelines (Preview):

  1. Azure portal の左側のナビゲーションで App Services を選択し、次に、デプロイする Web アプリを選択します。Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. アプリのページで、左側のメニューから [管理者用センター] を選択します。On the app page, select Deployment Center in the left menu.

  3. [ビルド プロバイダー] ページで [Azure Pipelines] (プレビュー) を選択し、 [続行] を選択します。On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

  4. [構成] ページの [コード] セクションで、次の手順を実行します。On the Configure page, in the Code section:

    • GitHub の場合、ドロップダウンから、継続的にデプロイする組織リポジトリ、およびブランチを選択します。For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      注意

      リポジトリが表示されない場合は、GitHub で Azure App Service を承認しなければならない場合があります。If you don't see any repositories, you may need to authorize Azure App Service in GitHub. GitHub リポジトリを参照し、 [設定] > [アプリケーション] > [Authorized OAuth Apps](認可された OAuth アプリ) の順に移動します。Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. [Azure App Service] を選択し、次に [許可](Grant) を選択します。Select Azure App Service, and then select Grant.

    • Azure Repos の場合、継続的にデプロイする Azure DevOps の組織プロジェクトリポジトリブランチを選択するか、新しい Azure DevOps 組織を構成します。For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously, or configure a new Azure DevOps organization.

      注意

      既存の Azure DevOps 組織が一覧に表示されていない場合は、お使いの Azure サブスクリプションにリンクしなければならない場合があります。If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. 詳細については、「CD リリース パイプラインを定義する」を参照してください。For more information, see Define your CD release pipeline.

  5. [続行] をクリックします。Select Continue.

  6. Azure Repos の場合、 [ビルド] セクションで、Azure Pipelines がビルド タスクを実行するために使用する言語フレームワークを指定して、 [続行] を選択します。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. [テスト] ページで、ロード テストを有効にするかどうかを選択し、 [続行] を選択します。On the Test page, choose whether to enable load tests, and then select Continue.

  8. App Service プランの価格レベルによっては、 [Deploy to staging](ステージングへのデプロイ) ページが表示される場合があります。Depending on your App Service plan pricing tier, you may see a Deploy to staging page. デプロイ スロットを有効にするかどうかを選択して、 [続行] を選択します。Choose whether to enable deployment slots, and then select Continue.

    注意

    Azure Pipelines では、運用スロットへの継続的デリバリーは許可されません。Azure Pipelines doesn't allow continuous delivery to the production slot. この制限により、運用環境への不測のデプロイが防止されます。This restriction prevents accidental deployments to production. ステージング スロットへの継続的デリバリーをセットアップし、そこで変更を検証して、準備ができたらスロットを交換します。Set up continuous delivery to a staging slot, verify the changes there, and then swap the slots when you are ready.

  9. ビルド プロバイダーを構成したら、 [概要] ページで設定を確認し、 [完了] を選択します。After you configure the build provider, review the settings on the Summary page, and then select Finish.

    選択したリポジトリおよびブランチでの新しいコミットが App Service アプリに継続的にデプロイされるようになりました。New commits in the selected repository and branch now deploy continuously into your App Service app. [管理者用センター] ページで、コミットとデプロイを追跡できます。You can track the commits and deployments on the Deployment Center page.

    管理者用センターでコミットとデプロイを追跡する

継続的なデプロイの無効化Disable continuous deployment

継続的なデプロイを無効にするには、アプリの [管理者用センター] ページの上部にある [切断] を選択します。To disable continuous deployment, select Disconnect at the top of your app's Deployment Center page.

継続的なデプロイの無効化

使用しているアプリはデプロイ中にどうなりますか?What happens to my app during deployment?

正式にサポートされているすべてのデプロイ方法は、アプリの /home/site/wwwroot フォルダー内のファイルに変更を加えます。All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. これらのファイルは、運用環境で実行されているのと同じファイルです。These files are the same ones that are run in production. したがって、ファイルがロックされているため、デプロイに失敗する可能性があります。Therefore, the deployment can fail because of locked files. すべてのファイルが同時に更新されるわけではないため、運用環境のアプリはデプロイ中に予期しない動作をすることもあります。The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. これらの問題を回避するにはいくつかの方法があります。There are a few different ways to avoid these issues:

サポートされていないリポジトリを使用するUse unsupported repos

Windows アプリの場合、ポータルで直接サポートされていないクラウド Git または Mecurial リポジトリ (GitLab など) からの継続的なデプロイを手動で構成できます。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. これを行うには、 [デプロイ センター] ページで [外部] ボックスを選択します。You do it by choosing the External box in the Deployment Center page. 詳細については、手動の手順を使用した継続的デプロイの設定に関するページを参照してください。For more information, see Set up continuous deployment using manual steps.

その他のリソースAdditional resources