如何使用Azure逻辑应用程序和SQL连接器在存储队列中创建消息

时间:2019-11-20 13:24:47

标签: azure azure-logic-apps

我正在尝试使用Azure Logic Apps在存储队列中创建消息,但我终生无法解决如何做到这一点。我设法使用When an item is modified (V2)触发器来触发Logic App,并且效果很好。

我已经使用Azure Queues -> Put a message on a queue操作在存储队列中成功创建了一条消息,非常简单!

但是,消息只是按顺序排列的每个数据列,没有任何结构,例如

1Andy Was Ere!��������1

我想做的是添加一个步骤,其中Logic App将从SQL数据库中提取的数据格式化为JSON对象,然后在存储队列中创建消息,因此我得到了例如

{
    "Id": 1,
    "Data": "Andy Was Ere!",
    "RowVersion": "��������",
    "Status": 1
}

我希望有一个数据适配器,它可以让我将SQL数据库中的输入字段转换为JSON表示形式,一旦您确定如何做到这一点,我相信这很简单,但是我找不到实际的例子完成了吗?

1 个答案:

答案 0 :(得分:1)

按照通常的方式,在发布问题后,我想出了一个解决方案,它可能不是最好的解决方案,因此,我很高兴听到任何其他反馈。

第1步
创建您的SQL Server -> When an item is modified (V2)触发器。

第2步
添加Execute Javascript Code操作并添加JSON对象转换代码,例如

return {
    "id": workflowContext.trigger.outputs.body.Id,
    "myData": workflowContext.trigger.outputs.body.MyData,
    "status": workflowContext.trigger.outputs.body.Status
}

第3步
添加一个Data -> Compose动作,以接受JS动作的输入。

第4步
添加Azure队列->将消息放入队列操作中,该消息是上述“撰写”操作的输出

在实施该测试的过程中,我得到的答案是,如果我触发了多个记录,那么每次更改都会引发一个触发器。