.NET Isolated Azure Durable Functions:调用无输入参数活动函数的优化方案
修复Durable Functions活动函数参数无法填充的错误
你的问题出在活动函数的参数类型使用错误:TaskOrchestrationContext是编排器函数的上下文类型,不能用在活动函数的[ActivityTrigger]绑定参数中,运行时无法为这个类型填充值,所以抛出错误。
正确的解决方法
活动函数的[ActivityTrigger]绑定参数应该对应编排器传入的输入数据类型。由于你的活动函数不需要输入参数,可以将参数类型改为object或string(不传参数时会自动设为null),代码示例如下:
活动函数正确代码
[Function("IngestFeedActivity")] public async Task IngestDisruptions([ActivityTrigger] object input) { // 读取环境变量 var feedUrl = Environment.GetEnvironmentVariable("FEED_URL"); // 执行Feed读取逻辑 }
或者更简洁地使用string类型:
[Function("IngestFeedActivity")] public async Task IngestDisruptions([ActivityTrigger] string input) { // 业务逻辑同上 }
编排器调用代码保持不变
await context.CallActivityAsync("IngestFeedActivity");
为什么之前的写法错误
TaskOrchestrationContext仅在带有[OrchestrationTrigger]的编排器函数中有效,用于管理编排流程、调用活动/子编排等操作。活动函数无法获取到这个上下文对象,所以运行时无法为该参数赋值,即使你添加了null默认值,这个参数也始终是null,属于错误的用法。
内容的提问来源于stack exchange,提问作者paddingtonMike
相关产品推荐
相关产品推荐

