適用於 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 Extensions 發行頁面上檢視預覽功能。
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
注意
Azure Functions 的 Azure SQL 系結預覽版本之間的重大變更,需要以相同資料庫為目標的所有 Functions 都使用相同的 SQL 擴充功能套件版本。
安裝搭售方案
SQL 系結延伸模組是 v4 延伸模組套件組合的一部分,該套件會在您的host.json項目檔中指定。
擴充套件組合是由檔案 host.json
中的下列程式代碼所指定:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Functions 執行階段
安裝搭售方案
SQL 系結延伸模組是 v4 延伸模組套件組合的一部分,該套件會在您的host.json項目檔中指定。
擴充套件組合是由檔案 host.json
中的下列程式代碼所指定:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
安裝搭售方案
SQL 系結延伸模組是 v4 延伸模組套件組合的一部分,該套件會在您的host.json項目檔中指定。
擴充套件組合是由檔案 host.json
中的下列程式代碼所指定:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
更新套件
使用 Java Azure Functions 專案中檔案的更新 pom.xml
,將適用於 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 資料庫。 受控識別可藉由排除來自應用程式部署的秘密,例如所使用的 連接字串、伺服器名稱和埠中的認證,讓您的應用程式更安全。 您可以在本教學課程中瞭解如何使用受控識別, 使用受控識別和 SQL 系結將函式應用程式連線至 Azure SQL。
適用於 Azure Functions 的 Azure SQL 系結具有所有系結和觸發程式上 連接字串 的必要屬性。 這些會將 連接字串 傳遞至 Microsoft.Data.SqlClient 連結庫,並支援 sqlClient ConnectionString 檔中定義的 連接字串。 值得注意的關鍵詞包括:
Authentication
允許函式使用 Microsoft Entra ID 連線到 Azure SQL,包括 Active Directory 受控識別Command Timeout
可讓函式在終止查詢之前等候指定的時間量,以秒為單位 (預設值 30 秒)ConnectRetryCount
可讓函式自動進行額外的重新連線嘗試,特別是適用於 Azure SQL 資料庫 無伺服器層 (預設值 1)Pooling
允許函式重複使用資料庫的連線,這可以改善效能 (預設值true
)。 連線共用的其他設定包括Connection Lifetime
、Max Pool Size
與Min Pool Size
。 在 ADO.NET 檔中深入了解連線共用
考量
- Azure SQL 系結支援 4.x 版和更新版本的 Functions 運行時間。
- 您可以在此 GitHub 存放庫中找到 Azure SQL 系結的原始碼。
- 此系結需要連線到 Azure SQL 或 SQL Server 資料庫。
- 不支援針對數據類型為、
TEXT
或IMAGE
之數據NTEXT
行之資料表的輸出系結,且數據更新插入將會失敗。 這些類型 將會在未來的 SQL Server 版本中移除 ,且與這個 Azure Functions 系結所使用的函式不相容OPENJSON
。 - 使用 受控識別 ,而不是使用者名稱和密碼。
- 使用 Azure 金鑰值 來儲存應用程式設定的 Concider。
範例
除了 Azure SQL 系結 GitHub 存放庫中提供的 C#、Java、JavaScript、PowerShell 和 Python 範例之外,Azure 範例中還提供更多範例: