你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Functions 的 Azure SQL 绑定概述
本系列文章介绍如何使用 Azure Functions 中的 Azure SQL 绑定。 Azure Functions 支持 Azure SQL 和 SQL Server 产品的输入绑定、输出绑定和功能触发器。
操作 | 类型 |
---|---|
在 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
注意
适用于 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)"
}
}
更新包
将 SQL 绑定的 Java 库添加到 Functions 项目中,其中包含对 Java Azure Functions 项目的 pom.xml
文件的更新,如以下代码片段所示:
<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 数据库。 托管标识通过消除应用程序部署中的机密(例如连接字符串、服务器名称和端口中的凭据)使应用更安全。 本教程介绍如何使用托管标识, 使用托管标识和 SQL 绑定将函数应用连接到 Azure SQL。
Azure Functions 的 Azure SQL 绑定具有所有绑定和触发上的连接字符串所需的属性。 这些绑定将连接字符串传递给 Microsoft.Data.SqlClient 库并支持连接字符串(如 SqlClient ConnectionString 文档中的定义)。 值得注意的关键字包括:
Authentication
使函数能够通过 Microsoft Entra ID(包括 Active Directory 托管标识)连接到 Azure SQLCommand Timeout
允许函数在等待指定的时间长度(默认 30 秒)后终止查询ConnectRetryCount
允许函数自动进行额外的重新连接尝试(默认 1 次),尤其适用于 Azure SQL 数据库无服务器层Pooling
允许函数重复使用与数据库的连接,这样做可以提高性能(默认true
)。 连接池的其他设置包括Connection Lifetime
、Max Pool Size
和Min Pool Size
。 在 ADO.NET 文档中了解有关连接池的详细信息
注意事项
- Azure SQL 绑定支持 4.x 版本及更高版本的 Functions 运行时。
- 可以在此 GitHub 存储库中找到 Azure SQL 绑定的源代码。
- 此绑定需要连接到 Azure SQL 或 SQL Server 数据库。
- 针对包含数据类型为
NTEXT
、TEXT
或IMAGE
的列的表的输出绑定不受支持,数据更新插入将会失败。 这些类型在将来的 SQL Server 版本中将会删除,并且与此 Azure Functions 绑定使用的OPENJSON
函数不兼容。 - 使用 托管标识 ,而不是用户名和密码。
- 使用 Azure 密钥值 存储应用程序设置的 Concider。
示例
除了 Azure SQL 绑定 GitHub 存储库中提供的 C#、Java、JavaScript、PowerShell 和 Python 示例外,“Azure 示例”中还提供了其他示例: