耐用的功能会在存储中保持状态,这就是使它们起作用的原因,但是在调试和开发时非常麻烦。我有大量尚未完成的运行,并且在启动该过程时系统尝试再次运行。一些运行中的错误数据相同,这会导致异常,而另一些运行已提前终止,因为某些运行不正常。
在调试中启动应用程序时,我不想运行所有旧情况(针对本地存储帐户运行)。如何自动清除所有数据,以便仅触发新功能?
答案 0 :(得分:1)
您可以使用 Azure Core Tools 清除业务流程实例状态。
首先,您需要确保已为特定的Azure Function版本安装了Azure核心工具。您可以使用NPM软件包管理器执行此操作。 (请注意,这是针对Azure Functions版本-V3。)
npm install -g azure-functions-core-tools@3
然后在Azure Functions项目的根目录中打开命令提示符。 Azure核心工具需要项目中的host.json文件来标识业务流程实例。
您可以使用以下内容查看所有可用的操作:
func durable
然后您可以使用以下命令清除实例历史记录:
func durable purge-history
答案 1 :(得分:0)
您可以使用以下方法之一调用 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.Completed }); }
答案 2 :(得分:0)
现在有this VsCode extension,现在还具有“清除持久功能历史记录”功能。在命令面板中键入“清除持久功能历史记录”,然后您就可以开始了。如果您不使用VsCode,则相同的工具是available as a standalone service,您可以在本地运行该工具,也可以将其部署到Azure。