註冊 Azure Functions 系結延伸模組

從 Azure Functions 2.x 版開始,函數執行時間預設只會包含 HTTP 和計時器觸發程式。 其他 觸發程式和 系結可作為個別的套件。

.net 類別庫函式應用程式會使用在專案中安裝的系結做為 NuGet 套件。 擴充功能組合可讓 non-.NET 函式應用程式使用相同的系結,而不需要處理 .NET 基礎結構。

下表指出註冊系結的時機和方式。

開發環境 註冊
在 Functions 1.x 中
註冊
在函數2.x 或更新版本中
Azure 入口網站 自動 自動*
Non-.NET 語言 自動 使用延伸模組套件組合 (建議) 或明確安裝擴充功能
使用 Visual Studio 的 c # 類別庫 使用 NuGet 工具 使用 NuGet 工具
使用 Visual Studio Code 的 C# 類別庫 N/A 使用 .NET Core CLI

* 入口網站使用延伸模組套件組合。

存取 non-.NET 語言的延伸模組

針對 JAVA、JavaScript、PowerShell、Python 和自訂處理函式應用程式,我們建議使用延伸模組組合來存取系結。 如果無法使用延伸模組組合,您可以明確地安裝系結延伸模組。

延伸模組套件組合

擴充功能組合是將一組相容的系結延伸模組新增至函式應用程式的方式。 您可以在應用程式的 主機 json 檔案中啟用延伸模組組合。

您可以使用擴充功能組合搭配2.x 版和更新版本的函式執行時間。

擴充功能套組已建立版本。 每個版本都包含一組特定的系結延伸模組,可進行驗證以一起運作。 根據您在應用程式中所需的擴充功能,選取套件組合版本。

若要將擴充功能套件組合新增至函式應用程式,請將 extensionBundle 區段新增至 host. json。 在許多情況下,Visual Studio Code 和 Azure Functions Core Tools 會自動為您新增。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[2.*, 3.0.0)"
    }
}

extensionBundle 中有下列屬性可供使用:

屬性 描述
id Microsoft Azure 函式擴充功能套件組合的命名空間。
version 要安裝的套件組合版本。 函式執行階段一律會挑選版本範圍或間隔所定義的最大允許版本。 上述的版本值允許2.0.0 的所有套件組合版本(最多),但不包括3.0.0。 如需詳細資訊,請參閱指定版本範圍的間隔標記法

下表列出目前可用的 ExtensionBundle 組合,以及其所包含之延伸模組的連結。

套件組合版本 Host. json 中的版本 包含的延伸模組
1.x [1.*, 2.0.0) 請參閱用來產生套件組合的延伸模組。 json
2.x [2.*, 3.0.0) 請參閱用來產生套件組合的延伸模組。 json

注意

雖然您可以在 host 中指定自訂版本範圍,但我們建議您使用此資料表中的版本值。

明確安裝擴充功能

如果您無法使用延伸模組套件組合,可以在本機使用 Azure Functions Core Tools 安裝專案所需的特定擴充套件。

重要

您無法在使用擴充套件組合的函式應用程式中明確安裝擴充功能。 extensionBundle在明確安裝擴充功能之前,請先移除 主機 中的區段。

下列專案說明您可能需要手動安裝擴充功能的一些原因:

  • 您需要存取套件組合中無法使用的特定延伸模組版本。
  • 您需要存取組合中未提供的自訂擴充功能。
  • 您需要存取單一套件組合中未提供的特定擴充功能組合。

注意

若要使用 Core Tools 手動安裝擴充功能,您必須安裝 .Net Core 3.1 SDK 。 Azure Functions Core Tools 會使用 .NET Core SDK 來安裝 NuGet 的延伸模組。 您不需要知道 .NET 就能使用 Azure Functions 擴充功能。

當您明確地安裝擴充功能時,會將名為 extensions 的 .NET 專案檔新增至專案的根目錄。 此檔案會定義函數所需的一組 NuGet 套件。 雖然您可以在此檔案中使用NuGet 套件參考,但 Core Tools 可讓您安裝延伸模組,而不需要手動編輯檔案。

有幾種方式可使用 Core Tools 在本機專案中安裝必要的延伸模組。

安裝所有延伸模組

使用下列命令,在您的本機專案中自動新增系結所使用的所有擴充功能套件:

func extensions install

此命令會讀取函式 json 檔案,以查看您需要哪些套件、安裝它們,以及重建擴充 功能 專案 (extensions) 。 它會在目前版本中新增任何新繫結,但不會更新現有的繫結。 在安裝新的繫結時,使用 --force 選項將現有繫結更新為最新版本。 若要深入瞭解,請參閱 func extensions install 命令

如果您的函式應用程式使用 Core Tools 無法辨識的系結,您必須手動安裝特定的擴充功能。

安裝特定的擴充功能

使用下列命令,在特定版本安裝特定的擴充套件,在此案例中為儲存體擴充功能:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 4.0.2

若要深入瞭解,請參閱 func extensions install 命令

以 .net 語言安裝 NuGet 的延伸模組

針對 c # 類別庫型函式專案,您應該直接安裝擴充功能。 擴充套件組合是特別針對非 c # 類別庫型的專案所設計。

#具有 Visual Studio 的 C 類別庫

Visual Studio 中,您可以使用 安裝套件命令從封裝管理員主控台安裝套件,如下列範例所示:

Install-Package Microsoft.Azure.WebJobs.Extensions.ServiceBus -Version <TARGET_VERSION>

針對指定系結所使用的封裝名稱,會在該系結的參考文章中提供。 如需範例,請參閱服務匯流排繫結參考文章的套件一節

請以特定版本的套件 (例如 3.0.0-beta5) 取代範例中的 <TARGET_VERSION>。 有效的版本會列在NuGet的個別封裝頁面上。對應至函式執行時間1.x 或2.x 的主要版本是在系結的參考文章中指定的。

如果您使用 Install-Package 參考系結,就不需要使用 延伸模組套件組合。 這種方法是 Visual Studio 內建的類別庫所特有。

具有 Visual Studio Code 的 c # 類別庫

Visual Studio Code 中,使用 .NET Core CLI 中的 dotnet add package命令,從命令提示字元安裝 c # 類別庫專案的封裝。 下列範例示範如何新增系結:

dotnet add package Microsoft.Azure.WebJobs.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

.NET Core CLI 只能用於 Azure Functions 2.x 開發。

取代 <BINDING_TYPE_NAME> 為包含所需系結的封裝名稱。 您可以在支援的系結 清單中找到所需的系結參考文章。

請以特定版本的套件 (例如 3.0.0-beta5) 取代範例中的 <TARGET_VERSION>。 有效的版本會列在NuGet的個別封裝頁面上。對應至函式執行時間1.x 或2.x 的主要版本是在系結的參考文章中指定的。

下一步