我正在嘗試在 ec2 實體上運行 python 腳本。python 檔案駐留在 s3 上。我可以使用允許訪問 s3 檔案夾和檔案的 iam 角色從 ec2 實體手動運行。
問題是,我如何在需要時自動啟動和停止 ec2 實體,以及如何在啟動 ec2 實體時呼叫/傳遞 python 檔案并在 python 檔案完成執行后停止該實體。
謝謝,尼基爾
uj5u.com熱心網友回復:
EC2 實體使用cloudinit,您可以自定義它以在每次啟動時運行給定的腳本。您可以使用 python 中的常規 os 工具來關閉您的實體(例如shutdown -h now)。
uj5u.com熱心網友回復:
您的要求似乎是:
- 安排 Amazon EC2 實體在每天的特定時間啟動
- 實體應該在啟動后運行一個 Python 腳本
- 當 Python 腳本運行完畢后,停止實體
按計劃啟動 EC2 實體
您可以使用Amazon EventBridge按計劃觸發AWS Lambda 函式。
您可以撰寫 Lambda 函式以呼叫StartInstances()EC2 實體來啟動它。
在啟動時運行腳本
將腳本安裝到/var/lib/cloud/scripts/per-boot/目錄中。該腳本可以從 S3 下載 Python 程式,然后運行它。
當 EC2 實體啟動時,它會自動運行該目錄中的任何腳本。
腳本完成后停止實體
在腳本的末尾,添加以下命令:
shutdown -h now
這將關閉實體并將其置于已停止狀態。
(假設腳本以 root 身份運行。如果它以其他用戶身份運行,則需要使用sudo shutdown -h now.)
uj5u.com熱心網友回復:
如果腳本的最大執行時間小于 15 分鐘,另一種替代方法是使用 lambda 函式而不是 EC2 實體來運行 python 腳本。使用 AWS lambda 而不是 EC2 實作無服務器。只需在 AWS lambda 中添加您的腳本代碼并從 AWS 事件橋調度 lambda 函式來呼叫它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/365076.html
