从 azure 函数在 azure 服务总线中发送完整的代理消息
send a full brokered message in azure service bus from an azure function
我在 javascript 的 azure 函数中将完整的代理消息发送到 azure 服务总线输出时遇到问题。
该文档仅显示一条简单的正文消息 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus,没有任何 customerProperties。
到目前为止,我尝试创建完整的代理消息失败了,所有内容都进入正文。
var message = {'body' : 'test', 'customProperties' : {'fromsystem':'sap'}};
context.bindings.outputSbMsg = message;
context.done(null, res);
不幸的是,这是节点的局限性之一,因为我们丢失了一些在 C# 中拥有的类型信息。
您可以尝试发送带有自定义属性的 body
或 test
的消息,但您也可以尝试将整个对象作为正文发送,带有 body
sub-property。 Azure Functions 假设您 return 应该进入正文的所有内容。
作为解决方法,您可以:
- 放弃输出绑定并直接使用ServiceBus sdk for node
- 而不是节点,使用具有实际
BrokeredMessage
类型的 C# 或 F#
- 让您的节点函数将结果放入队列,然后触发 C# 函数来创建您想要的
BrokeredMessage
我在 javascript 的 azure 函数中将完整的代理消息发送到 azure 服务总线输出时遇到问题。 该文档仅显示一条简单的正文消息 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus,没有任何 customerProperties。
到目前为止,我尝试创建完整的代理消息失败了,所有内容都进入正文。
var message = {'body' : 'test', 'customProperties' : {'fromsystem':'sap'}};
context.bindings.outputSbMsg = message;
context.done(null, res);
不幸的是,这是节点的局限性之一,因为我们丢失了一些在 C# 中拥有的类型信息。
您可以尝试发送带有自定义属性的 body
或 test
的消息,但您也可以尝试将整个对象作为正文发送,带有 body
sub-property。 Azure Functions 假设您 return 应该进入正文的所有内容。
作为解决方法,您可以:
- 放弃输出绑定并直接使用ServiceBus sdk for node
- 而不是节点,使用具有实际
BrokeredMessage
类型的 C# 或 F# - 让您的节点函数将结果放入队列,然后触发 C# 函数来创建您想要的
BrokeredMessage