Azure 函数、灵活的测试和生产队列名称
Azure function, flexible test and production queue names
如何设计我的 Azure Function 托管以实现灵活的 test/production 队列隔离?
我计划用 C# 编写 6 个预编译的 Azure Functions 并将其打包为单个 DLL,但尚未决定是使用 WebJobSdk 函数注释还是多个 .json 配置文件。我的 6 个 Azure 函数将只有输入绑定,所有函数都将通过存储队列触发。
我不喜欢在源代码中将队列名称硬编码为方法属性字符串的想法,但我知道 INameResolver 提供了间接命名。
这是 test/production 存储队列绑定隔离的标准解决方案,还是某种其他形式的更高级别的 Azure 环境声明可以用零代码实现同样的效果?
你提到的方法,你依赖 INameResolver
功能来根据环境设置这些队列名称肯定会起作用,并且比你将这些队列名称定义为更灵活预编译程序集中的文字。如果维护环境和编写代码的团队不同,这一点尤为重要。
值得注意的是,尽管单独使用上述方法可行,但为了更好地隔离并避免其他潜在问题,我们的建议是在 developing/testing 和 [= 时使用完全不同的存储帐户17=] 您的生产工作负载。
在这种情况下,您仍然可以利用 INameResolver
行为来增加灵活性。
如何设计我的 Azure Function 托管以实现灵活的 test/production 队列隔离?
我计划用 C# 编写 6 个预编译的 Azure Functions 并将其打包为单个 DLL,但尚未决定是使用 WebJobSdk 函数注释还是多个 .json 配置文件。我的 6 个 Azure 函数将只有输入绑定,所有函数都将通过存储队列触发。
我不喜欢在源代码中将队列名称硬编码为方法属性字符串的想法,但我知道 INameResolver 提供了间接命名。
这是 test/production 存储队列绑定隔离的标准解决方案,还是某种其他形式的更高级别的 Azure 环境声明可以用零代码实现同样的效果?
你提到的方法,你依赖 INameResolver
功能来根据环境设置这些队列名称肯定会起作用,并且比你将这些队列名称定义为更灵活预编译程序集中的文字。如果维护环境和编写代码的团队不同,这一点尤为重要。
值得注意的是,尽管单独使用上述方法可行,但为了更好地隔离并避免其他潜在问题,我们的建议是在 developing/testing 和 [= 时使用完全不同的存储帐户17=] 您的生产工作负载。
在这种情况下,您仍然可以利用 INameResolver
行为来增加灵活性。