Azure Functions における Azure Tables のバインド
Azure Functions はトリガーとバインドを使用して Azure Tables と統合されます。 Azure Tables との統合により、Azure Cosmos DB for Table および Azure Table Storage を使用してデータを読み書きする関数を構築できます。
アクション | Type |
---|---|
関数でテーブル データを読み取る | 入力バインド |
関数からテーブル データを書き込めるようにする | 出力バインド |
拡張機能のインストール
インストールする拡張機能 NuGet パッケージは、関数アプリで使用している C# モードによって異なります。
関数は Functions ホストと同じプロセスで実行されます。 詳細については、「Azure Functions を使用する C# クラス ライブラリ関数を開発する」を参照してください。
このモデルの一部では、主に C# ポータルの編集のためにサポートされている C# スクリプトを使用して Functions を実行できます。 関数アプリを再発行せずに、ポータルで実行中の C# スクリプト アプリのために既存のバインド拡張機能を更新するには、拡張機能の更新に関するページを参照してください。
拡張機能をインストールするプロセスは、拡張機能のバージョンによって異なります。
このセクションでは、クラス ライブラリの使用について説明します。 C# スクリプトについては、代わりにバージョン 4.x の拡張機能バンドルをインストールする必要があります。
このバージョンでは、シークレットではなく ID を使用して接続する機能が導入されています。 マネージド ID を使用して関数アプリを構成するチュートリアルについては、ID ベースの接続を使用した関数アプリの作成に関 するチュートリアルを参照してください。
このバージョンでは、Azure.Data.Tables
からの型にバインドできます。 また、Azure Cosmos DB for Table を使用する機能も導入されています。
この拡張機能を使用するには、BLOB とキューのために拡張機能のバージョン 5.x 以降を使用するプロジェクトに、Microsoft.Azure.WebJobs.Extensions.Tables NuGet パッケージをインストールします。
.NET CLI の使用
# Install the Azure Tables extension
dotnet add package Microsoft.Azure.WebJobs.Extensions.Tables --version 1.0.0
# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage --version 5.0.0
注意
Azure BLOB、Azure キュー、Azure テーブルでは、個別の拡張機能が使用され、個別に参照されるようになりました。 たとえば、.NET インプロセス アプリの 3 つのサービスすべてに対してトリガーとバインドを使用するには、次のパッケージをプロジェクトに追加する必要があります。
- Microsoft.Azure.WebJobs.Extensions.Storage.Blobs
- Microsoft.Azure.WebJobs.Extensions.Storage.Queues
- Microsoft.Azure.WebJobs.Extensions.Tables
以前、拡張機能は Microsoft.Azure.WebJobs.Extensions.Storage、バージョン 4.x としてまとめて出荷されました。 この同じパッケージには 5.x バージョンもあり、BLOB とキューのみの分割パッケージを参照します。 このため、パッケージ参照を古いバージョンからアップグレードする場合は、新しい Microsoft.Azure.WebJobs.Extensions.Tables NuGet パッケージを追加で参照する必要がある場合があります。 また、このような新しい分割パッケージを参照するとき、結合されたストレージ パッケージの古いバージョンを参照していないことを確認してください。同じバインディングの 2 つの定義による競合の発生を防止できます。
バンドルのインストール
Azure Tables のバインドは、host.json プロジェクト ファイルで指定される拡張機能バンドルの一部です。 バインドのバージョンを変更するために、または、バンドルがまだインストールされていない場合、このバンドルに変更を加えることが必要な場合があります。 詳細については、「拡張機能のバンドル」を参照してください。
このバージョンでは、シークレットではなく ID を使用して接続する機能が導入されています。 マネージド ID を使用して関数アプリを構成するチュートリアルについては、ID ベースの接続を使用した関数アプリの作成に関 するチュートリアルを参照してください。
このバージョンの拡張機能は、host.json
ファイルで次のコードを追加するか、または置き換えることによって、プレビュー拡張機能バンドル v3 から追加できます。
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
バインドの種類
.NET でサポートされるバインドの種類は、拡張機能のバージョンと C# 実行モードの両方によって異なります。これは次のいずれかになります。
バージョンを選択すると、モードとバージョンのバインドの種類の詳細が表示されます。
Azure テーブルの拡張機能では、以下の表に従ってパラメーターの型がサポートされています。
バインドのシナリオ | パラメーターの種類 |
---|---|
テーブル入力 (単一エンティティ) | ITableEntity から派生する型 |
テーブル入力 (クエリの複数のエンティティ) | IEnumerable<T> (T は ITableEntity から派生します)TableClient |
テーブル出力 (単一エンティティ) | ITableEntity から派生する型 |
テーブル出力 (複数エンティティ) | TableClientICollector<T> または IAsyncCollector<T> (T は ITableEntity を実装します) |