iT邦幫忙

2

GCP 自動開關機

  • 分享至 

  • xImage
  •  

最近將案子上了 GCP
因為是小成本案子,如果一直讓機器開機在上面跑,累積下來的金額應該很可怕
所以在沒客人使用的時間下,關掉機器可以省下不少的花費
在設定的時候弄了兩天但一直出現錯誤訊息
於是在這邊紀錄一下


首先當然我們需要建立一個 VM 執行個體,這部分我就不多加敘述
建立完執行個體後旁邊會多一個【執行個體排程】的 Tab

https://ithelp.ithome.com.tw/upload/images/20210625/20119242JexQ0PCDfr.jpg

點選後選擇上面的【建立排程】
https://ithelp.ithome.com.tw/upload/images/20210625/20119242EHMfdSHxOp.jpg

假設我們需要讓機器每天台灣時間 ( UTC+8 ) 早上九點到晚上九點開機運作,會是像下面這樣設置
https://ithelp.ithome.com.tw/upload/images/20210625/20119242we3C2gFW0s.jpg

提交後點選剛剛建立起來的排程進入設定頁面,然後將需要執行這個排程的執行個體加入排程
https://ithelp.ithome.com.tw/upload/images/20210625/20119242aLHVjnJjyz.jpg
https://ithelp.ithome.com.tw/upload/images/20210625/201192422ypW0F2av3.jpg

如果順利將執行個體加入排程,那恭喜你,但是大部分第一次使用的人應該都會出現下面的錯誤

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 -> 角色 建立一個新的角色
https://ithelp.ithome.com.tw/upload/images/20210625/20119242ErsIeWKdyf.jpg
名稱跟 ID 可以任意取名,角色推出階段選擇【一般可用性】
接下來點選新增權限,然後照下圖選擇
https://ithelp.ithome.com.tw/upload/images/20210625/20119242vvRgqF70lF.jpg
完成後畫面如下 :
https://ithelp.ithome.com.tw/upload/images/20210625/20119242w10enCX1Ty.jpg
建立角色完成後我們需要將角色加入成員,接下來我們回到 IAM 設定畫面
然後勾選【包含Google提供的角色授權】
從下方列表尋找對應的成員,名稱會長得像這樣

service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

點選編輯成員,將剛剛新增的角色加入儲存
接下來我們回到一開始的【執行個體排程】再加入一次執行個體
就會發現可以成功加入了


另外網路上有一個使用 Cloud Function + Cloud Pub/Sub 的方法也可以自動開關機
也可以自行嘗試看看


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言