Azure Functions のアプリケーション設定のリファレンス

関数アプリのアプリケーション設定には、その関数アプリのすべての関数に影響するグローバル構成オプションが含まれています。 ローカルで実行する場合、これらの設定は、ローカルの環境変数としてアクセスされます。 この記事では、関数アプリで使用できるアプリケーション設定の一覧を紹介します。

関数アプリの設定は、いくつかの方法で追加、更新、削除できます。

関数アプリの設定に変更を加えるためには、関数アプリを再起動する必要があります。

host.json ファイルと local.settings.json ファイルには、他のグローバル構成オプションもあります。

注意

アプリケーション設定を使用して、host.json ファイル自体を変更することなく、host.json 設定値をオーバーライドできます。 これは、特定の環境の特定の host.json 設定を構成または変更する必要がある場合に便利です。 これにより、プロジェクトを再発行しなくても、host.json 設定を変更できます。 詳細については、host.json のリファレンスに関する記事をご覧ください。 関数アプリの設定に変更を加えるためには、関数アプリを再起動する必要があります。

APPINSIGHTS_INSTRUMENTATIONKEY

Application Insights のインストルメンテーション キー。 APPINSIGHTS_INSTRUMENTATIONKEY または APPLICATIONINSIGHTS_CONNECTION_STRING のいずれかのみを使用してください。 Application Insights がソブリン クラウドで実行されている場合は、APPLICATIONINSIGHTS_CONNECTION_STRING を使用します。 詳細については、Azure Functions で監視を構成する方法に関するページを参照してください。

Key 値の例
APPINSIGHTS_INSTRUMENTATIONKEY 55555555-af77-484b-9032-64f83bb83bb

APPLICATIONINSIGHTS_CONNECTION_STRING

Application Insights の接続文字列。 次の場合は、APPINSIGHTS_INSTRUMENTATIONKEY ではなく APPLICATIONINSIGHTS_CONNECTION_STRING を使用します。

  • お使いの関数アプリで接続文字列を使用した追加のカスタマイズ サポートが必要な場合。
  • カスタム エンドポイントを必要とするソブリン クラウドで Application Insights インスタンスが実行されている場合。

詳細については、接続文字列に関するページを参照してください。

Key 値の例
APPLICATIONINSIGHTS_CONNECTION_STRING InstrumentationKey=[key];IngestionEndpoint=[url];LiveEndpoint=[url];ProfilerEndpoint=[url];SnapshotEndpoint=[url];

AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL

既定では、Functions プロキシは、ショートカットを使用して、同じ関数アプリ内の関数にプロキシから直接 API 呼び出しを送信します。 このショートカットは、新しい HTTP 要求を作成する代わりに使用されます。 この設定を使用すると、そのショートカット動作を無効にすることができます。

Key 説明
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL true ローカル関数アプリ内の関数を指すバックエンド URL を使用した呼び出しは、その関数に直接送信されません。 代わりに、要求は、関数アプリの HTTP フロントエンドに戻されます。
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL false ローカル関数アプリ内の関数を指すバックエンド URL を使用した呼び出しは、その関数に直接転送されます。 これが既定値です。

AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES

この設定は、文字 %2F がバックエンド URL に挿入されたときにこれをルート パラメーターでスラッシュとしてデコードするかどうかを制御します。

Key 説明
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES true エンコードされたスラッシュを含むルート パラメーターがデコードされます。
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES false すべてのルート パラメーターは変更されずに渡されます。これは既定の動作です。

たとえば、myfunction.com ドメインの関数アプリ用の proxies.json ファイルを考えてみます。

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "root": {
            "matchCondition": {
                "route": "/{*all}"
            },
            "backendUri": "example.com/{all}"
        }
    }
}

AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHEStrue に設定されている場合、URL example.com/api%2ftestexample.com/api/test に解決されます。 既定では、URL は example.com/test%2fapi のまま変更されません。 詳細については、Functions プロキシに関するページを参照してください。

