共用方式為


適用於 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 LifetimeMax Pool SizeMin Pool Size。 在 ADO.NET 檔中深入了解連線共用

考量

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

範例

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

下一步