Как установить срок действия (TTL) для сообщения очереди с помощью соединителя приложения логики очереди хранения Azure? - PullRequest
0 голосов
/ 03 апреля 2019

В моем приложении логики я не вижу способа установить TTL или дату истечения срока действия сообщения в очереди.

Azure Put Message In Storage Queue Logic App Action

Settings for 'Put a message on a queue'

Но это возможно из пользовательского интерфейса, поэтому я знаю, что API может сделать это:

Azure portal: updateuser

Я даже пытался "взломать" параметр строки запроса messagettl в представлении кода:

"actions": {
    "Put_a_message_on_a_queue": {
        "inputs": {
            "body": "@{base64(items('For_each'))}",
            "host": {
                "connection": {
                    "name": "@parameters('$connections')['azurequeues']['connectionId']"
                }
            },
            "method": "post",
            "path": "/@{encodeURIComponent('updateuser')}/messages?messagettl=3600"
        },
        "runAfter": {},
        "type": "ApiConnection"
    }
}

Но я получаю ошибку:

{
 "message": "Unable to match incoming request to an operation."
}

1 Ответ

1 голос
/ 03 апреля 2019

Я понял это, просмотрев вызов API, сделанный для пользовательского интерфейса добавления очереди сообщений в портале Azure.Он добавляет параметр строки запроса messagettl, который является секундами TTL.

Итак, я просмотрел схему здесь и обнаружил, что вы можете передать объект "queries": {...} в HTTP-вызовДобавить сообщение.

Окончательный просмотр кода JSON:

"actions": {
    "Put_a_message_on_a_queue": {
        "inputs": {
            "body": "@{base64(items('For_each'))}",
            "host": {
                "connection": {
                    "name": "@parameters('$connections')['azurequeues']['connectionId']"
                }
            },
            "method": "post",
            "path": "/@{encodeURIComponent('updateuser')}/messages",
            "queries": {
                "messagettl": 3600
            }
        },
        "runAfter": {},
        "type": "ApiConnection"
    }
}
...