AZURE_FUNCTIONS_ENVIRONMENT

Functions ランタイムのバージョン 2.x 以降では、ランタイム環境に基づいてアプリの動作を構成します。 この値は初期化時に読み取られ、任意の値に設定できます。 ランタイムによって受け入れられるのは、DevelopmentStaging、および Production の値のみです。 Azure での実行時にこのアプリケーション設定が存在しない場合、環境は Production と見なされます。 Azure のランタイム環境を Production 以外のものに変更する必要がある場合は、ASPNETCORE_ENVIRONMENT の代わりにこの設定を使用します。 ローカル コンピューターで実行している場合は、Azure Functions Core Tools により AZURE_FUNCTIONS_ENVIRONMENTDevelopment に設定されます。local.settings.json ファイルでこれをオーバーライドすることはできません。 詳細については、「環境別の起動のクラスとメソッド」を参照してください。

AzureFunctionsJobHost__*

Functions ランタイムのバージョン 2.x 以降では、現在の環境の host.json 設定をアプリケーション設定でオーバーライドできます。 これらのオーバーライドは、AzureFunctionsJobHost__path__to__setting という名前のアプリケーション設定として表されます。 詳細については、「host.json 値をオーバーライドする」を参照してください。

AzureWebJobsDashboard

ログの保存と、それらをポータルの [モニター] タブに表示する、オプションのストレージ アカウントの接続文字列です。 この設定は、Azure Functions ランタイムのバージョン 1.x を対象とするアプリに対してのみ有効です。 このストレージ アカウントは、blob、キュー、およびテーブルをサポートする汎用的なものである必要があります。 詳しくは、「ストレージ アカウントの要件」をご覧ください。

Key 値の例
AzureWebJobsDashboard DefaultEndpointsProtocol=https;AccountName=;AccountKey=

注意

より良いパフォーマンスとエクスペリエンスのために、ランタイムのバージョン 2.x 以降では、AzureWebJobsDashboard ではなく APPINSIGHTS_INSTRUMENTATIONKEY と App Insights を使用します。

AzureWebJobsDisableHomepage

true は、関数アプリのルート URL 用に表示される既定のランディング ページを無効にすることを意味します。 既定値は false です。

Key 値の例
AzureWebJobsDisableHomepage true

このアプリ設定を省略するか、false に設定した場合、URL <functionappname>.azurewebsites.net の応答に対し、次の例のようなものが表示されます。

関数アプリのランディング ページ

<a name="azurewebjobsdotnetreleasecompilation">AzureWebJobsDotNetReleaseCompilation

true は、.NET コードのコンパイルにリリース モードを使用することを意味し、false は、デバッグ モードを使用することを意味します。 既定値は true です。

Key 値の例
AzureWebJobsDotNetReleaseCompilation true

AzureWebJobsFeatureFlags

有効にするベータ機能のコンマ区切りの一覧です。 これらのフラグで有効となるベータ機能は本番には適しませんが、公開前の実験的な使用には有効にすることができます。

Key 値の例
AzureWebJobsFeatureFlags feature1,feature2

AzureWebJobsSecretStorageType

キーの保存に使用するリポジトリまたはプロバイダーを指定します。 現時点でサポートされているリポジトリは、BLOB ストレージ ("Blob") およびローカル ファイル システム ("Files") です。 既定では、バージョン 2 では BLOB、バージョン 1 ではファイル システムが使用されます。

Key 値の例
AzureWebJobsSecretStorageType ファイル

AzureWebJobsStorage

Azure Functions ランタイムでは、このストレージ アカウント接続文字列は通常の操作に使用されます。 このストレージ アカウントの使用方法としては、キー管理、タイマー トリガー管理、Event Hubs チェックポイントなどがあります。 このストレージ アカウントは、blob、キュー、およびテーブルをサポートする汎用的なものである必要があります。 「ストレージ アカウント」および「ストレージ アカウントの要件」を参照してください。

Key 値の例
AzureWebJobsStorage DefaultEndpointsProtocol=https;AccountName=[name];AccountKey=[key]

