Azure Functions の継続的なデプロイContinuous deployment for Azure Functions

Azure Functions を利用すると、継続的インテグレーションを使用して、関数アプリを簡単にデプロイできます。Azure Functions makes it easy to deploy your function app by using continuous integration. Functions は、主要なコード リポジトリおよびデプロイ ソースと統合します。Functions integrates with major code repositories and deployment sources. この統合により、関数コードの更新がこれらのサービスのいずれかによって行われるワークフローで、Azure へのデプロイをトリガーできるようになります。This integration enables a workflow where function code updates made through one of these services trigger deployment to Azure. Azure Functions を初めて使う場合は、最初に「Azure Functions の概要」をご覧ください。If you're new to Azure Functions, start with the Azure Functions overview.

複数の頻繁に発生する投稿を統合する場合、継続的なデプロイはプロジェクトに最適なオプションとなります。Continuous deployment is a great option for projects where you're integrating multiple and frequent contributions. また、関数コードのソース管理を維持することもできます。It also lets you maintain source control on your function code. Azure Functions では次のデプロイ ソースがサポートされています。Azure Functions supports the following deployment sources:

デプロイは関数アプリごとに構成されます。Deployments are configured on a per-function app basis. 継続的なデプロイが有効になると、 ポータル内の関数コードへのアクセスは、 読み取り専用に設定されます。After continuous deployment is enabled, access to function code in the portal is set to read-only.

継続的なデプロイの要件Requirements for continuous deployment

継続的なデプロイを設定する前に、デプロイ ソースを構成し、そのデプロイ ソースに関数コードを追加する必要があります。Before you set up continuous deployment, you must have your deployment source configured and your function code in the deployment source. 関数アプリのデプロイでは、各関数は名前付きサブディレクトリに存在します。その場合のディレクトリ名は、関数の名前です。In a function app deployment, each function is in a named subdirectory, where the directory name is the name of the function.

特定の関数アプリ内のすべての関数のコードは、ホスト構成ファイルと 1 つ以上のサブフォルダーを含むルート プロジェクト フォルダーにあります。The code for all the functions in a specific function app is located in a root project folder that contains a host configuration file and one or more subfolders. 各サブフォルダーには、次の図のように、個別の関数のコードが含まれています。Each subfolder contains the code for a separate function, as in the following representation:

FunctionApp
 | - host.json
 | - Myfirstfunction
 | | - function.json
 | | - ...  
 | - mysecondfunction
 | | - function.json
 | | - ...  
 | - SharedCode
 | - bin

Functions ランタイムのバージョン 2.x では、関数アプリ内のすべての関数が同じ言語ワーカーを共有する必要があります。In version 2.x of the Functions runtime, all functions in the function app must share the same language worker.

host.json ファイルにはランタイム固有の構成が含まれています。このファイルは関数アプリのルート フォルダーにあります。The host.json file, which contains some runtime-specific configurations, is in the root folder of the function app. bin フォルダーには、関数アプリに必要なパッケージやその他のライブラリ ファイルが保存されています。A bin folder contains packages and other library files required by the function app. 関数アプリ プロジェクトの言語固有の要件を参照してください。See the language-specific requirements for a function app project:

Azure DevOps からデプロイできるようにするには、まず、Azure サブスクリプションに Azure DevOps 組織をリンクする必要があります。To be able to deploy from Azure DevOps, you must first link your Azure DevOps organization with your Azure subscription. 詳しくは、「Set up billing for your Azure DevOps organization」(Azure DevOps 組織の課金の設定) をご覧ください。For more information, see Set up billing for your Azure DevOps organization.

Azure App Service での GIT による継続的なデプロイSet up continuous deployment

