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

标签 c# azure azure-functions azureservicebus

docs 中并不清楚如何输出结构化消息。在旧函数中,我使用了 BrokeredMessage,并且文档说对 V2 函数使用 Message,但是没有关于如何的指导用这个。这是正确的吗:

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

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

最佳答案

您已经找到了正确的方法,如 doc

for 2.x, use Message instead of 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);
    }

关于c# - 是否可以使用 Azure Functions V2 输出 Message/BrokeredMessage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54038805/

相关文章:

python - 函数/主机 key 是否可以在用 Python 编写的 Azure 函数中直接使用?

java - 如何在 Maven 子模块中添加 Java Azure Functions

c# - Azure Function - c# - 具有 Blob 绑定(bind)的 ServicebusTrigger

c# - 如何取消方法的执行?

C# System.Net.WebRequest HTTP 请求无法从传输连接中读取数据 : An existing connection was forcibly closed by the remote host

c# - 在 C# 的方法中返回 FileStream 是否安全?

azure - 如何使用 Azure SDK for Golang 获取网络使用情况/配额?

c# - 一个异常两条消息

azure - Microsoft Graph 配置文件终结点不返回用户名

azure - Azure函数是否可以监听多个blob以进行blob触发器