2017-09-13 74 views
0

我有一個使用Azure函數應用程序實現的EventHub觸發器。我的業務邏輯實現在該函數中是錯誤的,必須糾正它。我已經更正了函數應用程序上的實現,如何將檢查點更改爲該Azure函數以返回24小時並使流數據可用於函數應用程序?如何使用Azure EventHub觸發函數返回檢查點?

回答

1

當我需要從頭開始處理集線器中的事件時,我去了Blob存儲 - >azure-webjobs-hosts容器,並刪除了像yournamespace.servicebus.windows.net/yourhub/$Default/X這樣的名稱的blob。這些blob存儲當前的檢查點,所以如果您重新啓動功能應用程序,它將從第一個事件開始處理。

我知道這很不方便,但適用於這種基本情況。也許有人會建議一個更好的方法。

+0

感謝您指引我走向檢查站位置。我在consumergroup文件夾中看到兩個文件。到目前爲止,我只看到一個我註冊過的功能消費者。我的功能是否可能已經註冊了兩個用戶的單一功能? – Kannaiyan

+0

無法刪除文件,它說文件是租用的。即使打破租約,租賃仍然存在,無法刪除這些消費者組下的文件。 – Kannaiyan

+0

@Kannaiyan事件中心默認有兩個分區。嘗試停止功能應用程序,然後刪除文件。 – Mikhail

1

問題仍然是,您可能不知道24小時前每個分區上使用的序列號,否則,Mikhail的建議可能與修改後的步驟一起進入每個blob並編輯序列號而不是刪除所有blob條目。

您應該從頭開始。以下是步驟:

  1. 轉到EventHub門戶。
  2. 創建一個新的消費羣體,例如其命名爲 「組B」
  3. 編輯您的function.json並添加以下項觸發部分,

「consumerGroup」: 「組B」

  • 保存你的改變。
  • 您應該看到您的函數將從GroupB消費者組的最開始處理事件。

    +0

    進行跟蹤感謝Ling。米哈伊爾答案似乎是最好的方法,而不會將觸發器更改爲不同的消費羣體。 – Kannaiyan