【问题标题】:Disable azure durable function in staging slot在暂存槽中禁用 azure 持久功能
【发布时间】:2022-06-14 10:05:47
【问题描述】:
我有一个函数应用(一个服务总线触发函数,它是一个包含启动器、编排器、活动函数的持久函数),带有一个生产槽和一个暂存槽。
我不希望暂存槽中的函数被服务总线中的队列元素触发。我通过添加设置 AzureWebJobs.StarterFunction.Disabled = 1 禁用了暂存槽中的启动器功能。
我仍然看到暂存槽中的所有其他功能正在运行。我应该添加设置以禁用暂存槽中的所有功能吗?是否有不同的方法来确保暂存中的功能不运行?
【问题讨论】:
标签:
azure-durable-functions
azure-deployment-slots
【解决方案1】:
我们遇到了同样的问题,并添加了一个简单的技巧来解决问题。
-
创建一个虚假的服务总线,该服务总线具有与生产服务总线同名的队列。
-
在您的 Azure 函数的暂存槽的配置边栏选项卡中,覆盖您的服务总线连接字符串。将此设置标记为部署槽设置。这样,当你交换插槽时,它就不会被交换。
-
像您当前一样部署到您的暂存槽。您的 Azure 函数将从您的应用配置中读取服务总线连接字符串。由于没有将消息放入此服务总线队列,因此不会触发绑定。
您还需要了解如何处理 host.json 中的 Durable Task taskhub 名称。如果您在 staging 和 prod 插槽之间使用相同的硬编码名称,则您的 staging 部署将开始从 prod 运行协调器和活动功能。