既存の関数アプリの継続的なデプロイを構成するには、次の手順に従います。Use this procedure to configure continuous deployment for an existing function app. この手順は、GitHub リポジトリとの統合を示しますが、Azure DevOps またはその他のデプロイ サービスに対しても同様の手順が適用されます。These steps demonstrate integration with a GitHub repository, but similar steps apply for Azure DevOps or other deployment services.

  1. Azure portal の関数アプリで、 [プラットフォーム機能] > [デプロイ オプション] を選択します。In your function app in the Azure portal, select Platform features > Deployment options.

    デプロイ オプションを開くための選択

  2. [デプロイ] ブレードで [セットアップ] を選択します。On the Deployments blade, select Setup.

    [デプロイ] ブレード

  3. [展開元] ブレードで、 [ソースの選択] を選択します。On the Deployment source blade, select Choose source. 選択したデプロイ ソースの情報を入力し、 [OK] を選択します。Fill in the information for your chosen deployment source, and then select OK.

    デプロイ ソースの選択

継続的なデプロイを設定した後は、デプロイ ソース内のすべてのファイル変更が関数アプリにコピーされ、完全なサイトのデプロイがトリガーされます。After you set up continuous deployment, all file changes in your deployment source are copied to the function app and a full site deployment is triggered. ソース内のファイルが更新されると、サイトは再デプロイされます。The site is redeployed when files in the source are updated.

デプロイメント シナリオDeployment scenarios

一般的なデプロイ シナリオには、ステージング デプロイの作成と、継続的なデプロイへの既存の関数の移動が含まれます。Typical deployment scenarios include creating a staging deployment and moving existing functions to continuous deployment.

ステージング環境のデプロイの作成Create a staging deployment

関数アプリではデプロイ スロットはまだサポートされていません。Function apps don't yet support deployment slots. ただし、継続的インテグレーションを使用して、個別のステージング環境と運用環境のデプロイを管理できます。But you can still manage separate staging and production deployments by using continuous integration.

ステージング環境のデプロイを構成し、使用するプロセスは、一般的には次のようになります。The process to configure and work with a staging deployment looks generally like this:

  1. サブスクリプションで運用コード用とステージング用の 2 つの関数アプリを作成します。Create two function apps in your subscription: one for the production code and one for staging.

  2. 既にお持ちでない場合は、デプロイ ソースを作成します。Create a deployment source, if you don't already have one. この例では、GitHub を使用します。This example uses GitHub.

  3. 運用環境の関数アプリでは、前述の「継続的なデプロイの設定」の手順を完了し、GitHub リポジトリのマスター分岐にデプロイ分岐を設定します。For your production function app, complete the preceding steps in Set up continuous deployment and set the deployment branch to the master branch of your GitHub repository.

    デプロイ分岐を選択するオプション

  4. ステージング環境の関数アプリでステップ 3 を繰り返しますが、代わりに GitHub リポジトリ内のステージング分岐を選択します。Repeat step 3 for the staging function app, but choose the staging branch instead in your GitHub repo. デプロイ ソースが分岐をサポートしていない場合は、別のフォルダーを使用します。If your deployment source doesn't support branching, use a different folder.

  5. ステージング環境の分岐またはフォルダーのコードに対して更新を行ってから、ステージング デプロイでそれらの変更が反映されていることを確認します。Make updates to your code in the staging branch or folder, and then verify that the staging deployment reflects those changes.

  6. テストした後、マージはステージング環境の分岐からマスター分岐に変更されます。After testing, merge changes from the staging branch into the master branch. このマージにより、運用環境の関数アプリへのデプロイがトリガーされます。This merge triggers deployment to the production function app. デプロイ ソースが分岐をサポートしていない場合は、ステージング環境のフォルダーから運用環境のフォルダー内のファイルを上書きします。If your deployment source doesn't support branches, overwrite the files in the production folder with the files from the staging folder.

継続的なデプロイへの既存の関数の移動Move existing functions to continuous deployment

ポータル内で作成および保持した既存の関数がある場合は、FTP またはローカルの Git リポジトリを使用して、関数コードをダウンロードする必要があります。その後、上記で説明したように継続的なデプロイを設定することができます。When you have existing functions that you have created and maintained in the portal, you need to download your function code files by using FTP or the local Git repository before you can set up continuous deployment as described earlier. これは関数アプリの Azure App Service の設定で行うことができます。You can do this in the Azure App Service settings for your function app. ファイルをダウンロードした後は、選択した継続的なデプロイ ソースにそれらをアップロードできます。After you download the files, you can upload them to your chosen continuous deployment source.

