gpt4 book ai didi

c# - 在 azure 函数中获取队列名称或主题+订阅者名称(Azure 服务总线触发函数)

转载 作者:行者123 更新时间:2023-12-04 17:23:06 24 4
gpt4 key购买 nike

是否可以在服务总线触发的 Azure 函数中获取队列名称?

我知道如果 QueueName 或 TopicName+SubscriberName 被硬编码是可能的。在那种情况下,我可以创建一个 const 字符串并在函数内部使用它。但是,我的服务总线触发器使用 "%ServiceBusSettings:QueueName%""%ServiceBusSettings:TopicName%""%ServiceBusSettings:SubscriberName 从设置中获取名称%".

如何在这种可配置的情况下获取队列或主题+订阅者名称?

[FunctionName("topic-and-subscriber-function")]
public async Task Run(
[ServiceBusTrigger("%ServiceBusSettings:TopicName%", "%ServiceBusSettings:SubscriptionName%", Connection = "ServiceBusSettings:ServiceBusConnection")] Message message,
ILogger log, MessageReceiver messageReceiver)
{
// Get TopicName and SubscriberName
}

[FunctionName("queue-function")]
public async Task Run(
[ServiceBusTrigger("%ServiceBusSettings:QueueName%", Connection = "ServiceBusSettings:ServiceBusConnection")] Message message,
ILogger log, MessageReceiver messageReceiver)
{
// Get QueueName
}

最佳答案

需要获取的是队列的名称,这是QueueClient的一个属性,但是Microsoft.Azure.ServiceBus.QueueClient本身是无法序列化的。 Microsoft.Azure.ServiceBus.Message 可以序列化,但没有队列名称属性。 (而且Microsoft.Azure.ServiceBus.Message没有父类,这意味着一般不可能通过这个类获取queuename。)

可以将queuename作为消息的一部分传入,比如输入json格式的消息:

{
"queuename":"testname",
...
}

然后就可以在代码中获取queuename了。(也可以通过这种方式在bindings中获取这个值,所有传入的json格式的key值都可以在binding中获取。)

关于c# - 在 azure 函数中获取队列名称或主题+订阅者名称(Azure 服务总线触发函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65000750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com