最近將案子上了 GCP
因為是小成本案子,如果一直讓機器開機在上面跑,累積下來的金額應該很可怕
所以在沒客人使用的時間下,關掉機器可以省下不少的花費
在設定的時候弄了兩天但一直出現錯誤訊息
於是在這邊紀錄一下
首先當然我們需要建立一個 VM 執行個體,這部分我就不多加敘述
建立完執行個體後旁邊會多一個【執行個體排程】的 Tab
點選後選擇上面的【建立排程】
假設我們需要讓機器每天台灣時間 ( UTC+8 ) 早上九點到晚上九點開機運作,會是像下面這樣設置
提交後點選剛剛建立起來的排程進入設定頁面,然後將需要執行這個排程的執行個體加入排程
如果順利將執行個體加入排程,那恭喜你,但是大部分第一次使用的人應該都會出現下面的錯誤
compute-system.iam.gserviceaccount.com needs to have [compute.instances.start,compute.instances.stop] permissions applied in order to perform this operation.
這個是權限不組所產生的問題,這時我們必須讓 compute-system.iam.gserviceaccount.com 有權限去實作開關機。
首先我們先去 IAM -> 角色 建立一個新的角色
名稱跟 ID 可以任意取名,角色推出階段選擇【一般可用性】
接下來點選新增權限,然後照下圖選擇
完成後畫面如下 :
建立角色完成後我們需要將角色加入成員,接下來我們回到 IAM 設定畫面
然後勾選【包含Google提供的角色授權】
從下方列表尋找對應的成員,名稱會長得像這樣
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
點選編輯成員,將剛剛新增的角色加入儲存
接下來我們回到一開始的【執行個體排程】再加入一次執行個體
就會發現可以成功加入了
另外網路上有一個使用 Cloud Function + Cloud Pub/Sub 的方法也可以自動開關機
也可以自行嘗試看看