簡體   English   中英

如何阻止構建代理在 Azure devops 的管道進程中等待

[英]How to stop build agent from waiting in the pipeline process in Azure devops

我已經能夠通過一個 python 腳本組裝一個在 AWS 中觸發 step 函數的管道,該腳本估計運行 7 小時,管道中的下一個作業取決於 step 函數的成功完成。 下一個工作也是一個 python 腳本,它在雪花中生成 30 小時的表格。 這按預期工作,但需要改進。 Azure devops 管道中的構建代理等待 30 小時,這並不好。 我正在尋找有效的方法來觸發調用雪花並退出管道以阻止構建代理等待的 python 腳本。

有哪些可用選項?

  1. 是否可以使用 lambda 調用此雪花並退出管道,如果出現任何問題,管道將如何獲得通知?
  2. 有建議使用webbook,之前沒有使用過webhook,有沒有使用的指針?
  1. 是否可以使用 lambda 調用此雪花並退出管道,如果出現任何問題,管道將如何獲得通知?

Lambda 函數在 15 分鍾后超時。 因此,僅將您的腳本放入 Lambda 函數是行不通的。

  1. 有建議使用webbook,之前沒有使用過webhook,有沒有使用的指針?

Webhook 只是通過 HTTP 調用調用另一個服務的一種方式。 當您通過 API Gateway 調用 Lambda Function 或 Step Function 時,您可以將其視為一個 webhook。 Snowflake 端可能還有一個 webhook 來執行一些操作。 但這並不能解決腳本執行部分。

我建議通過以下方式將 Step Function 與 Lambda 函數一起使用:

  1. 從您的 Python 中提取 SQL 查詢,讓 Step Function 的第一步為每個查詢調用一個 Lambda 函數。
  2. 並行執行 Lambda 函數的查詢。
  3. 從您的管道中調用您的 Step Function,不要等待執行完成。
  4. 使用Amazon SNS發送電子郵件以通知 Step Function 何時完成。

您可以在 CloudWatch 中查看您的個人執行結果——這對調試和統計很有用。

如果每個 SQL 查詢運行時間不到 15 分鍾,這將起作用。 如果沒有,您可以考慮在容器環境、EC2 Spot 實例或 AWS Batch 中運行腳本。

暫無
暫無

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

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