AzureWebJobs_TypeScriptPath

Typescript で使用されるコンパイラへのパスです。 必要に応じて、既定値はオーバーライドできます。

Key 値の例
AzureWebJobs_TypeScriptPath %HOME%\typescript

FUNCTION_APP_EDIT_MODE

Azure portal での編集が有効になっているかどうかを決定します。 有効な値は "readwrite" および "readonly" です。

Key 値の例
FUNCTION_APP_EDIT_MODE readonly

FUNCTIONS_EXTENSION_VERSION

関数アプリをホストする Functions ランタイムのバージョンです。 メジャー バージョンのチルダ (~) は、そのメジャー バージョンの最新バージョンを使用することを意味します (例: "~3")。 同じメジャー バージョンの新しいバージョンが使用できる場合、それらは関数アプリに自動的にインストールされています。 特定のバージョンにアプリを固定するには、完全なバージョン番号 (例: "3.0.12345") を使用します。 既定値は "~3" です。 ~1 の値は、アプリをバージョン 1.x のランタイムに固定します。 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」をご覧ください。

Key 値の例
FUNCTIONS_EXTENSION_VERSION ~3

FUNCTIONS_V2_COMPATIBILITY_MODE

この設定により、関数アプリはバージョン 3.x ランタイムでバージョン 2.x 互換モードで実行できるようになります。 この設定は、関数アプリをランタイムのバージョン 2.x から 3.x にアップグレードするときに問題が発生した場合にのみ使用してください。

重要

この設定は、アプリケーションをバージョン 3.x で正常に動作するように更新するときに、短期的な回避策としてのみ使用することを目的としています。 2.x ランタイムがサポートされている限り、この設定はサポートされます。 この設定を使用せずにバージョン 3.x でアプリを実行できない問題が発生した場合は、問題を報告してください。

FUNCTIONS_EXTENSION_VERSION~3 に設定する必要があります。

Key 値の例
FUNCTIONS_V2_COMPATIBILITY_MODE true

FUNCTIONS_WORKER_PROCESS_COUNT

言語ワーカー プロセスの最大数を指定します。既定値は 1 です。 許容される最大値は 10 です。 関数呼び出しは、言語ワーカー プロセス間で均等に分散されます。 言語ワーカー プロセスは、FUNCTIONS_WORKER_PROCESS_COUNT によって設定されたカウントに達するまで、10 秒ごとに生成されます。 複数の言語ワーカー プロセスの使用は、スケーリングと同じではありません。 CPU にバインドされた呼び出しと I/O にバインドされた呼び出しがワークロードに混在している場合は、この設定を使用することを検討してください。 この設定はすべての非 .NET 言語に適用されます。

Key 値の例
FUNCTIONS_WORKER_PROCESS_COUNT 2

FUNCTIONS_WORKER_RUNTIME

ワーカー ランタイムが関数アプリに読み込む言語。 これは、アプリケーションで使用されている言語に対応します (たとえば、dotnet)。 Azure Functions Runtime のバージョン 2.x 以降では、特定の関数アプリでサポートできる言語は 1 つだけです。

Key 値の例
FUNCTIONS_WORKER_RUNTIME node

有効な値:

言語
dotnet C# (クラス ライブラリ)
C# (スクリプト)
dotnet-isolated C# (分離プロセス)
java Java
node JavaScript
TypeScript
powershell PowerShell
python Python

MDMaxBackgroundUpgradePeriod

PowerShell 関数アプリの管理対象の依存関係のバックグラウンド更新期間を制御します。既定値は 7.00:00:00 (毎週) です。

各 PowerShell ワーカー プロセスは、そのプロセスの開始時に PowerShell ギャラリーでモジュールのアップグレードのチェックを開始し、その後は MDMaxBackgroundUpgradePeriod ごとにチェックします。 PowerShell ギャラリーで利用可能になった新しいモジュール バージョンは、ファイル システムにインストールされ、PowerShell ワーカーが使用できるになります。 この値を小さくすると、関数アプリは新しいモジュール バージョンを早く取得できますが、アプリ リソースの使用量 (ネットワーク I/O、CPU、ストレージ) も増加します。 この値を大きくすると、アプリ リソースの使用量は減少しますが、アプリへの新しいモジュール バージョンの配信が遅れる可能性があります。

