使用VSCode + JavaScript在本地测试Azure持久性函数。能够成功触发HTTP触发的编排客户端,甚至可以看到请求头+正文都没有问题。但是,我在尝试触发Orchestrator时收到以下错误:
无法将'Microsoft.Azure.WebJobs.DurableOrchestrationContext‘类型的对象强制转换为“”System.String“”类型
我不明白为什么DurableOrchestrationContext要被转换成字符串。调用Orchestrator的代码:
context.bindings.patient = [{
FunctionName: "OrchestratorJS",
Input: req,
InstanceId: id
}];
注意:-我尝试只发送一个字符串作为输入,但没有效果。-我已经成功地为一个不同的项目创建了持久函数,这使得这变得更加令人沮丧。
发布于 2018-07-10 20:28:27
由于how languages are handled in Functions v2,函数运行时正尝试将DurableOrchestrationContext转换为字符串。与v1不同,v2通过托管在与运行时主机不同的进程中的节点语言工作器来运行JavaScript函数。语言工作者和主机之间通过gRPC协议进行通信。调用函数时,运行时宿主必须通过gRPC将绑定的参数信息传递给函数。绑定到复杂对象(如DurableOrchestrationContext )的参数必须序列化为JSON字符串,通过gRPC传递,最后恢复状态,以便函数使用它们。
我们在1.4.0版本中引入了DurableOrchestrationContext到字符串的转换。您可以尝试更新到最新版本的扩展(1.5.0)并再次尝试您的函数吗?
https://stackoverflow.com/questions/51272837
复制