簡體   English   中英

等待新部署的應用服務在 Azure Devops 發布管道中重新啟動

[英]Waiting for a freshly deployed app service to be restarted in Azure Devops Release pipeline

我有一個發布管道,它運行 Azure 應用服務部署任務,然后從 Stephane Eyskens 的“API 管理套件”運行 API 管理更新任務。

API 管理任務調用 Swagger 端點來更新 API 管理中的 OpenAPI 模式。

問題是應用服務部署任務在說謊 - 應用程序在部署后還沒有准備好。 它仍然運行舊版本,實際完成部署需要一些時間(10 - 20 秒)。

因此,當 API 更新任務開始時,它實際上會選擇舊版本服務的 Swagger 定義,而不是新部署的。

有沒有什么合理的方法來檢測應用服務部署過程的真正完成來延遲管道,直到應用程序完全重新啟動?

順便說一下,手動重新啟動應用程序服務時也會發生同樣的情況。 Azure 高興地報告服務已重新啟動,但實際上,對服務的任何請求仍會返回應用程序的舊狀態大約 5 秒,然后它又關閉了 5 秒,然后它啟動並運行新狀態。 微軟應該對此采取一些措施,以停止在重新啟動期間就其應用程序的狀態向開發人員撒謊。

我們遇到了類似的問題(應用服務槽真正可用的時間問題),所以我們做了以下工作:

  1. 部署到插槽
  2. 重新啟動插槽
  3. 在插槽上運行冒煙測試,直到我們得到 200

為此,我們使用了市場上的煙霧測試任務 您可以使用端點地址、預期成功狀態代碼以及重試和嘗試之間的等待時間對其進行配置。 一旦我們得到 200,管道就會繼續下一個任務。

我認為這與您的問題無關,但我們對非生產槽執行上述操作,然后在上述所有情況發生后在管道中與生產進行交換。 這允許我們在交換之前預熱非生產槽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM