Azure Logic App服务总线消息内容

时间:2017-11-20 19:37:58

标签: azure-web-app-service azure-logic-apps azure-servicebus-queues

我有一个由服务总线触发的逻辑应用程序。消息内容不可用,因为它只是随机字符。我怀疑它可能需要解析,但不清楚如何做到这一点。

我有以下内容: Not enough reputation to add an image - but screen shot from Azure

 "Insert_Entity": {
            "inputs": {
                "body": {
                    "PartitionKey": "deviceID",
                    "RowKey": "@variables('curDate')",
                    "content": "@triggerBody()?['ContentData']"
                },

当我查看来自“@triggerBody()?['ContentData']的”内容“的数据时,它看起来像这样:

“W3sidHlwZSI6ImxvZyJ9LF ....”我删除了大部分内容,因为它的字符很长。

我怀疑这需要解析或者查看实际的邮件正文。我已经检查了这个,但不知道在哪里插入这样的代码:Getting content from service bus in logic apps

您能否解释一下如何查看邮件正文。

2 个答案:

答案 0 :(得分:3)

  

您能否解释一下如何查看邮件正文。

您提到的字符串W3sidHlwZSI6ImxvZyJ9LF....是base64string。如果我们想要查看消息体,我们需要将base64string转换为字符串

我们可以使用base64ToString(triggerBody()?['ContentData'])详细信息进行操作,请参阅屏幕截图。

enter image description here

正文信息:

enter image description here

答案 1 :(得分:0)

在获得Tom Sun解决方案的价值之后,我不得不提取结果的json部分才能对其进行解析,即Logic App Expression:

substring(
variables('result'),sub(indexOf(variables('result'),'{'),1),
sub(lastIndexOf(variables('result'),'}'),indexOf(variables('result'),'{'))
)

然后使用Parse JSON函数使用模式解析结果:

{
    "properties": {
        "data": {
            "type": "string" // Change As Required
        },
        "dataVersion": {
            "type": "string"
        },
        "eventTime": {
            "type": "string"
        },
        "eventType": {
            "type": "string"
        },
        "id": {
            "type": "string"
        },
        "metadataVersion": {
            "type": "string"
        },
        "subject": {
            "type": "string"
        },
        "topic": {
            "type": "string"
        }
    },
    "type": "object"
}