Azure Functions をパッケージ ファイルから実行するRun your Azure Functions from a package file

Azure では、関数アプリのデプロイ パッケージ ファイルから、関数を直接実行できます。In Azure, you can run your functions directly from a deployment package file in your function app. 他のオプションは、関数アプリの d:\home\site\wwwroot ディレクトリ内のファイルをデプロイすることです。The other option is to deploy your files in the d:\home\site\wwwroot directory of your function app.

この記事では、パッケージから関数を実行するメリットについて説明します。This article describes the benefits of running your functions from a package. 関数アプリでこの機能を有効にする方法も示します。It also shows how to enable this functionality in your function app.

パッケージ ファイルから実行することのメリットBenefits of running from a package file

パッケージ ファイルからの実行には、さまざまなメリットがあります。There are several benefits to running from a package file:

  • ファイル コピー ロック問題のリスクを軽減します。Reduces the risk of file copy locking issues.
  • 運用環境のアプリにデプロイできます (再起動が必要です)。Can be deployed to a production app (with restart).
  • アプリで実行されるファイルを確定できます。You can be certain of the files that are running in your app.
  • Azure Resource Manager デプロイのパフォーマンスが向上します。Improves the performance of Azure Resource Manager deployments.
  • 特に大規模な npm パッケージのツリーの JavaScript 関数の場合、コールド スタート時間を減らすことができます。May reduce cold-start times, particularly for JavaScript functions with large npm package trees.

詳細については、こちらのお知らせをご覧ください。For more information, see this announcement.

パッケージから関数を実行できるようにするEnabling functions to run from a package

関数アプリをパッケージから実行できるようにするには、WEBSITE_RUN_FROM_PACKAGE 設定を関数アプリの設定に追加するだけです。To enable your function app to run from a package, you just add a WEBSITE_RUN_FROM_PACKAGE setting to your function app settings. WEBSITE_RUN_FROM_PACKAGE 設定には次のいずれかの値を指定できます。The WEBSITE_RUN_FROM_PACKAGE setting can have one of the following values:

Value 説明Description
1 Windows 上で実行される関数アプリでは、推奨されています。Recommended for function apps running on Windows. 関数アプリの d:\home\data\SitePackages フォルダー内のパッケージ ファイルから実行します。Run from a package file in the d:\home\data\SitePackages folder of your function app. Zip 配置を使って配置しない場合、このオプションでは、フォルダー内に packagename.txt という名前のファイルも含む必要があります。If not deploying with zip deploy, this option requires the folder to also have a file named packagename.txt. このファイルには、フォルダー内のパッケージ ファイルの空白なしの名前のみが含まれます。This file contains only the name of the package file in folder, without any whitespace.
<URL> 実行する特定のパッケージ ファイルの場所。Location of a specific package file you want to run. Blob Storage を使用する場合は、Shared Access Signature (SAS) 付きのプライベート コンテナーを使用して、Functions ランタイムがパッケージにアクセスできるようにする必要があります。When using Blob storage, you should use a private container with a Shared Access Signature (SAS) to enable the Functions runtime to access to the package. Azure Storage Explorer を使用して、パッケージ ファイルを Blob Storage アカウントにアップロードします。You can use the Azure Storage Explorer to upload package files to your Blob storage account. また、URL を指定するとき、更新済みのパッケージを発行した後にトリガーを同期する必要もあります。When you specify a URL, you must also sync triggers after you publish an updated package.


Windows 上で関数アプリを実行する場合、外部 URL のオプションではコールド スタートのパフォーマンスが悪化します。When running a function app on Windows, the external URL option yields worse cold-start performance. 関数アプリを Windows にデプロイするときは、WEBSITE_RUN_FROM_PACKAGE1 に設定して、zip 配置によって発行する必要があります。When deploying your function app to Windows, you should set WEBSITE_RUN_FROM_PACKAGE to 1 and publish with zip deployment.

Azure Blob torage でホストされている .zip ファイルから実行するように構成された関数アプリを次に示します。The following shows a function app configured to run from a .zip file hosted in Azure Blob storage:



現時点では、.zip パッケージ ファイルのみがサポートされています。Currently, only .zip package files are supported.

zip デプロイとの統合Integration with zip deployment

Zip デプロイは、関数アプリ プロジェクトを wwwroot ディレクトリに配置することを可能にする Azure App Service の機能です。Zip deployment is a feature of Azure App Service that lets you deploy your function app project to the wwwroot directory. プロジェクトは、.zip デプロイ ファイルとしてパッケージ化されます。The project is packaged as a .zip deployment file. 同じ API を使用して、パッケージを d:\home\data\SitePackages フォルダーに配置できます。The same APIs can be used to deploy your package to the d:\home\data\SitePackages folder. WEBSITE_RUN_FROM_PACKAGE アプリ設定が値 1 の場合、zip デプロイ API は、ファイルを d:\home\site\wwwroot 抽出する代わりに、パッケージを d:\home\data\SitePackages フォルダーにコピーします。With the WEBSITE_RUN_FROM_PACKAGE app setting value of 1, the zip deployment APIs copy your package to the d:\home\data\SitePackages folder instead of extracting the files to d:\home\site\wwwroot. それは、packagename.txt ファイルも作成します。It also creates the packagename.txt file. 再起動後、パッケージは読み取り専用のファイルシステムとして wwwroot にマウントされます。After a restart, the package is mounted to wwwroot as a read-only filesystem. zip デプロイの詳細については、Azure Functions の zip デプロイに関する記事を参照してください。For more information about zip deployment, see Zip deployment for Azure Functions.


デプロイが行われると、関数アプリの再起動がトリガーされます。When a deployment occurs, a restart of the function app is triggered. 再起動する前に、既存のすべての関数の実行に完了またはタイムアウトが許可されます。詳細については、「デプロイ動作」を参照してください。Before a restart, all existing function executions are allowed to complete or time out. To learn more, see Deployment behaviors.


関数アプリの設定は、いくつかの方法で追加、更新、削除できます。There are several ways that you can add, update, and delete function app settings:


  • パッケージから実行すると wwwroot が読み取り専用になるので、このディレクトリにファイルを書き込むときにエラーを受け取ります。Run From Package makes wwwroot read-only, so you will receive an error when writing files to this directory.
  • tar および gzip 形式はサポートされていません。Tar and gzip formats are not supported.
  • この機能はローカル キャッシュでは構成されません。This feature does not compose with local cache.
  • コールドスタートのパフォーマンスを向上するには、ローカルの Zip オプション (WEBSITE_RUN_FROM_PACKAGE = 1) を使用します。For improved cold-start performance, use the local Zip option (WEBSITE_RUN_FROM_PACKAGE=1).
  • パッケージからの実行は、デプロイ カスタマイズ オプション (SCM_DO_BUILD_DURING_DEPLOYMENT=true) と互換性がありません。ビルド ステップは、デプロイの間に無視されます。Run From Package is incompatible with deployment customization option (SCM_DO_BUILD_DURING_DEPLOYMENT=true), the build step will be ignored during deployment.

次のステップNext steps