azure - Azure Functions:部署到暂存槽重新启动生产槽
问题描述
我们在消费计划中有一个 Azure Function v3 实例,其中包括一个暂存槽,以减少部署期间的停机时间。
我们的部署流程是:
- 将代码部署到暂存槽
- 启动暂存槽
- 将暂存槽与生产槽交换
- 停止暂存槽
我们正在使用 Azure Pipelines 将代码 .NET Core 3.1 部署到暂存槽;这是此步骤的 YAML 定义:
- task: AzureFunctionApp@1
displayName: 'Deploy to Staging Slot'
inputs:
azureSubscription: '****'
appType: functionApp
appName: '****'
package: '$(System.ArtifactsDirectory)/Build.zip'
deployToSlotOrASE: true
slotName: 'staging'
resourceGroupName: '****'
我已禁用此步骤之后的所有步骤并仅运行此步骤。在 Azure Pipelines 中完成该步骤后,主应用程序(即生产槽)将重新启动,我开始收到 503 Service Unavailable 约 5 秒,然后是冷启动。
我不明白的是如何将代码部署到暂存槽而不进行交换会导致生产槽重新启动。
我已经确保禁用了自动交换,所以情况并非如此。
如何解释和修复?我们正在尝试完全删除 503 并进行零停机部署。
更新:我已经尝试添加WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG
到登台和生产槽。没有什么不同。
解决方案
推荐阅读
- c++ - Qt 4.8.7 内存伪影
- javascript - 使用 Moment.js 为 ISO 8601 日期创建条件
- javascript - 在EXTJS中单击树形面板的最后一个子元素时如何触发事件
- c++ - c++ 我是否需要手动删除一个指向另一个具体类型的 void* 指针?
- ios - 在 MKMapView 上显示 PHAsset
- json - 如何使用 pl/pgsql 将具有动态元素名称的 JSON 数据转换为行?
- python - OptionsMenu 仅显示每个列表中的第一项?
- qt - Qt Creator 在启动几分钟后没有响应
- python - 在运行 Pandas 代码时,将 Dask 与 Python 一起使用会导致问题
- awk - 为什么 awk 不打印所有记录?