我有一个运行和监视 Azure 服务总线队列的控制台应用程序。我的函数接受 Message 类并处理它。应用程序注册该功能。
现在我需要将其转换为在消息进入消息总线队列时运行。
我看到的所有示例都显示了一个带有静态方法的静态类,其中一些参数由属性修饰。它显示正在以字符串形式发送的消息。
但是我的方法有一个 Message 类被发送给它。
如果我想使用与 azure function 应用程序相同的应用程序,我应该做什么?
最佳答案
重用旧应用的逻辑。
当然,您不能使用控制台应用本身作为 Azure Functions 应用...Azure Functions 是它自己的运行时和执行框架。也就是说,您可能可以重用控制台应用程序中的大部分逻辑,而只需进行很少的调整。
既然你说你正在使用 Message类,我假设您正在使用 .NET Core ServiceBus 库。如果是这样,您应该使用 Azure Functions v2 运行时。如果您使用的是较旧的完整框架 ServiceBus 库和 BrokeredMessage 类,您需要坚持使用 Functions v1 运行时。
Azure Functions 中的“绑定(bind)”非常灵活,并且通常知道如何提供您所需的内容。您可能会看到这样的示例:
[FunctionName("NewSbMessageArrivedFunction")]
public static void Run(
[ServiceBusTrigger("someQueue")] string queueMessage, TraceWriter log)
{
...
}
实际上,您可以将本例中的 queueMessage 参数从 string
更改为 Message
(或 BrokeredMessage
code> in v1),运行时将看到不同的签名,并应为您填充消息对象!
有关其工作原理以及可以为 ServiceBus 触发器绑定(bind)到哪些其他属性的更多详细信息,请查看 Azure Functions ServiceBus Bindings 上的文档。 .
关于c# - 将控制台应用程序转换为Azure触发器的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52065544/