注意

継続的インテグレーションを構成した後は、Functions のポータルでソース ファイルを編集することはできなくなります。After you configure continuous integration, you can no longer edit your source files in the Functions portal.

デプロイ資格情報の構成Configure deployment credentials

FTP またはローカル Git リポジトリを使用して関数アプリからファイルをダウンロードする前に、サイトにアクセスするための資格情報を構成する必要があります。Before you can download files from your function app by using FTP or a local Git repository, you must configure your credentials to access the site. 資格情報は関数アプリ レベルで設定されます。Credentials are set at the function app level. 以下の手順に従って、Azure Portal でデプロイ資格情報を設定します。Use the following steps to set deployment credentials in the Azure portal:

  1. Azure portal の関数アプリで、 [プラットフォーム機能] > [デプロイ資格情報] を選択します。In your function app in the Azure portal, select Platform features > Deployment credentials.

  2. ユーザー名とパスワードを入力し、 [保存] を選択します。Enter a username and password, and then select Save.

    ローカル デプロイ資格情報を設定するための選択

これでこれらの資格情報を使用して、FTP または組み込みの Git リポジトリから関数アプリにアクセスできます。You can now use these credentials to access your function app from FTP or the built-in Git repo.

FTP を使用してファイルをダウンロードするDownload files by using FTP

  1. Azure portal の関数アプリで、 [プラットフォーム機能] > [プロパティ] を選択します。In your function app in the Azure portal, select Platform features > Properties. 次に、 [FTP/デプロイ ユーザー][FTP ホスト名] 、および [FTPS ホスト名] の値をコピーします。Then, copy the values for FTP/Deployment User, FTP Host Name, and FTPS Host Name.

    [FTP/デプロイ ユーザー] には、FTP サーバーに適切なコンテキストを提供するために、ポータルに表示されているとおり、アプリ名を含めて入力してください。FTP/Deployment User must be entered as displayed in the portal, including the app name, to provide proper context for the FTP server.

    デプロイ情報を取得するための選択

  2. FTP クライアントから、収集した接続情報を使用してアプリに接続し、関数のソース ファイルをダウンロードします。From your FTP client, use the connection information that you gathered to connect to your app and download the source files for your functions.

ローカルの Git リポジトリを使用したファイルのダウンロードDownload files by using a local Git repository

  1. Azure portal の関数アプリで、 [プラットフォーム機能] > [デプロイ オプション] を選択します。In your function app in the Azure portal, select Platform features > Deployment options.

    デプロイ オプションを開くための選択

  2. 次に、 [デプロイ] ブレードで [セットアップ] を選択します。Then on the Deployments blade, select Setup.

    [デプロイ] ブレード

  3. [展開元] ブレードで、 [ローカル Git リポジトリ] > [OK] を選択します。On the Deployment source blade, select Local Git repository > OK.

  4. [プラットフォーム機能] で、 [プロパティ] を選択し、Git URL の値をメモします。In Platform features, select Properties and note the value of the Git URL.

    Git URL を取得するための選択

  5. Git 対応のコマンド プロンプトまたはお気に入りの Git ツールを使用して、ローカル コンピューターにリポジトリを複製します。Clone the repository on your local machine by using a Git-aware command prompt or your favorite Git tool. Git clone コマンドは、次のようになります。The Git clone command looks like this:

     git clone https://username@my-function-app.scm.azurewebsites.net:443/my-function-app.git
    
  6. 次の例のように、関数アプリからローカル コンピューター上のクローンにファイルをフェッチします。Fetch files from your function app to the clone on your local computer, as in the following example:

     git pull origin master
    

    要求された場合は、構成されたデプロイ資格情報を入力します。If requested, supply your configured deployment credentials.

次の手順Next steps