適用於 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 系結具有所有系結和觸發程式上 連接字串 的必要屬性。 這些會將 連接字串 傳遞至 Microsoft.Data.SqlClient 連結庫,並支援 sqlClient ConnectionString 檔中定義的 連接字串。
重要
為了獲得最佳安全性,您應該使用 Microsoft Entra ID 搭配受控識別,以用於 Functions 與 Azure SQL 資料庫 之間的連線。 受控識別可藉由排除應用程式部署中的秘密,例如 連接字串、伺服器名稱和埠中的認證,讓應用程式更安全。 您可以在本教學課程中瞭解如何使用受控識別, 使用受控識別和 SQL 系結將函式應用程式連線至 Azure SQL。
值得注意的關鍵詞包括:
-
Authentication
:允許函式使用 Microsoft Entra ID 和受控識別來連線到 Azure SQL。 如需詳細資訊,請參閱 使用受控識別和 SQL 系結將函式應用程式連線至 Azure SQL。 -
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 金鑰值 來儲存應用程式設定。
範例
除了 Azure SQL 系結 GitHub 存放庫中提供的 C#、Java、JavaScript、PowerShell 和 Python 範例之外,Azure 範例中還提供更多範例: