是否可以使用 Azure Functions V2 输出 Message/BrokeredMessage?

Jos*_*osh 1 c# azure azureservicebus azure-functions

文档中不清楚如何输出结构化消息。在我使用过的旧函数中BrokeredMessage,文档说要Message用于 V2 函数,但是没有关于如何使用它的指导。这样对吗:

[FunctionName(nameof(Job))]
public static async Task<IActionResult> Job(
    // ...
    IAsyncCollector<Microsoft.Azure.ServiceBus.Message> serializedJobCollector
)
Run Code Online (Sandbox Code Playgroud)

目标是能够设置一些元数据属性,如 ID,我之前(使用 V1 和BrokeredMessage)做过重复检测,但我不确定这是否正确,或者我需要序列化为字符串或什么...

Jer*_*Liu 5

正如医生所说,您找到了正确的方法

对于 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);
    }
Run Code Online (Sandbox Code Playgroud)