我有以下触发器:
"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
类型,表示您已经收到消息。
因为队列已被触发器处理,所以它将从队列中删除,因此您无法通过该操作再次获取它。
这样触发后就可以获取带有动态内容的消息内容了。
关于Azure逻辑应用程序,队列中没有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60661444/