探索輸入和輸出繫結類型
存取和處理資料是許多軟體解決方案中的重要工作。 請考慮以下這些案例:
- 您被要求進行實作,以將傳入資料從 Azure Blob 儲存體移到 Azure Cosmos DB。
- 您想要將內送郵件張貼至佇列,以讓企業中的其他元件進行處理。
- 您的服務需要從佇列中擷取玩家的分數,然後更新線上計分板。
這些範例都與移動資料有關。 不同案例之間的資料來源和目的地都不同,但是模式類似。 您連線至資料來源,並讀取和寫入資料。 Azure Functions 可協助您使用繫結來整合資料與服務。
什麼是繫結?
在 Azure Functions 中,繫結可提供從您的程式碼內連線至資料的宣告式方法。 它們會使得持續與函式中的資料流整合更加容易。 您可以有多個繫結,提供對不同資料元素的存取。 此整合功能很強大,因為您可以直接連線至資料來源,而不需要編碼特定的連線邏輯 (如資料庫連線或 Web API 介面)。
繫結的類型
可用於函式的繫結有兩種:
輸入繫結 - 連線至資料來源。 我們的函式可以從這些輸入來源讀取資料。
輸出繫結 - 連線至資料目的地。 我們的函式可將資料寫入這些輸出目的地。
另外還有觸發程序,這是會導致函數執行的特殊輸入繫結類型。 例如,Azure 事件方格通知即可設定為觸發程序。 當事件發生時,函式即會執行。
支援繫結的類型
繫結的 類型 會定義我們讀取或傳送資料的位置。 有一個繫結可以回應 Web 要求,並且有大量選取的繫結可以直接與多種不同的 Azure 服務和第三方服務互動。
繫結類型可當作輸入和 (或) 輸出使用。 例如,函式可以寫入 Blob 儲存體輸出繫結,但 Blob 儲存體更新可能會觸發另一個函式。
以下是一些常見的繫結類型:
- Blob 儲存體
- Azure 服務匯流排佇列
- Azure Cosmos DB
- Azure 事件中樞
- 外部檔案
- 外部資料表
- HTTP 端點
這些類型只是部分範例。 還有一些並未列出,且函式具有擴充性模型,可新增更多繫結。
繫結屬性
所有繫結中都需要三個屬性,不過您可能必須根據所使用的系結類型和儲存體類型提供更多屬性。
名稱:定義您用來存取資料的函式參數。 例如,在佇列輸入繫結中,這屬性是會接收佇列訊息內容之函式參數的名稱。
類型 - 識別繫結的類型。 例如,您想要與其互動的資料或服務類型。
方向 - 指出資料流程的方向。 例如,它是輸入或輸出繫結嗎?
此外,大部分的繫結類型也需要第四個屬性:
- 連線:提供包含連接字串的應用程式設定金鑰名稱。 繫結會使用儲存在應用程式設定中的連接字串,將祕密排除在函式程式碼以外。 連線字串可讓您的程式碼更容易設定且更安全。
建立繫結
繫結是以 JSON 格式定義。 繫結會在您的函式組態檔中設定,該檔案名為 function.json,並且與您的函式程式碼存放於相同的資料夾中。
我們將檢查範例輸入繫結:
...
{
"name": "headshotBlob",
"type": "blob",
"path": "thumbnail-images/{filename}",
"connection": "HeadshotStorageConnection",
"direction": "in"
},
...
為了建立此繫結,我們將:
在 function.json 檔案中建立繫結。
提供
name
變數的值。 在此範例中,變數會保存 Blob 資料。提供儲存體
type
。 在上述範例中,我們使用 Blob 儲存體。提供
path
,它會指定容器和其中將包含的項目名稱。 使用 Blob 觸發程式時需要path
屬性,而且應該以此處顯示的樣式提供,在路徑的檔案名稱部分前後有大括號。 此語法會建立 繫結運算式,讓您在其他繫結和函式的程式碼中參考 Blob 的名稱。 在此範例中,函式上名為 filename 的參數會填入觸發函式之 Blob 的檔案名稱。提供在應用程式設定檔中定義的
connection
字串設定名稱。 此名稱可當作金鑰使用,以尋找連線至儲存體帳戶的連接字串。將
direction
定義為in
。 它會從 Blob 讀取資料。
繫結可用來連線至您函式中的資料。 在此範例中,我們使用輸入繫結來連線使用者影像,這些影像會由我們的函式處理為縮圖。