起因是我買了一個按需的伺服器,每天白天使用,晚上關閉,進而減少費用(誰晚上還上班。。。)自己手動開關伺服器弄了一段時間,經常容易忘記,導緻錢嘩啦啦的流走了,就問了下華為工程師
不得不說,華為的服務還是可以的,我都準備關閉工單了,他讓我稍等。
華為工程師提供的方案
- 使用 FunctionGraph 服務實作定時開關機,産品示例有已經寫好的 python代碼包,您修改 projectId、region和domain的參數就可以直接使用。support.huaweicloud.com/bestpractic…
-
ECS服務也有提供開關機的API接口,您也可以通過代碼實作開關機
批量啟動雲伺服器 support.huaweicloud.com/api-ecs/ecs…
批量關閉雲伺服器 support.huaweicloud.com/api-ecs/ecs…
我也是按照這個文檔上操作的,但有一些坑,這裡記錄下全流程 FunctionGraph 服務實作定時開關機的全流程
主要分兩步:建立委托和配置函數
建立委托
- 登入統一身份認證服務控制台。
- 在統一身份認證服務的左側導航窗格中,選擇“委托”頁簽,單擊右上方的“+建立委托”
華為雲伺服器設定自動開關機
配置委托
- 委托名稱:EcsOperation。
- 委托類型:選擇“雲服務”。
- 雲服務:選擇“函數工作流 FunctionGraph”。
- 持續時間:選擇“永久”。
- 描述:填寫描述資訊。
華為雲伺服器設定自動開關機 - 進入委托選擇頁面,在右方搜尋框中搜尋“ECS FullAccess”權限并勾選
華為雲伺服器設定自動開關機 - 單擊“下一步”,請根據業務需要選擇權限的作用範圍,點選“确認”完成
配置函數
- 在服務清單裡面搜函數,進去“函數工作流 FunctionGraph”
華為雲伺服器設定自動開關機 - 點選右上角建立函數
華為雲伺服器設定自動開關機 - 使用函數模闆
- 事件函數
- 彈性雲伺服器
- Python3.6
- 找到“定時打開華為雲公有雲虛拟機”,使用模闆
華為雲伺服器設定自動開關機 - 配置基本資訊
- 區域:選擇需要開機的ECS所在區域
- 函數名稱:自定義
- 委托名稱:選擇上面配置好的委托“EcsOperation”
華為雲伺服器設定自動開關機 - 配置環境變量
- projectId:項目ID,
- 在我的憑證裡面可以找到
華為雲伺服器設定自動開關機 - endpoint:ECS的終端節點
- 具體Endpoint資訊,請參考地區和終端節點。
- region:ECS所在的區域
- 在我的憑證裡面可以找到
- whiteLists:當定時開啟華為公有雲虛拟機時,填寫需開啟的虛拟機ID,以英文逗号分隔
華為雲伺服器設定自動開關機 - 配置觸發器
- 定時器名稱:預設即可,也可以自定義
- 觸發規則:可以固定頻率,也可以Cron表達式
- 了解Cron表達式
- 為了測試,可以先使用固定頻率,看函數是否生效,觸發器後面删掉,在重新做一個
華為雲伺服器設定自動開關機 - 這樣函數就建立完成了
- 函數建立完成之後,需要添加依賴包“huaweicloudsdk_ecs_core_py3.6”
- 進入函數,代碼頁簽底下(這個地方找了好久)
華為雲伺服器設定自動開關機 - 可以在監控裡面開啟動日志
華為雲伺服器設定自動開關機 - 可以在設定裡面更改觸發器
華為雲伺服器設定自動開關機 - 設定觸發器
- 使用Cron表達式(參考官網)
- 了解Cron表達式
華為雲伺服器設定自動開關機 至此使用 FunctionGraph 服務實作定時開機就完成啦
關機的話,操作是一樣,選擇關機模闆即可