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、バージョン 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# 実行モードの両方によって異なります。これは次のいずれかになります。

インプロセス クラス ライブラリは、Functions ランタイムと同じプロセスで実行されるコンパイル済みの C# 関数です。

バージョンを選択すると、モードとバージョンのバインドの種類の詳細が表示されます。

Azure テーブルの拡張機能では、以下の表に従ってパラメーターの型がサポートされています。

バインドのシナリオ パラメーターの種類
テーブル入力 (単一エンティティ) ITableEntity から派生する型
テーブル入力 (クエリの複数のエンティティ) IEnumerable<T> (TITableEntity から派生します)
TableClient
テーブル出力 (単一エンティティ) ITableEntity から派生する型
テーブル出力 (複数エンティティ) TableClient
ICollector<T> または IAsyncCollector<T> (TITableEntity を実装します)

次のステップ