Key 値の例
MDMaxBackgroundUpgradePeriod 7.00:00:00

詳細については、「依存関係の管理」を参照してください。

MDNewSnapshotCheckPeriod

管理対象の依存関係のアップグレードがインストールされているかどうかを各 PowerShell ワーカーが確認する頻度を指定します。 既定の頻度は 01:00:00 (毎時) です。

新しいモジュール バージョンがファイル システムにインストールされたら、すべての PowerShell ワーカー プロセスを再起動する必要があります。 PowerShell ワーカーを再起動すると、現在の関数の実行が中断される可能性があるため、アプリの可用性がその影響を受けます。 すべての PowerShell ワーカー プロセスが再起動されるまで、関数呼び出しでは、前のモジュール バージョンまたは新しいモジュール バージョンのいずれかが使用される可能性があります。 すべての PowerShell ワーカーの再起動は MDNewSnapshotCheckPeriod 以内に完了します。

MDNewSnapshotCheckPeriod 内で、PowerShell ワーカーにより、管理対象の依存関係のアップグレードがインストールされているかどうかが確認されます。 アップグレードがインストールされると、再起動が開始されます。 この値を大きくすると、再起動による中断の頻度は減少します。 ただし、大きくすることにより、関数呼び出しで古いまたは新しいモジュール バージョンが非決定的に使用される可能性がある期間が長くなる恐れもあります。

Key 値の例
MDNewSnapshotCheckPeriod 01:00:00

詳細については、「依存関係の管理」を参照してください。

MDMinBackgroundUpgradePeriod

管理対象の依存関係のアップグレードに関する前回のチェックの後、別のアップグレード チェックが開始されるまでの期間。既定値は 1.00:00:00 (毎日) です。

ワーカーの頻繁な再起動によってモジュールのアップグレードが過剰にならないように、任意のワーカーで直近 MDMinBackgroundUpgradePeriod 以内にモジュールのアップグレード確認が開始されているときは、その確認は行われません。

Key 値の例
MDMinBackgroundUpgradePeriod 1.00:00:00

詳細については、「依存関係の管理」を参照してください。

PIP_EXTRA_INDEX_URL

この設定の値は、Python アプリのカスタム パッケージ インデックス URL を示します。 この設定は、追加のパッケージ インデックスにあるカスタム依存関係を使用してリモート ビルドを実行する必要がある場合に使用します。

Key 値の例
PIP_EXTRA_INDEX_URL http://my.custom.package.repo/simple

詳細については、Python 開発者リファレンスの「カスタムの依存関係」を参照してください。

PYTHON_THREADPOOL_THREAD_COUNT

関数呼び出しを実行するために Python 言語ワーカーによって使用されるスレッドの最大数を指定します。Python バージョン 3.8 以前では、既定値 1 を使用します。 Python バージョン 3.9 以降では、値は None に設定されます。 この設定は、実行中に設定されるスレッドの数を保証するものではないことに注意してください。 この設定により、Python では、スレッドの数を指定された値に増やすことができます。 この設定は、Python 関数アプリにのみ適用されます。 また、この設定は、コルーチンではなく、同期関数の呼び出しに適用されます。

Key 値の例 最大値
PYTHON_THREADPOOL_THREAD_COUNT 2 32

SCALE_CONTROLLER_LOGGING_ENABLED

"この設定は現在プレビューの段階です。 "

この設定は、Azure Functions スケール コントローラーからのログ記録を制御します。 詳細については、スケール コントローラーのログに関するセクションを参照してください。

Key 値の例
SCALE_CONTROLLER_LOGGING_ENABLED AppInsights:Verbose

