[英]Azure Durable Function Orchestration GetInput Doesn't Work
我在使用耐用的 function 2.0 时遇到问题。
首先,我有 queueTrigger,它调用 OrchestrationTrigger
[FunctionName("StartOrchestration")]
public static async Task Run([QueueTrigger("TestDurableFunction", Connection = "StorageConnectionString")] string queueItem,
[DurableClient] IDurableOrchestrationClient starter)
{
await starter.StartNewAsync("Orchestration", queueItem);
}
我将 json 字符串作为编排 function 的参数传递,但 context.GetInput(); 总是返回 null
[FunctionName("Orchestration")]
public static async void Run([OrchestrationTrigger] IDurableOrchestrationContext context)
{
var input = context.GetInput<string>();
var orders = JsonConvert.DeserializeObject<List<OrdenTiendaFacturarModel>>(input);
var parallelTasks = new List<Task<string>>();
foreach (var order in orders)
{
var task = context.CallActivityAsync<string>("BillOrder", order);
parallelTasks.Add(task);
}
await Task.WhenAll(parallelTasks);
}
有什么帮助吗?
我解决了这个问题,由于某种原因,StartNewAsync 的执行对于第二个参数是 instanceId 的重载。
Task<string> StartNewAsync(string orchestratorFunctionName, string instanceId = null);
我期待执行这个重载:
Task<string> StartNewAsync<T>(string orchestratorFunctionName, T input)
我的 queueItem 是一个字符串,出于这个原因,function 第一次过载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.