【发布时间】:2021-09-02 23:00:45
【问题描述】:
我们将 Azure 应用服务与插槽部署结合使用,并且在执行交换时我们看到了意外行为。
我们正在尝试在每次插槽交换期间防止 CMS 内容在暂存(具有 DatabaseMode: ReadOnly 插槽设置)上同步。
我们怀疑在应用设置之前可能会进行额外的重启?
主机环境:Azure 应用服务(带插槽)
应用设置:
分期:
- WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG:1
- DatabaseMode:只读(特定于插槽)
- 其他
直播:
- WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG:1
- 其他
Staging 和 Live 插槽使用相同的数据库,Staging 已使用应用服务应用设置启用只读。 DatabaseMode:ReadOnly 在插槽上工作(在我们的例子中阻止同步),即使重新启动登台,我们也确认了这一点。
在部署期间: https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots#what-happens-during-a-swap
我们立即部署到分期并触发交换。
我们所看到的:
- 新版本部署到暂存 - 应用重新启动,内容不同步(好)
- 交换开始,实时设置应用于暂存 - 应用重启,内容同步(良好)
- 交换发生
- 暂存设置应用于“旧直播” - 应用重新启动,内容同步(错误),即使 (DatabaseMode: ReadOnly) 被应用为粘性暂存设置。
- 交换完成
- 暂存槽启用了 DatabaseMode: ReadOnly,进一步手动重启不会同步内容。
在交换期间是否发生了我们不知道的鲜为人知的操作,哪些操作会导致在应用暂存设置之前重新启动? 或者还有什么可能导致这种情况?
当然有一个选项是 CMS 不获取值或 smth,我们正在单独研究它,但这仅在重新启动时发生交换,因此希望了解 Azure 方面发生的一切并确定是否是不是 Azure 的问题
【问题讨论】:
标签: azure azure-web-app-service azure-deployment-slots