Azure Pipelines AzureWebApp@1 任务启动和停止应用服务
Azure Pipelines AzureWebApp@1 Task Start and Stop App Service
我正在使用以下 YAML 脚本通过 Azure Pipelines 将我的 Web 应用部署到我们的 Azure Web 服务:
- deployment: Api
displayName: Deploy Web Api
pool:
name: 'MyApi-FMMR'
environment: 'Prod'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'AzureHFMG'
appType: webApp
appName: 'cp-admin-api-prod'
package: '$(Pipeline.Workspace)/drop/*.zip'
但我想知道,在我使用此任务部署新版本之前是否有必要停止 WebApp。
在旧的经典管道中,我总是观察到这样的事情:
这里在任务前后添加了“停止”和“开始”两个任务,但如果我尝试这样做,即使没有它们也能正常工作。
添加这些任务是最佳做法吗?或者它们是由“AzureWebApp@1”任务隐式调用的?
您不一定需要这些任务; Deploy 任务会自动重启服务。
但是,这有缺点:
- 会有一小段停机时间
- 某些服务会因突然停止和重新启动而受到影响,例如在预热之前无法响应
可以通过使用 staging slot 部署代码来缓解这些问题,然后交换插槽以允许新部署无缝接管。
我正在使用以下 YAML 脚本通过 Azure Pipelines 将我的 Web 应用部署到我们的 Azure Web 服务:
- deployment: Api
displayName: Deploy Web Api
pool:
name: 'MyApi-FMMR'
environment: 'Prod'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'AzureHFMG'
appType: webApp
appName: 'cp-admin-api-prod'
package: '$(Pipeline.Workspace)/drop/*.zip'
但我想知道,在我使用此任务部署新版本之前是否有必要停止 WebApp。
在旧的经典管道中,我总是观察到这样的事情:
这里在任务前后添加了“停止”和“开始”两个任务,但如果我尝试这样做,即使没有它们也能正常工作。
添加这些任务是最佳做法吗?或者它们是由“AzureWebApp@1”任务隐式调用的?
您不一定需要这些任务; Deploy 任务会自动重启服务。
但是,这有缺点:
- 会有一小段停机时间
- 某些服务会因突然停止和重新启动而受到影响,例如在预热之前无法响应
可以通过使用 staging slot 部署代码来缓解这些问题,然后交换插槽以允许新部署无缝接管。