[英]Clearing history while debugging azure durable functions
持久化函數在存儲中保持狀態,這是它們工作的原因,但在調試和開發時非常麻煩。 我有大量未完成的運行,當我啟動該過程時系統會嘗試再次運行。 一些運行具有相同的錯誤數據,這會導致異常,而其他運行則由於某些事情沒有按預期工作而提前終止。
在調試中啟動我的應用程序(針對我的本地存儲帳戶運行)時,我不想運行所有舊案例。 如何自動清除所有數據,以便僅觸發新功能?
可以使用Azure 核心工具清除業務流程實例狀態。
首先,您需要確保為您的特定 Azure Function 版本安裝了 Azure Core Tools。 您可以使用 NPM 包管理器執行此操作。 (請注意,這是針對 Azure Functions 版本 - V3。)
npm install -g azure-functions-core-tools@3
然后在 Azure Functions 項目的根目錄中打開命令提示符。 Azure 核心工具需要項目中的 host.json 文件來識別業務流程實例。
您可以使用以下內容查看所有可用操作:
func durable
然后,您可以使用以下命令清除實例歷史記錄:
func durable purge-history
現在有了這個 VsCode 擴展,它現在還具有“清除持久功能歷史記錄”功能。 在您的命令面板中輸入“清除持久功能歷史記錄”——然后就可以了。 如果您不使用 VsCode,則可以將同一工具作為獨立服務使用,您可以在本地運行或部署到 Azure。
您可以使用以下方法之一調用PurgeInstanceHistoryAsync方法:
[FunctionName("PurgeInstanceHistory")]
public static Task Run(
[DurableClient] IDurableOrchestrationClient client,
[ManualTrigger] string instanceId)
{
return client.PurgeInstanceHistoryAsync(instanceId);
}
[FunctionName("PurgeInstanceHistory")]
public static Task Run(
[DurableClient] IDurableOrchestrationClient client,
[TimerTrigger("0 0 12 * * *")]TimerInfo myTimer)
{
return client.PurgeInstanceHistoryAsync(
DateTime.MinValue,
DateTime.UtcNow.AddDays(-30),
new List<OrchestrationStatus>
{
OrchestrationStatus.Completed
});
}
上述代碼片段的參考: https ://docs.microsoft.com/en-gb/azure/azure-functions/durable/durable-functions-instance-management#purge-instance-history
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.