从逻辑应用程序设置死信原因

时间:2017-09-19 13:34:25

标签: azureservicebus azure-logic-apps

我们有一个逻辑应用程序,可以从队列和主题中查看消息,处理消息,然后在发生错误时所有操作都成功或死信的情况下完成消息。为了组织我们的死信队列,我们​​想要关联一个原因来指出发生了什么错误。然而,开箱即用的服务总线连接器似乎没有设置死信原因的选项。

有没有人知道是否可以通过Logic App设置死信原因?如果是,请分享如何做到这一点。

在尝试使用Azure功能时,我遇到了如何将BrokeredMessage实例从逻辑应用程序传递到Azure功能的问题。在试图打电话时,我会得到以下选项。 Options to pass from Logic App to Azure function

2 个答案:

答案 0 :(得分:0)

  

我看不出如何将对象从逻辑应用程序传递给函数。我正在使用函数的http触发器。

我们可以将对象传递给body字段。正文取决于您在Azure函数中实现的内容。

它在我身边正常工作。以下是我的详细测试步骤:

1.创建一个如下设计的逻辑应用程序

enter image description here

2.使用以下代码创建HttpTrigger函数。

using System.Net;
using System;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

     dynamic data = await req.Content.ReadAsAsync<object>();
     var messageId =data?.MessageId;
     //To Do
     return req.CreateResponse(HttpStatusCode.OK,"successful!");//return what you wanted
}

3.向Azure服务总线发送消息。

4.从Logic App查看

enter image description here

答案 1 :(得分:0)

你无法传递BrokeredMessage所以你现在可以做的最好就是希望你没有使用延迟功能,那么:

1)推迟来自逻辑应用程序的消息(连接器:将消息推迟到队列中)

2)调用Azure函数并将消息传递给SequenceNumber,原因和描述。在函数中,您可以使用序列号检索延迟消息。现在你有一个BrokeredMessage对象,你可以用你传递的其他信息写死信。