我们有一个逻辑应用程序,可以从队列和主题中查看消息,处理消息,然后在发生错误时所有操作都成功或死信的情况下完成消息。为了组织我们的死信队列,我们想要关联一个原因来指出发生了什么错误。然而,开箱即用的服务总线连接器似乎没有设置死信原因的选项。
有没有人知道是否可以通过Logic App设置死信原因?如果是,请分享如何做到这一点。
在尝试使用Azure功能时,我遇到了如何将BrokeredMessage实例从逻辑应用程序传递到Azure功能的问题。在试图打电话时,我会得到以下选项。
答案 0 :(得分:0)
我看不出如何将对象从逻辑应用程序传递给函数。我正在使用函数的http触发器。
我们可以将对象传递给body字段。正文取决于您在Azure函数中实现的内容。
它在我身边正常工作。以下是我的详细测试步骤:
1.创建一个如下设计的逻辑应用程序
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查看
答案 1 :(得分:0)
你无法传递BrokeredMessage所以你现在可以做的最好就是希望你没有使用延迟功能,那么:
1)推迟来自逻辑应用程序的消息(连接器:将消息推迟到队列中)
2)调用Azure函数并将消息传递给SequenceNumber,原因和描述。在函数中,您可以使用序列号检索延迟消息。现在你有一个BrokeredMessage对象,你可以用你传递的其他信息写死信。