このキーの値は <DESTINATION>:<VERBOSITY> の形式で指定されます。これは次のように定義されます。

プロパティ 説明
<DESTINATION> ログの送信先。 有効な値は AppInsightsBlob です。
AppInsights を使用する場合は、関数アプリで Application Insights が有効になっていることを確認してください。
宛先を Blob に設定すると、AzureWebJobsStorage アプリケーション設定で設定されている既定のストレージ アカウントの azure-functions-scale-controller という名前の BLOB コンテナーにログが作成されます。
<VERBOSITY> ログ記録のレベルを指定します。 サポートされている値は、NoneWarning、および Verbose です。
Verbose に設定すると、スケール コントローラーは、すべてのワーカー数の変更の理由と、それらの決定の要因となるトリガーに関する情報をログに記録します。 詳細ログには、トリガー警告と、スケール コントローラーの実行前と実行後にトリガーによって使用されたハッシュが含まれます。

ヒント

スケール コントローラーのログを有効にしたままにすると、関数アプリの監視にかかるかもしれないコストに影響することに注意してください。 スケール コントローラーの動作を理解するのに十分なデータを収集するまでログ記録を有効にし、その後は無効にすることを検討してください。

WEBSITE_CONTENTAZUREFILECONNECTIONSTRING

Windows 上で実行されているイベント ドリブン スケーリング プランに関数アプリのコードと構成が格納されているストレージ アカウントの接続文字列です。 詳細については、「Function App を作成する」を参照してください。

Key 値の例
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING DefaultEndpointsProtocol=https;AccountName=[name];AccountKey=[key]

Windows 上で実行されている Premium プランまたは従量課金プランにデプロイする場合にのみ使用されます。 Linux を実行する従量課金プランではサポートされていません。 この設定を変更または削除すると、関数アプリが起動しなくなることがあります。 詳細については、こちらのトラブルシューティング記事を参照してください。

WEBSITE_CONTENTOVERVNET

Premium プランのみ。 1 の値を指定すると、ストレージ アカウントを仮想ネットワークに制限している場合に、関数アプリをスケーリングできます。 ストレージ アカウントを仮想ネットワークに制限する場合は、この設定を有効にする必要があります。 詳細については、「ストレージ アカウントを仮想ネットワークに制限する」を参照してください。

Key 値の例
WEBSITE_CONTENTOVERVNET 1

WEBSITE_CONTENTSHARE

Windows 上のイベント ドリブン スケーリング プラン内の関数アプリ コードと構成へのファイル パス。 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING と共に使用されます。 既定は、関数アプリ名で始まる一意文字列です。 「Function App を作成する」を参照してください。

Key 値の例
WEBSITE_CONTENTSHARE functionapp091999e2

Windows 上で実行されている Premium プランまたは従量課金プランにデプロイする場合にのみ使用されます。 Linux を実行する従量課金プランではサポートされていません。 この設定を変更または削除すると、関数アプリが起動しなくなることがあります。 詳細については、こちらのトラブルシューティング記事を参照してください。

デプロイ中に Azure Resource Manager テンプレートを使用して関数アプリを作成する場合、テンプレートに WEBSITE_CONTENTSHARE を含めないでください。 このアプリケーション設定はデプロイ中に生成されます。 詳細については、関数アプリのリソース デプロイを自動化する方法に関するページを参照してください。

WEBSITE_DNS_SERVER

IP アドレスの解決時にアプリによって使用される DNS サーバーを設定します。 この設定は、Azure DNS Private Zonesプライベート エンドポイントなど、特定のネットワーク機能を使用する場合に必要になることがよくあります。

Key 値の例
WEBSITE_DNS_SERVER 168.63.129.16

WEBSITE_ENABLE_BROTLI_ENCODING

圧縮のために既定の gzip 圧縮ではなく、Brotli エンコーディングが使用されるかどうかを制御します。 WEBSITE_ENABLE_BROTLI_ENCODING1 に設定されている場合は Brotli エンコーディングが使用され、それ以外の場合は gzip エンコーディングが使用されます。

WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT

アプリがスケールアウトできる最大のインスタンス数です。 既定は無制限です。

重要

この設定は、プレビューの段階です。 スケールアウトの制限に推奨される、関数で最大にスケールアウトするためのアプリ プロパティが追加されています。

Key 値の例
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 5

WEBSITE_NODE_DEFAULT_VERSION

"Windows のみ"。
Windows で関数アプリを実行するときに使用する Node.js のバージョンを設定します。 チルダ (~) を使用して、ランタイムがターゲット メジャー バージョンの利用可能な最新バージョンを使用するようにする必要があります。 たとえば、~10 に設定すると、最新バージョンの Node.js 10 が使用されます。 メジャー バージョンがチルダ付きで対象になっている場合は、マイナー バージョンを手動で更新する必要はありません。

Key 値の例
WEBSITE_NODE_DEFAULT_VERSION ~10

WEBSITE_RUN_FROM_PACKAGE

マウントされたパッケージ ファイルから関数アプリを実行できるようにします。

Key 値の例
WEBSITE_RUN_FROM_PACKAGE 1

有効な値は、展開パッケージ ファイルの場所に解決される URL、または 1 です。 1 に設定した場合、パッケージは d:\home\data\SitePackages フォルダーに存在する必要があります。 この設定で zip デプロイを使用すると、パッケージは自動的にこの場所にアップロードされます。 プレビューでは、この設定は WEBSITE_RUN_FROM_ZIP という名前でした。 詳細については、パッケージ ファイルからの関数の実行に関するページを参照してください。

WEBSITE_TIME_ZONE

関数アプリのタイムゾーンを設定できます。

Key OS 値の例
WEBSITE_TIME_ZONE Windows 東部標準時
WEBSITE_TIME_ZONE Linux America/New_York

CRON 式で使用する既定のタイム ゾーンは、協定世界時 (UTC) です。 別のタイム ゾーンに基づく CRON 式を使うには、Function App 用に WEBSITE_TIME_ZONE という名前のアプリ設定を作成します。

この設定の値は、関数アプリを実行するオペレーティング システムとプランによって異なります。

オペレーティング システム プラン
Windows All Windows コマンド tzutil.exe /L によって指定された各ペアの 2 行目に指定されているように、この値を目的のタイム ゾーンの名前に設定します。
Linux Premium
専用
この値を、tz データベースに関するページに示されている目的のタイム ゾーンの名前に設定します。

注意

Linux 従量課金プランでは、現在 WEBSITE_TIME_ZONE はサポートされていません。

たとえば、米国の東部標準時 (Eastern Standard Time (Windows) または America/New_York (Linux)) では現在、標準時では UTC-05:00、夏時間では UTC-04:00 を使用します。 タイマー トリガーが毎日東部標準時の午前 10 時に発生するように設定するには、関数アプリのアプリ設定を WEBSITE_TIME_ZONE という名前で作成し、その値を Eastern Standard Time (Windows) または America/New_York (Linux) に設定して、次の NCRONTAB 式を使用します。

"0 0 10 * * *"

WEBSITE_TIME_ZONE を使用すると、夏時間などの特定のタイムゾーンでの時間変更や標準時での変更に対応するように、時刻が調整されます。

WEBSITE_VNET_ROUTE_ALL

アプリからのすべての送信トラフィックが仮想ネットワーク経由でルーティングされるかどうかを示します。 設定値が 1 の場合は、すべてのトラフィックが仮想ネットワーク経由でルーティングされることを示します。 リージョンでの仮想ネットワーク統合の機能を使用する場合は、この設定が必要です。 また、仮想ネットワーク NAT ゲートウェイを使用して静的な送信 IP アドレスを定義する場合にも使用されます。

Key 値の例
WEBSITE_VNET_ROUTE_ALL 1

次のステップ

アプリケーション設定の更新方法

host.json ファイルのグローバル設定を参照する

App Service アプリの他のアプリ設定を参照する