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

Azure Functions を利用すると、App Service の継続的インテグレーションを使用して、関数アプリを簡単にデプロイできます。Azure Functions makes it easy to deploy your function app using App Service continuous integration. Functions は、BitBucket、Dropbox、GitHub、および Visual Studio Team Services (VSTS) と統合されています。Functions integrates with BitBucket, Dropbox, GitHub, and Visual Studio Team Services (VSTS). これにより、関数コードの更新がこれらの統合されたサービスのいずれかを使用して行われるワークフローで、Azure へのデプロイをトリガーできるようになります。This enables a workflow where function code updates made by using one of these integrated services trigger deployment to Azure. Azure Functions に慣れていない場合は、「 Azure Functions の概要」から始めてください。If you are new to Azure Functions, start with Azure Functions Overview.

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

デプロイは関数アプリごとに構成されます。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.

継続的なデプロイの要件Continuous deployment requirements

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

特定関数アプリのすべての関数のコードは、ホスト構成ファイルおよび 1 つまたは複数のサブフォルダーを含むルート フォルダーに格納され、次の例に示すように、各フォルダーには関数ごとのコードが含まれます。The code for all of the functions in a given function app lives in a root folder that contains a host configuration file and one or more subfolders, each of which contain the code for a separate function, as in the following example:

wwwroot
 | - host.json
 | - mynodefunction
 | | - function.json
 | | - index.js
 | | - node_modules
 | | | - ... packages ...
 | | - package.json
 | - mycsharpfunction
 | | - function.json
 | | - run.csx

host.json ファイルにはランタイム固有の構成が含まれ、関数アプリのルート フォルダーに格納されています。The host.json file contains some runtime-specific configuration and sits in the root folder of the function app. 利用可能な設定に関する詳細については、host.json リファレンスのページを参照してください。For information on settings that are available, see host.json reference.

各関数には、1 つまたは複数のコード ファイル、function.json 構成、およびその他の依存関係を含むフォルダーが割り当てられています。Each function has a folder that contains one or more code files, the function.json configuration and other dependencies.

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

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

  1. Azure Portal の関数アプリで、[プラットフォーム機能][展開オプション] をクリックします。In your function app in the Azure portal, click Platform features and Deployment options.

    継続的なデプロイの設定

  2. 次に、[デプロイ] ブレードで [セットアップ] をクリックします。Then in the Deployments blade click Setup.

    継続的なデプロイの設定

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

    デプロイ ソースの選択

継続的なデプロイを構成した後は、デプロイ ソース内のすべてのファイル変更が関数アプリにコピーされ、完全なサイトのデプロイがトリガーされます。After continuous deployment is configured, 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 options

一般的なデプロイ シナリオを次に示します。The following are some typical deployment scenarios:

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

関数アプリはデプロイ スロットをまだサポートしていません。Function Apps doesn't yet support deployment slots. ただし、継続的インテグレーションを使用して、個別のステージング環境と運用環境のデプロイを管理できます。However, 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. ステージング環境の関数アプリでこの手順を繰り返しますが、代わりに GitHub リポジトリ内のステージング環境の分岐を選択します。Repeat this step 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, then verify that those changes are reflected in the staging deployment.

  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 existing function code files using FTP or the local Git repository before you can set up continuous deployment as described above. これは関数アプリの App Service の設定で行うことができます。You can do this in the App Service settings for your function app. ファイルをダウンロードした後は、選択した継続的なデプロイ ソースにアップロードできます。After your files are downloaded, you can upload them to your chosen continuous deployment source.

注意

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

方法: デプロイ資格情報の構成How to: Configure deployment credentials

FTP またはローカル Git リポジトリで関数アプリからファイルをダウンロードする前に、サイトにアクセスするための資格情報を構成する必要があります。Before you can download files from your function app with FTP or 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, click Platform features and Deployment credentials.

    ローカル デプロイ資格情報の設定

  2. ユーザー名とパスワードを入力し、 [保存]をクリックします。Type in a username and password, then click Save. これでこれらの資格情報を使用して、FTP または組み込みの Git リポジトリから関数アプリにアクセスできます。You can now use these credentials to access your function app from FTP or the built-in Git repo.

方法: FTP を使用したファイルのダウンロードHow to: Download files using FTP

  1. Azure Portal の関数アプリで、[プラットフォーム機能][プロパティ] をクリックし、FTP/デプロイ ユーザーFTP ホスト名、および FTPS ホスト名の値をコピーします。In your function app in the Azure portal, click Platform features and Properties, 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 you gathered to connect to your app and download the source files for your functions.

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

  1. Azure Portal の関数アプリで、[プラットフォーム機能][展開オプション] をクリックします。In your function app in the Azure portal, click Platform features and Deployment options.

    継続的なデプロイの設定

  2. 次に、[デプロイ] ブレードで [セットアップ] をクリックします。Then in the Deployments blade click Setup.

    継続的なデプロイの設定

  3. [展開元] ブレードで [ローカル Git リポジトリ][OK] の順にクリックします。In the Deployment source blade, click Local Git repository and then click OK.

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

    継続的なデプロイの設定

  5. Git 対応のコマンド プロンプトまたはお気に入りの Git ツールを使用して、ローカル コンピューターにリポジトリを複製します。Clone the repository on your local machine 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