在调试天蓝色的持久功能时清除历史记录

时间:2019-11-23 20:08:26

标签: azure-functions azure-durable-functions

耐用的功能会在存储中保持状态,这就是使它们起作用的原因,但是在调试和开发时非常麻烦。我有大量尚未完成的运行,并且在启动该过程时系统尝试再次运行。一些运行中的错误数据相同,这会导致异常,而另一些运行已提前终止,因为某些运行不正常。

在调试中启动应用程序时,我不想运行所有旧情况(针对本地存储帐户运行)。如何自动清除所有数据,以便仅触发新功能?

3 个答案:

答案 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 方法:

  1. 业务流程实例ID
[FunctionName("PurgeInstanceHistory")]
public static Task Run(
    [DurableClient] IDurableOrchestrationClient client,
    [ManualTrigger] string instanceId)
{
    return client.PurgeInstanceHistoryAsync(instanceId);
}
  1. 时间间隔
[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
        });
}

以上代码段的参考:https://docs.microsoft.com/en-gb/azure/azure-functions/durable/durable-functions-instance-management#purge-instance-history

答案 2 :(得分:0)

现在有this VsCode extension,现在还具有“清除持久功能历史记录”功能。在命令面板中键入“清除持久功能历史记录”,然后您就可以开始了。如果您不使用VsCode,则相同的工具是available as a standalone service,您可以在本地运行该工具,也可以将其部署到Azure。