共用方式為


適用於 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 擴充功能套件版本。

安裝搭售方案

若要能夠在應用程式中使用這個繫結延伸模組,請確定專案根目錄中的 host.json 檔案包含下列 extensionBundle 參考:

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

在此範例中, version[4.0.0, 5.0.0) 值指示 Functions 主機使用至少 4.0.0 但小於 5.0.0的套件版本,其中包括 4.x 的所有潛在版本。 此表示法可有效地在 v4.x 擴充功能套件組合的最新可用次要版本上維護您的應用程式。

可能的話,您應該使用最新的延伸套件組合主要版本,並允許執行階段自動維護最新的次要版本。 您可以在 延伸套件組合發行頁面上檢視最新套件組合的內容。 如需詳細資訊,請參閱 Azure Functions 延伸模組套件組合

如果您的應用程式需要使用預覽功能,您應該改為參考最新版本的預覽套件。 如需詳細資訊,請參閱 使用預覽擴充功能套件組合

您可以在 Azure Functions SQL Extensions 發行頁面上檢視預覽功能

注意

Azure Functions 的 Azure SQL 系結預覽版本之間的重大變更,需要以相同資料庫為目標的所有 Functions 都使用相同的 SQL 擴充功能套件版本。

更新套件

Azure Functions Java SQL 類型套件 新增至函式專案,並更新 pom.xml 專案中的檔案,如下列範例所示:

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-sql</artifactId>
    <version>2.1.0</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 LifetimeMax Pool SizeMin Pool Size。 在 ADO.NET 檔中深入了解連線共用

考量

  • Azure SQL 系結支援 4.x 版和更新版本的 Functions 運行時間。
  • 您可以在此 GitHub 存放庫中找到 Azure SQL 系結的原始碼。
  • 此系結需要連線到 Azure SQL 或 SQL Server 資料庫。
  • 不支援針對數據類型為、 NTEXTTEXT 之數據IMAGE行之資料表的輸出系結,且數據更新插入將會失敗。 這些類型 將會在未來的 SQL Server 版本中移除 ,且與這個 Azure Functions 系結所使用的函式不相容 OPENJSON
  • 使用 受控識別 ,而不是使用者名稱和密碼。
  • 請考慮使用 Azure 金鑰值 來儲存應用程式設定。

範例

除了 Azure SQL 系結 GitHub 存放庫中提供的 C#、Java、JavaScript、PowerShell 和 Python 範例之外,Azure 範例中還提供更多範例:

下一步