Handle multiple gcloud accounts with ease

Burasakorn Sabyeying
Mils’ Blog
Published in
2 min readDec 30, 2021
photo from Unsplash by Aedrian

สำหรับการใช้งานใน 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
จะเห็นได้ว่า config ที่ชื่อ 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:

--

--

Burasakorn Sabyeying
Mils’ Blog

Data engineer at CJ Express. Women Techmakers Ambassador. GDG Cloud Bangkok team. Moved to Mesodiar.com