共用方式為


Azure 串流分析的 Azure Functions 輸出

Azure Functions 是無伺服器計算服務,您可以用來依需求執行程式碼,無需明確佈建或管理基礎結構。 可讓您實作在 Azure 或合作夥伴服務中發生事件所觸發的程式碼。 Azure Functions 回應觸發程序的這個功能使其自然輸出 Azure 串流分析。 此輸出配接器可讓使用者將串流分析連接至 Azure Functions,然後執行指令碼或程式碼片段,以回應各種不同的事件。

Azure China 21Vianet 和 Azure 德國 (T-Systems International) 營運的 Microsoft Azure 無法從串流分析產生 Azure Functions 輸出。 也不支援從執行於多租用戶叢集中的串流分析作業連線至虛擬網路 (VNet) 內的 Azure Functions。

Azure 串流分析會透過 HTTP 觸發程序叫用 Azure Functions。 Azure Functions 輸出配接器可搭配下列可設定屬性使用:

屬性名稱 描述
函式應用程式 Azure Functions 應用程式的名稱。
函式 Azure Functions 應用程式中函式的名稱。
機碼 如果您想要使用另一個訂用帳戶中的 Azure Function,可以藉由提供存取函式的金鑰來達到這個目的。
批次大小上限 屬性可讓您針對傳送到您 Azure Function 的每個輸出批次,設定大小上限。 輸入是以位元組為單位。 根據預設,此值是 262,144 個位元組 (256 KB)。
批次計數上限 屬性可讓您在傳送至 Azure Functions 的每個批次中,指定事件數目上限。 預設值是 100。

Azure 串流分析針對已成功處理的批次,預期來自 Functions 應用程式是 HTTP 狀態 200。

當 Azure 串流分析從 Azure 函式收到 413 (http 要求實體太大) 例外狀況時,會縮減傳送至 Azure Functions 的批次大小。 在 Azure 函式程式碼中,使用這個例外狀況可確保 Azure 串流分析不會傳送過大的批次。 同時,請確認函式中使用的最大批次計數和大小值都符合串流分析入口網站中輸入的值。

注意

在測試連線期間,串流分析會將空的批次傳送 (POST) 至 Azure Functions,以測試兩者之間的連線是否運作。 請確定您的 Functions 應用程式會處理空的批次要求,以確保測試連線通過。

此外,如果在某個時間範圍內沒有登陸任何事件,則不會產生任何輸出。 如此一來,就不會呼叫 computeResult 函式。 此行為與內建的視窗型彙總函式一致。

資料分割

分割區索引鍵是根據查詢中的 PARTITION BY 子句。 輸出寫入器的數目會遵循完全平行化查詢的輸入資料分割。

輸出批次大小

預設批次大小為 262,144 個位元組 (256 KB)。 每個批次的預設事件計數為 100。 批次大小可以設定,並可以在串流分析的輸出選項中增加或減少。

限制

Azure Functions應該在 100 秒內完成其要求,因為 HTTP 用戶端在 100 秒後逾時。 如果 Azure Functions 處理一批資料需要超過 100 秒的時間,就會有觸發重試的逾時。 此重試可能會導致重複的資料,因為 Azure Functions 會再次處理資料,而且可能會產生相同的輸出,因為其可能已在先前的要求中部分輸出

程式碼範例

Azure Functions 輸出可以用來將訊息轉遞至不支援的資料庫 (例如 Redis),或更新 Azure SQL 中的資料表。

下一步