我使用的是ServiceBus.Extensions 5.7.0,并且有一个由HttpTrigger触发的Azure函数。我想通过此函数向Azure消息总线上的主题发送消息。如何实现这一点?我的函数必须返回HttpResponseData作为对http请求的响应。我也无法使用ServiceBusOutput属性,因为不允许在函数之外的参数上使用该属性。
fhg3lkii1#
在隔离工作者SDK中,此方案称为多输出方案。您需要返回具有属性的POCO,其中一个属性将Map到HTTP响应,另一个属性将Map到Azure Service Bus实体。
public class MyOutputType { public HttpResponseData HttpResponse { get; set; } // HTTP response [ServiceBusOutput(queueOrTopicName: "dest", Connection = "AzureServiceBus")] public string Message { get; set; } // message payload }
在你的函数中,你会返回一个MyOutputType的示例。
MyOutputType
[Function("MultiOutput")] public static MyOutputType Run([HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequestData req, FunctionContext context) { var response = req.CreateResponse(HttpStatusCode.OK); response.WriteString("Success!"); var myQueueOutput = "Payload for ASB"; return new MyOutputType { Message = myQueueOutput, HttpResponse = response }; }
1条答案
按热度按时间fhg3lkii1#
在隔离工作者SDK中,此方案称为多输出方案。您需要返回具有属性的POCO,其中一个属性将Map到HTTP响应,另一个属性将Map到Azure Service Bus实体。
在你的函数中,你会返回一个
MyOutputType
的示例。