如何使用Azure存储队列逻辑应用连接器设置队列消息的到期时间(TTL)?

时间:2019-04-03 14:40:44

标签: azure azure-logic-apps azure-api-apps azure-storage-queues

在我的逻辑应用程序中,我看不到设置队列消息的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 个答案:

答案 0 :(得分:1)

我通过查看对Azure门户中的添加队列消息UI进行的API调用解决了这一问题。它附加了一个查询字符串参数messagettl,它是TTL秒。

因此,我查看了here模式,发现可以将"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"
    }
}