次の方法で共有


Azure Functions における Azure SQL バインドの概要

この一連の記事では、Azure Functions で Azure SQL バインドを操作する方法について説明します。 Azure Functions では、Azure SQL および SQL Server 製品の入力バインディング、出力バインディング、関数トリガーがサポートされています。

アクション Type
SQL テーブルで変更が検出されたときに関数をトリガーする SQL トリガー
データベースからデータを読み取る 入力バインド
データベースにデータを保存する 出力バインド

拡張機能のインストール

インストールする拡張機能 NuGet パッケージは、関数アプリで使用している C# モードによって異なります。

関数は分離された C# ワーカー プロセスで実行されます。 詳しくは、「分離ワーカー プロセスにおける C# Azure Functions の実行のガイド」をご覧ください。

この NuGet パッケージをインストールすることによって、プロジェクトに拡張機能を追加します。

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql

Microsoft.Azure.Functions.Worker.Extensions.Sql パッケージのプレビュー バージョンを使用するには、コマンドに --prerelease フラグを追加します。 プレビュー機能は、 Azure Functions SQL 拡張機能のリリース ページで確認できます。

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease

Note

Azure Functions の Azure SQL バインドのプレビュー リリース間の破壊的変更には、同じデータベースを対象とするすべての Functions で同じバージョンの SQL 拡張機能パッケージが使用されている必要があります。

バンドルのインストール

SQL バインド拡張機能は、host.json プロジェクト ファイルで指定される v4 の拡張機能バンドルの一部です。

拡張機能バンドルは、host.json ファイル内の次のコードで指定されます。

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

Functions ランタイム

バンドルのインストール

SQL バインド拡張機能は、host.json プロジェクト ファイルで指定される v4 の拡張機能バンドルの一部です。

拡張機能バンドルは、host.json ファイル内の次のコードで指定されます。

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

バンドルのインストール

SQL バインド拡張機能は、host.json プロジェクト ファイルで指定される v4 の拡張機能バンドルの一部です。

拡張機能バンドルは、host.json ファイル内の次のコードで指定されます。

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

パッケージの更新

次のスニペットに示すように、Java Azure Functions プロジェクトの pom.xml ファイルを更新して、Functions プロジェクトに SQL バインド用の Java ライブラリを追加します。

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-sql</artifactId>
    <version>2.1.0</version>
</dependency>

次のスニペットに示すように、Java Azure Functions プロジェクトの pom.xml ファイルを更新して、プレビュー拡張機能バンドルを使用できます。

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-sql</artifactId>
    <version>2.1.0-preview</version>
</dependency>

SQL 接続文字列

重要

azure Functions を使用して Azure SQL Database にアクセスするには、 管理 ID を使用することを強くお勧めします。 マネージド ID は、接続文字列の資格情報、サーバー名、使用されているポートなど、アプリケーションのデプロイからシークレットを排除することで、アプリの安全性を高めます。 マネージド ID の使用方法については、このチュートリアルの「 マネージド ID と SQL バインドを使用して関数アプリを Azure SQL に接続する

Azure Functions の Azure SQL バインドには、すべてのバインドとトリガーで接続文字列に必須のプロパティがあります。 これらでは、その接続文字列を Microsoft.Data.SqlClient ライブラリに渡し、SqlClient ConnectionString のドキュメントの定義に従ってその接続文字列をサポートします。 注意が必要なキーワードは次のとおりです。

  • Authentication を使用すると、関数で、Active Directory マネージド ID を含む Microsoft Entra の ID を使用して Azure SQL に接続できます
  • Command Timeout を使用すると、関数で、指定された秒数 (既定値は 30 秒) だけ待ってから、クエリを終了できます
  • ConnectRetryCount を使用すると、関数で、追加の再接続を自動的に試みることができます。特に、Azure SQL Database サーバーレス レベル (既定値は 1) に適用されます
  • Pooling を使用すると関数はデータベースへの接続を再利用でき、パフォーマンスを向上させることができます (既定値 true)。 接続プールのその他の設定には、Connection LifetimeMax Pool SizeMin Pool Size があります。 ADO.NET のドキュメントで接続プールについて詳しく学ぶ

考慮事項

  • Azure SQL バインドでは、バージョン 4.x 以降の Functions ランタイムがサポートされます。
  • Azure SQL バインドのソース コードは、こちらの GitHub リポジトリにあります。
  • このバインドでは、Azure SQL または SQL Server データベースに接続する必要があります。
  • データ型 NTEXTTEXTIMAGE の列を持つテーブルに対する出力バインディングはサポートされておらず、データのアップサートは失敗します。 これらの型は将来のバージョンの SQL Server で削除され、この Azure Functions バインドで使用される OPENJSON 関数とは互換性がありません。
  • ユーザー名とパスワードの代わりに管理 ID を使用します。
  • Azure キー値を使用してアプリケーションの設定を格納します。

サンプル

Azure SQL バインド GitHub リポジトリで利用できる C#、Java、JavaScript、PowerShell、Python のサンプルに加えて、Azure のサンプルではさらに多くのものを利用できます。

次の手順