【问题标题】:Is it possible to output Message/BrokeredMessage with Azure Functions V2?是否可以使用 Azure Functions V2 输出消息/代理消息?
【发布时间】:2019-01-04 12:15:27
【问题描述】:
从docs 中不清楚如何输出结构化消息。在一个旧函数中,我使用了BrokeredMessage,文档说将Message 用于V2 函数,但是没有关于如何 使用它的指导。这是正确的:
[FunctionName(nameof(Job))]
public static async Task<IActionResult> Job(
// ...
IAsyncCollector<Microsoft.Azure.ServiceBus.Message> serializedJobCollector
)
目标是能够设置一些元数据属性,例如 ID,这是我之前做过的(使用 V1 和 BrokeredMessage)进行重复检测,但我不确定这是否正确或我需要序列化为字符串或什么...
【问题讨论】:
标签:
c#
azure
azure-functions
azureservicebus
【解决方案1】:
正如doc 所说,您找到了正确的方法
对于 2.x,使用 Message 而不是 BrokeredMessage
举个例子
[FunctionName("FunctionTest")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
[ServiceBus(queueOrTopicName:"queueName",Connection ="ServiceBusConnection")]IAsyncCollector<Message> outputMessages,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var message = new Message
{
Body = System.Text.Encoding.UTF8.GetBytes(requestBody),
MessageId = "MyMessageId"
};
await outputMessages.AddAsync(message);
}