Azure Logi c Приложения, нет контента из очереди - PullRequest
1 голос
/ 12 марта 2020

У меня есть следующий триггер:

"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": "email@zzz.com",
                    "ishtml": true,
                    "subject": "message",
                    "text": "<p>want!!!@{items('For_each_2')?['MessageText']}</p>",
                    "to": "receiver@gmail.com"
                },
                "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\":\"werew@zzzz.com\"}}"
}

, но Get_messages имеет в результате:

QueueMessage : []

, и я не получаю никаких писем. Что не так?

1 Ответ

2 голосов
/ 13 марта 2020

Это потому, что вам не нужно Get_messages, проверьте определение триггера Когда в очереди есть сообщения , он вернет тип Messages, то есть вы уже получили сообщение.

Поскольку очередь уже обработана триггером, она будет удалена из очереди, поэтому вы не сможете получить ее снова с действием.

Таким образом, после триггера вы можете получить содержимое сообщения с содержимым динамического c.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...