在 Azure DevOps 中,如何在将应用程序部署到 Functions 时优雅地重启
In Azure DevOps, how to gracefully restart when deploying an app to Functions
在 Azure DevOps Pipeliens 中,将应用程序部署到 Functions 时,应用程序可能会在应用程序运行过程中重新启动。
有没有办法监控 Functions 应用程序是否在管道中 运行,确保它已完成,然后部署应用程序?
条件
- 函数运行时:Java
- 触发器:服务总线触发器
我尝试用Azure CLI检查Service Bus消息的锁定状态或Functions应用程序的处理状态,但似乎没有检查处理状态的界面。
https://docs.microsoft.com/en-us/cli/azure/functionapp?view=azure-cli-latest
https://docs.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest
你永远不应该依赖更好地构建你的函数来快速执行。
当 Azure 函数在 c# 中发送停止信号时,我们有 CancellationToken 这样我们就可以有额外的代码来实现关闭,否则一旦 AF 收到停止信号,它就不会接受来自服务总线的新事件但会继续执行当前功能,如果它们不会停止一段时间,则可以终止它们(无法找到确切时间,但会更新答案)
我也会 suggest you to utilise deployment 以这种方式插入插槽,这样可以最大程度地减少停机时间。
在 Azure DevOps Pipeliens 中,将应用程序部署到 Functions 时,应用程序可能会在应用程序运行过程中重新启动。
有没有办法监控 Functions 应用程序是否在管道中 运行,确保它已完成,然后部署应用程序?
条件
- 函数运行时:Java
- 触发器:服务总线触发器
我尝试用Azure CLI检查Service Bus消息的锁定状态或Functions应用程序的处理状态,但似乎没有检查处理状态的界面。
https://docs.microsoft.com/en-us/cli/azure/functionapp?view=azure-cli-latest https://docs.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest
你永远不应该依赖更好地构建你的函数来快速执行。
当 Azure 函数在 c# 中发送停止信号时,我们有 CancellationToken 这样我们就可以有额外的代码来实现关闭,否则一旦 AF 收到停止信号,它就不会接受来自服务总线的新事件但会继续执行当前功能,如果它们不会停止一段时间,则可以终止它们(无法找到确切时间,但会更新答案)
我也会 suggest you to utilise deployment 以这种方式插入插槽,这样可以最大程度地减少停机时间。