c# - 将控制台应用程序转换为Azure触发器的最佳方法是什么

标签 c# .net azure azure-functions

我有一个运行和监视 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/

相关文章:

azure - azcopy 日志 PERF 行中记录了哪些信息?

c# - 防止 WinForm AcceptButton 处理返回键

javascript - C# .NET OnClientClick 返回 true 但 OnClick 未触发

c# - 有没有一种简单快捷的方法来检查多边形是否自相交?

C# 泛型和推断类型

Azure 对每个云服务的最大 IaaS 实例数的限制

python - 如何在Azure存储容器中创建目录而不创建额外的文件?

C#相当于VB 6的串口SETTINGS函数

c# - 如何创建只有我可以使用 WCF 访问的公共(public)端点和本地端点?

C# 我应该引发什么样的异常?