0

我想创建一个调用活动函数的持久函数,然后在 v2 函数应用程序中使用 dotnet 核心返回一个值。该函数当然会验证其输入,因此可能会返回成功的值,也可能会返回无效的错误:HTTP 术语中的 200 或 400。我的活动功能将是这样的:

[FunctionName("MyFunc")]
public static async Task<object> Run(
        [ActivityTrigger] string input,
        ILogger log)
{
    // return something like
    return new { Status = "OK", Content = content };
}

我应该为此使用什么返回类型?应该让我自己的 DTO 成为有效响应,还是有办法将 HttpResponse 对象返回到协调器?

4

1 回答 1

2

我认为这里可能有一个更简单的解决方案。您是否考虑过在验证通过时返回一个简单的值,并在验证失败时抛出由编排器处理的异常?

ActivityTrigger 绑定处理输入和输出。根据有关错误处理的文档,活动函数可以将任何类型的 JSON 可序列化对象返回给编排器,并且将活动函数抛出的未处理异常编组回编排器,在那里它们可以由 catch 块处理。

Activity-orchestrator 通信不使用 HTTP 请求和响应;它分别使用 Azure 存储表记录历史事件和 Azure 存储队列来触发活动以执行异步工作或在某些活动的异步工作完成后唤醒协调器。除非您在编排中的某处特别需要 HttpResponse 对象,否则无需将活动的返回值包装在一个中。

于 2019-01-29T19:30:37.590 回答