具有 ActivityTrigger 的函数的响应绑定
Response bindings for Functions with ActivityTrigger
我想创建一个 Durable Function 来调用 Activity 函数,然后 return 在 v2 函数应用程序中使用 dotnet 核心创建一个值。该函数当然会验证其输入,因此可能 return 一个成功的值,或者它可能 return 一个无效的错误:HTTP 术语中的 200 或 400。我的 activity 函数将是这样的:
[FunctionName("MyFunc")]
public static async Task<object> Run(
[ActivityTrigger] string input,
ILogger log)
{
// return something like
return new { Status = "OK", Content = content };
}
我应该使用哪种 return 类型?应该让我自己的 DTO 成为有效的响应,还是有办法 returning HttpResponse 对象到协调器?
我认为这里可能有一个更简单的解决方案。您是否考虑过 return 如果您的验证通过,则输入一个简单的值,如果您的验证失败,则抛出一个由编排器处理的异常?
Activity触发器绑定处理输入和输出。根据 error handling 上的文档,activity 函数可以 return 任何类型的 JSON 可序列化对象到编排器,以及 activity 函数抛出的未处理异常被编组回编排器,在那里它们可以由 catch 块处理。
Activity-orchestrator 通信不使用 HTTP 请求和响应;它分别使用 Azure 存储表记录历史事件和 Azure 存储队列来触发活动以执行异步工作或唤醒协调器,一旦 activity 的异步工作完成。除非您在业务流程中的某处特别需要 HttpResponse 对象,否则无需将 activity 的 return 值包装在一个中。
我想创建一个 Durable Function 来调用 Activity 函数,然后 return 在 v2 函数应用程序中使用 dotnet 核心创建一个值。该函数当然会验证其输入,因此可能 return 一个成功的值,或者它可能 return 一个无效的错误:HTTP 术语中的 200 或 400。我的 activity 函数将是这样的:
[FunctionName("MyFunc")]
public static async Task<object> Run(
[ActivityTrigger] string input,
ILogger log)
{
// return something like
return new { Status = "OK", Content = content };
}
我应该使用哪种 return 类型?应该让我自己的 DTO 成为有效的响应,还是有办法 returning HttpResponse 对象到协调器?
我认为这里可能有一个更简单的解决方案。您是否考虑过 return 如果您的验证通过,则输入一个简单的值,如果您的验证失败,则抛出一个由编排器处理的异常?
Activity触发器绑定处理输入和输出。根据 error handling 上的文档,activity 函数可以 return 任何类型的 JSON 可序列化对象到编排器,以及 activity 函数抛出的未处理异常被编组回编排器,在那里它们可以由 catch 块处理。
Activity-orchestrator 通信不使用 HTTP 请求和响应;它分别使用 Azure 存储表记录历史事件和 Azure 存储队列来触发活动以执行异步工作或唤醒协调器,一旦 activity 的异步工作完成。除非您在业务流程中的某处特别需要 HttpResponse 对象,否则无需将 activity 的 return 值包装在一个中。