从逻辑应用程序中获取服务总线的内容

时间:2017-05-05 04:59:20

标签: azure azureservicebus azure-logic-apps

我是Azure逻辑应用的新手。我有一个服务总线并将json对象消息传递给该服务总线,然后我在逻辑应用程序中设置一个动作来收听我的服务总线。因此,每当有新消息进入该服务总线时,我的逻辑应用程序将选择它enter image description here并将其发送给http。

我的问题是如何从服务总线中的消息中获取属性并将其传递给我的http操作。我试过这个

“Id” : “@{json(triggerBody()[‘ContentData’]).id}”

但它无效

3 个答案:

答案 0 :(得分:0)

Service Bus消息的ContentData是Base64编码的,因此您需要先对其进行解码,例如

“Id” : “@{json(base64ToString(triggerBody()?[‘ContentData’])).id}”

答案 1 :(得分:0)

Logic应用程序现在具有用于解码Base 64编码值的表达式。

我的要求是将编码的ServiceBus消息解码为Azure函数。我使用Logic App Expression,decodeBase64()来解决此问题,该表达式可以接受字符串类型的动态内容,在这种情况下为“内容”-消息的内容,并返回解码后的json字符串。     decodeBase64(triggerBody()?['ContentData'])

查找随附的屏幕快照以供参考。

In the place holder for input to the action, include an expression and choose decodeBase64()

Get back to Dynamic Content tab to select 'Content' available from previous step, on hitting OK the expression would get generated

答案 2 :(得分:0)

我的精确设置是使用该接口解密base 64消息。足够容易地键入表达式构建器。

json(base64ToString(triggerBody()?['ContentData']))

decrypt base 64 service bus message