C# 是否可以使用Azure功能V2输出Message/BrokeredMessage?
目前还不清楚如何输出结构化消息。在一个旧函数中,我使用了BrokeredMessage,文档中说要将Message用于V2函数,但是没有关于如何使用它的指导。这是否正确:C# 是否可以使用Azure功能V2输出Message/BrokeredMessage?,c#,azure,azure-functions,azureservicebus,C#,Azure,Azure Functions,Azureservicebus,目前还不清楚如何输出结构化消息。在一个旧函数中,我使用了BrokeredMessage,文档中说要将Message用于V2函数,但是没有关于如何使用它的指导。这是否正确: [FunctionName(nameof(Job))] public static async Task<IActionResult> Job( // ... IAsyncCollector<Microsoft.Azure.ServiceBus.Message> serializedJo
[FunctionName(nameof(Job))]
public static async Task<IActionResult> Job(
// ...
IAsyncCollector<Microsoft.Azure.ServiceBus.Message> serializedJobCollector
)
我们的目标是能够设置一些元数据属性,如ID,我以前使用V1和BrokeredMessage进行过重复检测,但我不确定这是否正确,或者我需要序列化为字符串还是什么…您已经找到了正确的方法,如 对于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);
}
你已经找到了正确的方法,正如上面所说的 对于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);
}
我认为你需要将消息与流一起使用我认为你需要将消息与流一起使用