適用於 Azure Functions 的 Azure 數據表系結
Azure Functions 會透過觸發程式和系結與 Azure 數據表整合。 與 Azure 資料表整合可讓您使用適用於資料表和 Azure 資料表記憶體的 Azure Cosmos DB 來建置可讀取和寫入數據的函式。
動作 | 類型 |
---|---|
讀取函式中的數據表數據 | 輸入繫結 |
允許函式寫入數據表數據 | 輸出繫結 |
安裝擴充功能
您安裝的延伸模組 NuGet 套件取決於您在函式應用程式中使用的 C# 模式:
函式會在隔離的 C# 背景工作進程中執行。 若要深入瞭解,請參閱 在隔離背景工作程序中執行 C# Azure Functions 的指南。
安裝擴充功能的程式會因擴充功能版本而異:
此版本引進了使用身分識別而非秘密進行連線的能力。 如需使用受控識別設定函數應用程式的教學課程,請參閱使用身分識別型連線建立函數應用程式的教學課程。
此版本可讓您系結至 來自 Azure.Data.Tables
的類型。 它也引進了使用 Azure Cosmos DB for Table 的能力。
您可以使用 Blob 和佇列的延伸模組 5.x 版或更新版本,將 Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet 套件安裝到專案中。
使用 .NET CLI:
# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0
# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0
注意
Azure Blob、Azure 佇列和 Azure 數據表現在會使用不同的擴充功能,並個別參考。 例如,若要針對 .NET 隔離進程應用程式中的所有三個服務使用觸發程式和系結,您應該將下列套件新增至專案:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
先前,延伸模組隨附於 Microsoft.Azure.Functions.Worker.Extensions.Storage 4.x 版。 這個相同的套件也有 5.x 版,僅參考 Blob 和佇列的分割套件。 從舊版升級套件參考時,您可能需要另外參考新的 Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet 套件。 此外,參考這些較新的分割套件時,請確定您並未參考舊版的合併儲存套件,因為這會導致相同系結的兩個定義發生衝突。
如果您要使用 F# 撰寫應用程式,您也必須將此延伸模組設定為應用程式的啟動設定的一部分。 在 或的呼叫ConfigureFunctionsWorkerDefaults()
ConfigureFunctionsWebApplication()
中,新增接受 參數的IFunctionsWorkerApplication
委派。 然後在該委派的主體內呼叫 ConfigureTablesExtension()
物件:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore
安裝搭售方案
Azure 數據表系結是延伸模組套件組合的一部分,其指定於您的host.json項目檔中。 您可能需要修改此套件組合來變更系結的版本,或尚未安裝套件組合。 若要深入瞭解,請參閱 延伸模組套件組合。
此版本引進了使用身分識別而非秘密進行連線的能力。 如需使用受控識別設定函數應用程式的教學課程,請參閱使用身分識別型連線建立函數應用程式的教學課程。
您可以從延伸模組套件組合 v3 新增此版本的延伸模組,方法是在檔案中 host.json
新增或取代下列程式代碼:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
繫結型別
針對 .NET 所支援的繫結類型同時取決於延伸模組版本和 C# 執行模式,這可以是下列其中一項:
隔離式背景工作處理序類別庫編譯的 C# 函式會在與執行階段隔離的處理序中執行。
選擇版本以查看模式和版本的系結類型詳細數據。
隔離的背景工作進程會根據下表支持參數類型。 支援從 Azure.Data.Tables 系結至類型,目前為預覽狀態。
Azure 數據表輸入系結
使用單一數據表實體時,Azure Tables 輸入系結可以系結至下列類型:
類型 | 描述 |
---|---|
實作 ITableEntity 的 JSON 可串行化類型 | 函式會嘗試將實體還原串行化為一般舊的CLR物件 (POCO) 類型。 此類型必須實 作 ITableEntity 或具有字串 RowKey 屬性和字串 PartitionKey 屬性。 |
TableEntity1 | 實體做為類似字典的類型。 |
使用查詢中的多個實體時,Azure Tables 輸入系結可以系結至下列類型:
類型 | 描述 |
---|---|
IEnumerable<T> 其中 T 實作 ITableEntity |
查詢所傳回之實體的列舉。 每個專案都代表一個實體。 此類型 T 必須實 作 ITableEntity 或具有字串 RowKey 屬性和字串 PartitionKey 屬性。 |
TableClient1 | 線上至數據表的用戶端。 這會提供處理數據表的最充分控制權,而且如果連接有足夠的許可權,就可以用來寫入數據表。 |
1 若要使用這些類型,您必須參考 Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 或更新版本 ,以及 SDK 類型系結的常見相依性。
Azure 資料表輸出系結
當您想要讓函式寫入單一實體時,Azure Tables 輸出系結可以系結至下列類型:
類型 | 描述 |
---|---|
實作 [ITableEntity] 的 JSON 可串行化類型 | 函式會嘗試將一般舊的CLR物件 (POCO) 類型串行化為實體。 此類型必須實作 [ITableEntity] 或具有字串 RowKey 屬性和字串 PartitionKey 屬性。 |
當您想要函式寫入多個實體時,Azure Tables 輸出系結可以繫結至下列類型:
類型 | 描述 |
---|---|
T[] 其中 T 是其中一個單一實體類型 |
包含多個實體的陣列。 每個專案都代表一個實體。 |
針對其他輸出案例,請直接從 Azure.Data.Tables 建立和使用類型。