Handle multiple gcloud accounts with ease
สำหรับการใช้งานใน GCP สิ่งที่จะขาดไม่ได้คือการใช้งานเจ้า Cloud SDK ด้วยคำสั่ง gcloud
command แต่เรื่องที่น่าปวดหัวที่สุดหลังเราได้ gcloud init
ไปแล้ว เราจะได้ config ที่ชื่อ default
มา
ปัญหาคือเรามักจะจำไม่ได้แล้วว่าตอนนั้นใช้ account อะไรไปนะ หรือไม่ก็ จำ account ได้นะ แต่อยากสลับไปอีก project หนึ่ง สิ่งที่เราจะแก้อาจจะเป็นการใช้ gcloud config set project <another-project>
ซึ่งจะเป็นการแก้ไข config
แต่หารู้ไม่ว่า วันดีคืนดีกลับมาเล่นอีกรอบ เผลอ deploy อะไรเล่นๆแล้ว อาจจะ deploy ไปผิดโปรเจคได้ (เพราะเราเคยทำมาแล้ว 😅)
ดังนั้นเราจะเลิกแก้ไข config ตัวนี้ แต่สร้าง config ใหม่ที่เราอยากจะใช้ และเมื่อถึงเวลาใช้ ก็ชี้ไปยัง config นั้นได้เมื่อต้องการ
ซึ่งจะเหมาะกับใครหลายคนที่มี account หรือ project ที่มากกว่า 1, จะได้ไม่ต้องมาปวดหัวว่าเคยเซ็ตอะไรไปน้า
1. Create new config
เราจะสร้าง config ที่ชื่อ etl-pipeline
ด้วยคำสั่ง
gcloud config configurations create <config-name>
คำสั่งนี้เมื่อสร้างเสร็จ จะ activate ตัว config นี้ทันที ซึ่งทำให้เราสามารถ set ตัวค่าอื่นๆได้เช่น project, account, region
2. Set project id
gcloud config set project <project-id>
3. Set account name
เราจำเป็นที่จะจ้องระบุ account ด้วย โดยการใส่ email ที่จะใช้ ไม่งั้นจะระบุ region ต่อไม่ได้
gcloud config set account <gcp-email>
4. Set region
gcloud config set compute/region <region-name>
region name เช่น asia-southeast1
สามารถเลือกได้ตามนี้
5. Set Zone
gcloud config set compute/zone <zone-name>
zone เช่น asia-southeast1-a
List configurations
gcloud config configurations list
etl-pipeline
ได้ถูกสร้างขึ้นและมี setting ตามนี้เลยสังเกตที่ IS_ACTIVE
ว่าเราย้ายมาที่ etl-pipeline อยู่
ต่อไปในกรณีที่เราอยากสลับไปอีก config ก็สามารถใช้คำสั่งสลับได้โดยใช้ command ด้านล่าง
gcloud config configurations activate <another-config>
Delete config
ในกรณีที่เราอยากจะลบ config นั้น ก็สามารถทำได้ด้วยคำสั่ง
gcloud config configurations delete <config-name>
คราวนี้การสลับ account หรือ project เราจะไม่ยุ่งยากอีกต่อไป อยากจะใช้ก็เพียง activate ตัว config นั้นๆได้เลย 🎉🎉🎉
และ !
อย่าลืมใช้คำสั่ง gcloud config configurations list
เสมอว่าอยู่ config ตัวไหนก่อน deploy ทุกครั้งนะคะ ด้วยความหวังดี 😂
ref: