Azure Functions バインド拡張機能を登録する

Azure Functions バージョン 2.x 以降では、Functions ランタイムには既定で HTTP とタイマー トリガーのみが含まれています。 その他のトリガーとバインドは、個別のパッケージとして提供されます。

.NET クラス ライブラリ関数アプリでは、プロジェクトに NuGet パッケージとしてインストールされているバインドが使用されます。 拡張機能バンドルを使用すると、.NET 関数アプリ以外で、.NET インフラストラクチャを扱うことなく同じバインドを使用できるようになります。

次の表に、バインディングを登録するタイミングと方法を示します。

開発環境 登録
(Functions 1.x)
登録
(Functions 2.x 以降)
Azure portal 自動 自動*
.NET 以外の言語 自動 拡張機能バンドル を使用する(推奨) または明示的に拡張機能をインストールする
Visual Studio を使用する C# クラス ライブラリ NuGet ツールを使用 NuGet ツールを使用
Visual Studio Code を使用する C# クラス ライブラリ 該当なし .NET Core CLI を使用

*ポータルでは、C# スクリプトを含む拡張機能バンドルが使用されます。

拡張機能のバンドル

既定では、拡張機能バンドルは、Java、JavaScript、PowerShell、Python、C# スクリプト、およびカスタム ハンドラー関数アプリによって、バインド拡張機能を操作するために使用されます。 拡張機能バンドルを使用できない場合は、関数アプリ プロジェクトでバインド拡張機能を明示的にインストールできます。 拡張機能バンドルは、バージョン 2.x 以降のバージョンの Functions ランタイムでサポートされています。

拡張機能バンドルは、互換性のあるバインド拡張機能の定義済みのセットを関数アプリに追加する方法です。 拡張機能バンドルはバージョン管理されています。 各バージョンには、連携して機能することが確認された特定のバインド拡張機能のセットが含まれています。 バンドルのバージョンは、アプリで必要な拡張機能に基づいて選択します。

ツールまたはポータルから non-.NET Functions プロジェクトを作成すると、拡張機能バンドルはアプリの host.json ファイルで既に有効になっています。

拡張バンドル参照は、extensionBundlehost.json セクションで次のように定義されます。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

extensionBundle では次のプロパティを使用できます。

プロパティ 説明
id Microsoft Azure Functions 拡張機能バンドルの名前空間。
version インストールするバンドルのバージョン範囲。 Functions ランタイムは常に、バージョン範囲 (間隔) で定義された最大許容バージョンを選択します。 たとえば、値の[4.0.0, 5.0.0)範囲をversion指定すると、4.0.0 から 5.0.0 までのすべてのバンドル バージョンが許可されますが、5.0.0 は含まれません。 詳細については、バージョン範囲を指定する間隔の表記に関する説明を参照してください。

次の表に、現在使用可能な既定の Microsoft.Azure.Functions.ExtensionBundle バンドルのバージョン範囲、およびそれらに含まれる拡張機能へのリンクを示します。

バンドルのバージョン host.json でのバージョン 含まれる拡張機能
1.x [1.*, 2.0.0) バンドルを生成するために使用される extensions.json を参照してください。
2.x [2.*, 3.0.0) バンドルを生成するために使用される extensions.json を参照してください。
3.x [3.3.0, 4.0.0) バンドルを生成するために使用される extensions.json を参照してください。
4.x [4.0.0, 5.0.0) バンドルを生成するために使用される extensions.json を参照してください。

Note

host.json では version のカスタム範囲がサポートされていますが、このテーブルのバージョン範囲値 ([4.0.0, 5.0.0) など) を使用する必要があります。

拡張機能を明示的にインストールする

コンパイルされた C# クラス ライブラリ プロジェクト (インプロセスおよび分離ワーカー プロセス) の場合、通常どおりに必要な拡張機能の NuGet パッケージをインストールします。 例については、「Visual Studio Code 開発者ガイド」または「Visual Studio 開発者ガイド」を参照してください。

non-.NET 言語と C# スクリプトで、拡張機能バンドルを使用できない場合は、必要なバインド拡張機能をローカル プロジェクトに手動でインストールする必要があります。 最も簡単な方法は、Azure Functions Core Tools を使用することです。 詳細については、func 拡張機能のインストールに関する記事を参照してください。

ポータルのみの開発では、関数アプリのルートに extensions.csproj ファイルを手動で作成する必要があります。 詳細については、「拡張機能を手動でインストールする」を参照してください。

次のステップ