Azure逻辑应用程序,队列中没有内容

标签 azure azure-logic-apps

我有以下触发器:

"triggers": {
    "When_there_are_messages_in_a_queue": {
        "inputs": {
            "host": {
                "connection": {
                    "name": "@parameters('$connections')['azurequeues']['connectionId']"
                }
            },
            "method": "get",
            "path": "/@{encodeURIComponent('drugconsortium-positive-result')}/message_trigger"
        },
        "recurrence": {
            "frequency": "Minute",
            "interval": 1
        },
        "splitOn": "@triggerBody()?['QueueMessagesList']?['QueueMessage']",
        "type": "ApiConnection"
    }
}

然后我尝试从队列中获取消息:

    "Get_messages": {
        "inputs": {
            "host": {
                "connection": {
                    "name": "@parameters('$connections')['azurequeues']['connectionId']"
                }
            },
            "method": "get",
            "path": "/@{encodeURIComponent('drugconsortium-positive-result')}/messages",
            "queries": {
                "visibilitytimeout": "30"
            }
        },
        "runAfter": {},
        "type": "ApiConnection"
    }

然后尝试发送包含队列内容的电子邮件:

"For_each_2": {
    "actions": {
        "Send_email_(V4)_3": {
            "inputs": {
                "body": {
                    "from": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c19111d15103c060606521f1311" rel="noreferrer noopener nofollow">[email protected]</a>",
                    "ishtml": true,
                    "subject": "message",
                    "text": "<p>want!!!@{items('For_each_2')?['MessageText']}</p>",
                    "to": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3a485f595f534c5f487a5d575b535614595557" rel="noreferrer noopener nofollow">[email protected]</a>"
                },
                "host": {
                    "connection": {
                        "name": "@parameters('$connections')['sendgrid']['connectionId']"
                    }
                },
                "method": "post",
                "path": "/v4/mail/send"
            },
            "runAfter": {},
            "type": "ApiConnection"
        }
    },
    "foreach": "@body('Get_messages')?['QueueMessagesList']?['QueueMessage']",
    "runAfter": {
        "Get_messages": [
            "Succeeded"
        ]
    },
    "type": "Foreach"
}

执行后,我看到一条关于触发器的消息:

{
  "MessageId": "83aac220-9ee5-440c-9a34-391abaa0e464",
  "InsertionTime": "Thu, 12 Mar 2020 20:21:51 GMT",
  "ExpirationTime": "Thu, 19 Mar 2020 20:21:51 GMT",
  "PopReceipt": "AgAAAAMAAAAAAAAA+JoXDKz41QE=",
  "TimeNextVisible": "Thu, 12 Mar 2020 20:23:09 GMT",
  "DequeueCount": "1",
  "MessageText": "{\"DriverId\":-1,\"DriverName\":\"John Smith\",\"DriverSSN\":\"111-11-1111\",\"CarrierName\":\"Carrier Name\",\"DER\":{\"Name\":\"Der name\",\"Email\":\"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7e091b0c1b093e04040404501d1113" rel="noreferrer noopener nofollow">[email protected]</a>\"}}"
}

但是Get_messages的结果是:

QueueMessage : []

我没有收到任何电子邮件。怎么了?

最佳答案

这是因为您不需要Get_messages,请检查触发器定义When there are messages in a queue ,它将返回 Messages 类型,表示您已经收到消息。

因为队列已被触发器处理,所以它将从队列中删除,因此您无法通过该操作再次获取它。

这样触发后就可以获取带有动态内容的消息内容了。

enter image description here

关于Azure逻辑应用程序,队列中没有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60661444/

相关文章:

c# - Azure Active Directory 用户原理上下文服务器名称

azure - 循环 Azure 逻辑应用中 SQL Server 表中的所有行

Azure 订阅已重新启用,但 VM 停止在端口 80 上应答

azure - 将 Azure PaaS 网站与 SQL DB Iaas VM 连接。如何让它们在同一台机器上

azure-logic-apps - 如何使用托管标识为逻辑应用程序创建到 Azure KeyVault 的 Api 连接

azure - 在Azure Logic App中,如何在http请求中传递参数?

azure - 使用本地数据网关的 Azure 自定义连接器的 ARM 模板

azure - 逻辑应用发布到 Microsoft Teams 的数据未显示在字段中

Azure solr服务器错误

c# - 由于缺少程序集引用,Azure 部署失败