การพัฒนาด้วย Cloud Shell และ โค้ดของ Cloud

1. ภาพรวม

Cloud Shell เป็นสภาพแวดล้อมในการพัฒนาและปฏิบัติการออนไลน์ที่เข้าถึงได้ทุกที่ด้วยเบราว์เซอร์ คุณจัดการทรัพยากรได้ด้วยเทอร์มินัลออนไลน์ที่โหลดไว้ล่วงหน้าพร้อมยูทิลิตีต่างๆ เช่น เครื่องมือบรรทัดคำสั่ง gcloud, kubectl และอื่นๆ นอกจากนี้ คุณยังพัฒนา สร้าง แก้จุดบกพร่อง และทำให้แอปในระบบคลาวด์ใช้งานได้โดยใช้ Cloud Shell Editor แบบออนไลน์

ในแล็บนี้ คุณจะได้ทำงานกับ Cloud Shell, Cloud Shell Editor, การสร้าง การทำให้ใช้งานได้ และการทดสอบแอปพลิเคชันที่อิงตามคอนเทนเนอร์โดยใช้ Cloud Code ในโปรแกรมจำลองภายในเครื่องและในบริการจริง

สิ่งที่คุณจะได้เรียนรู้

  • ไปยังส่วนต่างๆ และทำความคุ้นเคยกับฟีเจอร์หลักของ Cloud Shell
  • ฝึกฝนรูปแบบการใช้งาน Cloud Shell ที่แตกต่างกัน
  • ปรับแต่งสภาพแวดล้อมของ Cloud Shell สำหรับการใช้งานขั้นสูง
  • ทำความคุ้นเคยกับตัวเลือกและฟีเจอร์ของ Cloud Code
  • ดูรายละเอียดของ Cloud Code สำหรับแอปพลิเคชัน Kubernetes
  • ใช้โปรแกรมจำลองในเครื่อง เช่น Minikube

ข้อกำหนดเบื้องต้น

  • คุณจะต้องมีโปรเจ็กต์ GCP ที่มีสิทธิ์ระดับผู้แก้ไข บัญชี GCP และสิทธิ์เข้าถึง Cloud Shell
  • สำหรับส่วนที่ไม่บังคับ คุณจะต้องติดตั้งโปรแกรมจำลองเทอร์มินัลและ Google Cloud SDK

2. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง

  1. ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ โดยคุณจะอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยปกติจะระบุเป็น PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณก็สร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณจะลองใช้ชื่อของคุณเองเพื่อดูว่าพร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะยังคงอยู่ตลอดระยะเวลาของโปรเจ็กต์
  • โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
  1. จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้ไม่ควรมีค่าใช้จ่ายมากนัก หรืออาจไม่มีเลย หากต้องการปิดทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบทั้งโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

3. การทำงานกับเทอร์มินัล Cloud Shell

ในส่วนนี้ คุณจะได้เรียนรู้เกี่ยวกับเทอร์มินัล Cloud Shell, วิธีไปยังส่วนต่างๆ ของ UI, การใช้ฟีเจอร์ต่างๆ รวมถึงตัวเลือกการกำหนดค่าและวิธีต่างๆ ในการใช้เพื่อช่วยเพิ่มประสิทธิภาพการทำงาน

Cloud Shell มีเครื่องมือหลัก 2 อย่าง ได้แก่ เทอร์มินัล Cloud Shell และโปรแกรมแก้ไข Cloud Shell ในแล็บนี้จะใช้คำว่าเทอร์มินัล Cloud Shell และ Cloud Shell สลับกัน แต่จะเรียกโปรแกรมแก้ไขว่า Cloud Shell Editor เสมอเพื่อให้เห็นความแตกต่างอย่างชัดเจนระหว่างโปรแกรมจำลองเทอร์มินัลกับ IDE

Cloud Shell เป็นเชลล์บนระบบคลาวด์ที่มีฟังก์ชันการทำงานเต็มรูปแบบ ซึ่งสร้างขึ้นบนเครื่อง Linux ที่ใช้ Debian ของ Google Compute Engine แบบชั่วคราวที่พร้อมให้คุณใช้งานได้เสมอ โดยมาพร้อมกับ Google Cloud SDK ที่ติดตั้งไว้และเครื่องมือที่เกี่ยวข้องหลายอย่าง เช่น git, kubectl, kubectx, curl, python3, tmux...

Google Cloud จะเก็บไดเรกทอรี $HOME ไว้ใน Cloud Storage และจะติดตั้งไดเรกทอรีนี้โดยอัตโนมัติทุกครั้งที่เครื่อง Cloud Shell เริ่มทำงาน คุณจึงไม่สูญเสียข้อมูลใดๆ ที่เก็บไว้ในไดเรกทอรีนี้แม้ว่าเครื่อง Cloud Shell จะปิดตัวลงก็ตาม ซึ่งหมายความว่าหากคุณเปิดใช้ Cloud Shell อีกครั้ง ไดเรกทอรี $HOME และการปรับแต่งใดๆ ที่คุณอาจทำไว้จะพร้อมให้คุณใช้งาน

การเปิดใช้ Cloud Shell

  1. ไปที่ console.cloud.google.com แล้วป้อนข้อมูลเข้าสู่ระบบ Google หากยังไม่ได้เข้าสู่ระบบในคอนโซล GCP คุณจะเห็น UI หลักของคอนโซล Google Cloud Platform
  2. เลือกรหัสโปรเจ็กต์ GCP ที่คุณจะใช้ในตัวเลือกแถบเมนูของ Cloud Console

a78258af94ed9ec3.png

  1. ค้นหาปุ่มเปิดใช้งาน Cloud Shell ทางด้านขวาของแถบเมนู ถัดจากอวตารของบัญชี

5b4246f45b173ff4.png

  1. คลิกไอคอน Cloud Shell แล้วเทอร์มินัล Cloud Shell จะเปิดขึ้น ซึ่งจะแสดงแผงใหม่ใต้ UI ของคอนโซล GCP ดังนี้

8495f27a3ed0f05.png

ในบานหน้าต่างนี้ คุณจะมีสิ่งที่เรียกว่าเทอร์มินัล Cloud Shell

  1. ไปที่เทอร์มินัล Cloud Shell แล้วสังเกตว่าเมื่อคุณเลือกรหัสโปรเจ็กต์ GCP ที่เหมาะสมจากคอนโซล GCP แล้ว Cloud Shell จะทราบรหัสดังกล่าว คุณจึงไม่ต้องระบุอีกครั้ง
echo $GOOGLE_CLOUD_PROJECT

ซึ่งจะแสดงรหัสโปรเจ็กต์ GCP ของคุณ ซึ่งจะแสดงในพรอมต์ของ Cloud Shell ด้วย

การสลับไปมาระหว่างเครื่องมือ

Cloud Shell มีเครื่องมือและตัวเลือกการกำหนดค่าหลายอย่างให้คุณ ตรวจสอบผ่านตัวเลือกที่มีในเมนู Cloud Shell ดังนี้

595834af08265e5c.png

  1. คลิกปุ่ม 67bd0e39332a8438.png ในแถบที่จะช่วยให้คุณขยายเทอร์มินัล Cloud Shell และใช้พื้นที่แท็บทั้งหมดของเบราว์เซอร์

1197e3e9a36bc7aa.png

  1. Cloud Shell จะขยายและใช้พื้นที่แท็บเบราว์เซอร์ทั้งหมด

ecb227a1d39b8021.png

  1. คลิกอีกครั้ง พื้นที่ในแท็บเบราว์เซอร์จะกลับมาแชร์ระหว่าง Cloud Console กับ Cloud Shell

การเปิดแท็บใหม่

เทอร์มินัล Cloud Shell ช่วยให้คุณเปิดแท็บได้มากเท่าที่ต้องการ

  1. คลิกปุ่มต่อไปนี้แล้วเปิดแท็บใหม่

e5757f88b64c7f5.png

  1. ตอนนี้ให้ปิดแท็บใหม่โดยคลิก x ข้างชื่อแท็บหรือพิมพ์ exit ในเชลล์ที่เกี่ยวข้อง

8828238e04a14a20.png

การเปิดหน้าต่างใหม่

การเปิด Cloud Shell ในหน้าต่างเบราว์เซอร์ใหม่จะช่วยให้คุณมี Cloud Console ในหน้าต่างหนึ่งและ Cloud Shell ในอีกหน้าต่างหนึ่งได้

  1. คลิกปุ่มต่อไปนี้และสังเกตว่า Cloud Shell เปิดในแท็บเบราว์เซอร์ใหม่ได้อย่างไร

bd407e51ae78d9fe.png

  1. โปรดทราบว่าตอนนี้ Cloud Shell มีตัวเลือกแถบเครื่องมือแบบเดียวกัน แต่มีลักษณะที่แตกต่างกันเล็กน้อย ดังนี้

4bce4507ce34a695.png

  1. อยู่ในแท็บเบราว์เซอร์ใหม่นี้ตลอดส่วนถัดไป

การโอนเซสชันด้วย Tmux

Cloud Shell มาพร้อมกับ tmux Tmux เป็นมัลติเพล็กเซอร์เทอร์มินัลที่ได้รับความนิยมอย่างมาก ซึ่งคล้ายกับ GNU Screen การผสานรวมกับ tmux ช่วยให้ Cloud Shell สามารถรักษาเซสชันของคุณไว้ได้ไม่ว่าคุณจะอยู่ที่ใด

ในขั้นตอนต่อไปนี้ คุณจะได้ฝึกฝนแนวคิดนี้เพื่อทำความเข้าใจฟีเจอร์นี้ได้ดียิ่งขึ้น

การย้ายเทอร์มินัล Cloud Shell

  1. ในแท็บ Cloud Shell ที่เพิ่งเปิด ให้พิมพ์คำสั่ง top:

bdd80a3fdcc6c7db.png

คำสั่ง top จะแสดงมุมมองแบบเรียลไทม์ของกระบวนการที่ทำงานในเทอร์มินัล Cloud Shell คุณจะใช้เพื่อแสดงภาพการคงอยู่ของเซสชันใน Cloud Shell ที่ tmux จัดเตรียมไว้ให้

  1. กลับไปที่แท็บแรกในเบราว์เซอร์ (แท็บที่มี Cloud Console)
  2. โปรดสังเกตว่าเนื่องจากก่อนหน้านี้คุณตัดสินใจที่จะเปิด Cloud Shell ในหน้าต่างใหม่ จึงมีข้อความที่ระบุว่า "Your session was transferred to another browser tab. You can disable this from the "Tmux Settings" option in the Cloud Shell settings menu."
  3. คลิกปุ่มเชื่อมต่ออีกครั้ง

bdc5d5773296bcfe.png

จากนั้นคุณจะมีสิทธิ์เข้าถึงเชลล์ที่ทำงานในแท็บที่ 2 และ top จะทำงานต่อไปที่นี่เหมือนกับที่คุณเพิ่งออกจากแท็บ

  1. ไปที่แท็บที่ 2 ในเบราว์เซอร์ ซึ่งคุณเปิด Cloud Shell ในหน้าต่างใหม่
  2. คลิกเชื่อมต่ออีกครั้ง คุณจะกู้คืนกระบวนการที่ทำงานอยู่ด้านบนสุดได้เหมือนกับที่ทำงานอยู่ก่อนที่เราจะปิดหน้าต่าง

การแยกหน้าต่างด้วย Tmux

Tmux มีประโยชน์มากกว่าที่คุณใช้ไปมาก บทแนะนำ tmux อยู่นอกขอบเขตของแล็บนี้ คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับ tmux ได้ในการเริ่มต้นใช้งาน tmux อย่างเป็นทางการ

อย่างไรก็ตาม tmux จะให้ฟีเจอร์เพิ่มเติมแก่ Cloud Shell ซึ่งเป็นฟีเจอร์ที่ใช้ได้ในโปรแกรมจำลองเทอร์มินัลในเครื่อง หากต้องการสาธิต ให้คุณแยกเทอร์มินัลแบบเคียงข้างกัน

  1. ใน Cloud Shell ให้กด Ctrl + b แล้วกด %
  2. ดูวิธีที่ tmux สร้างแผงใหม่ทางด้านขวาของแผงเดิม

717b047d71c8eeef.png

  1. คลิกที่บานหน้าต่างที่ 2 แล้วพิมพ์ exit

ใช้ตัวอย่างเว็บ

นอกจากนี้ Cloud Shell ยังสร้างการส่งต่อพอร์ตอัตโนมัติจากเครื่อง Cloud Shell ที่ทำงานในระบบคลาวด์ผ่านเบราว์เซอร์ในเครื่องที่ทำงานในคอมพิวเตอร์ได้ด้วย

  1. พิมพ์ใน Cloud Shell ดังนี้
python3 -m http.server 8080
  1. ไปที่ตัวเลือกตัวอย่างเว็บที่มุมขวาบน แล้วเลือกแสดงตัวอย่างบนพอร์ต 8080

a8363cafca79345.png

แท็บใหม่จะเปิดขึ้นพร้อมหน้าเริ่มต้นที่แสดงในพอร์ตนั้น

โปรดทราบว่าคุณสามารถเปลี่ยนพอร์ตและดูตัวอย่างพอร์ตใดก็ได้ที่แอปพลิเคชันแสดงใน Cloud Shell ไม่ใช่แค่พอร์ต 8080

การเข้าถึงตัวเลือก Cloud Shell เพิ่มเติม

Cloud Shell มีการตั้งค่าและตัวเลือกเพิ่มเติมให้ใช้งาน

  1. คลิก 3 จุดในเมนู Cloud Shell เพื่อเข้าถึงตัวเลือกต่อไปนี้

a5c515c9df9284be.png

ตัวเลือกที่เกี่ยวข้องมากที่สุดในที่นี้คือความเป็นไปได้ในการอัปโหลดหรือดาวน์โหลดไฟล์ไปยัง Cloud Shell และรีสตาร์ทเครื่อง Cloud Shell ในกรณีที่คุณพบปัญหา

4. การทำงานกับ Cloud Shell Editor

ฟีเจอร์ที่สำคัญที่สุดอย่างหนึ่งของ Cloud Shell คือ Cloud Shell Editor ซึ่งเป็น IDE ที่สมบูรณ์แบบซึ่งอิงตามโปรเจ็กต์โอเพนซอร์ส Eclipse Theia และ Google เป็นหนึ่งในผู้ร่วมพัฒนา รูปลักษณ์และความรู้สึกคล้ายกับ VSCode มาก เนื่องจากทั้ง 2 อย่างใช้คอมโพเนนต์พื้นฐานแบบโอเพนซอร์สทั่วไปหลายอย่าง เช่น เอดิเตอร์ Monaco, โมเดลส่วนขยาย, โปรโตคอลเซิร์ฟเวอร์ภาษา และโปรโตคอลอะแดปเตอร์การแก้ไขข้อบกพร่อง

เนื่องจาก Theia/Cloud Shell Editor เป็นเครื่องมือที่ค่อนข้างซับซ้อน การอธิบายฟีเจอร์ทั้งหมดของ Cloud Shell Editor จึงอยู่นอกขอบเขตของแล็บนี้ ในส่วนนี้ คุณจะได้ดูแนวคิดหลักและฟีเจอร์ที่ไม่เหมือนใครบางอย่างที่พร้อมใช้งานในการติดตั้งใช้งาน Google Cloud นี้

การเข้าถึง Cloud Shell Editor

คุณเข้าถึง Cloud Shell Editor ได้ 3 วิธีดังนี้

  • เข้าถึงจากบรรทัดคำสั่ง
  • เข้าถึงผ่านเมนู Cloud Shell
  • การเข้าชม URL ในเบราว์เซอร์

ลองใช้วิธีการเหล่านี้โดยทำตามขั้นตอนต่อไปนี้

  1. เปิด .bashrc จากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้
cloudshell edit $HOME/.bashrc
  1. เปิด Cloud Shell จากเมนูโดยคลิกปุ่มเปิดตัวแก้ไข 6039dbc755bfca9f.png: f493b9a98771b0af.png ซึ่งจะเปิด Cloud Shell Editor พร้อมกับเปิดเทอร์มินัล Cloud Shell ไว้ หากต้องการให้แท็บทั้งหมดเป็นของ Cloud Shell Editor เพียงอย่างเดียว ให้คลิกปุ่มทางด้านขวาของปุ่มแก้ไขเพื่อปิดเทอร์มินัล ปุ่ม 2 ปุ่มนี้ (เปิด/ปิดเครื่องมือแก้ไขและเปิด/ปิดเทอร์มินัล) จะกำหนดว่าเครื่องมือใดจะอยู่ในแท็บเบราว์เซอร์ ลองคลิกทั้ง 2 ปุ่มเพื่อฝึกฝน
  2. เรียกใช้ Cloud Shell Editor จากแถบ URL ในเบราว์เซอร์โดยพิมพ์ ide.cloud.google.com

การใช้บรรทัดคำสั่งจาก Cloud Shell Editor

แม้ว่าคุณจะมีทั้งเทอร์มินัล Cloud Shell และ Cloud Shell Editor อยู่ในแท็บเบราว์เซอร์เดียวกัน แต่คุณก็สามารถละเว้นเทอร์มินัล Cloud Shell และใช้เฉพาะ Cloud Shell Editor รวมถึงเทอร์มินัลที่ใช้ได้จากภายใน Cloud Shell Editor สำหรับทุกความต้องการของคุณ ซึ่งอาจเป็นประโยชน์หากคุณคุ้นเคยกับการทำงานใน IDE และทราบทางลัดและลักษณะการทำงานของแผงต่างๆ จาก VSCode

เปิด Cloud Shell Editor โดยใช้วิธีใดก็ได้ที่กล่าวถึงข้างต้น จากนั้นไปที่เมนู Editor แล้วเลือกเทอร์มินัล > เทอร์มินัลใหม่ (หรือกด `Ctrl + `` ในแป้นพิมพ์) แผงเทอร์มินัลใหม่จะเปิดขึ้นที่ส่วนล่างของ Cloud Shell Editor ซึ่งคุณใช้ได้กับทุกความต้องการของเชลล์

8b2c36f71e851c40.png

นอกจากนี้ คุณยังจะมีตัวเลือกในการจัดการแผงเทอร์มินัลต่างๆ โดยไม่ต้องใช้การจัดการแผง tmux เหมือนกับที่ใช้ในเทอร์มินัล Cloud Shell

การปรับแต่งการตั้งค่า Cloud Shell

Cloud Shell มีตัวเลือกการปรับแต่งหลายอย่าง ตั้งแต่รูปลักษณ์และลักษณะการทำงานพื้นฐาน ไปจนถึงการกำหนดค่าการเริ่มต้นของเทอร์มินัล Cloud Shell และการดำเนินการโดยละเอียด คุณจะตรวจสอบตัวเลือกต่างๆ โดยละเอียดได้ในส่วนต่อไปนี้

ไปที่เมนูเทอร์มินัล Cloud Shell แล้วคลิกไอคอนฟันเฟือง ตัวเลือกการกำหนดค่าหลายรายการจะปรากฏขึ้น ดังนี้

a473c985a434070b.png

ตัวอย่างการตรวจสอบ

  • ธีมสี: คุณสามารถใช้ธีมสว่าง ธีมมืด หรือใช้ชุดสีที่กำหนดเอง (สีพื้นฐาน เช่น สีแบบอักษรและสีพื้นหลัง)
  • ขนาดข้อความ: มีขนาดแบบอักษรให้เลือก 5 ขนาด
  • แบบอักษร: Courier New หรือ Monospace
  • คัดลอกการตั้งค่า: คุณสามารถเปลี่ยนแป้นพิมพ์ลัดสำหรับคัดลอกให้คล้ายกับแป้นพิมพ์ลัดที่ใช้ในโปรแกรมจำลองเทอร์มินัล Linux ที่ได้รับความนิยมมากที่สุด
  • แป้นพิมพ์: การแมปแป้น Meta กับ Alt (โดยค่าเริ่มต้น Meta คือ ESC) และการแมปแป้น Alt Gr ในระบบปฏิบัติการบางระบบ

การกำหนดค่าสภาพแวดล้อมของ Shell

ในฐานะโปรแกรมจำลองเทอร์มินัลที่เรียกใช้เชลล์ในเครื่อง Linux ที่ใช้ Debian คุณสามารถปรับแต่งสภาพแวดล้อมเชลล์ได้ในลักษณะเดียวกับที่ทำใน Linux ดังนั้น ระบบจะจัดหาไฟล์การกำหนดค่าที่มีอยู่ใน $HOME (เช่น .bashrc)) ทุกครั้งที่มีการสร้างกระบวนการเชลล์การเข้าสู่ระบบใหม่

นอกจากนี้ Cloud Shell ยังช่วยให้คุณระบุการดำเนินการที่ต้องการทำทุกครั้งที่อินสแตนซ์ Cloud Shell เริ่มทำงานในไฟล์การกำหนดค่าพิเศษที่ชื่อ .customize_environment ได้ด้วย อ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในเอกสารประกอบการปรับแต่งสภาพแวดล้อม

ลองเพิ่มการกำหนดค่าบางอย่างลงในเทอร์มินัล Cloud Shell ไปที่เทอร์มินัล Cloud Shell แล้วโคลนที่เก็บโค้ดตัวอย่างต่อไปนี้

git clone https://gitlab.com/javiercanadillas/cloud-code-getting-started.git

ที่เก็บนี้มีตัวอย่างสำหรับเหตุการณ์หลัก 2 รายการที่คุณอาจต้องการกำหนดค่า Cloud Shell

  • ทุกครั้งที่อินสแตนซ์ Cloud Shell เริ่มทำงาน ระบบจะอ่านไฟล์ $HOME/.customize_environment คุณดูบันทึกการดำเนินการสำหรับกระบวนการนี้ได้ใน /var/log/customize_environment และระบบจะสร้าง /google/devshell/customize_environment_done เมื่อดำเนินการสำเร็จ
  • เมื่อใดก็ตามที่เริ่มกระบวนการเชลล์ใหม่ (หน้าต่างใหม่ แท็บใหม่...) ระบบจะอ่านไฟล์การกำหนดค่าเชลล์ Bash ปกติ

ฝึกใช้ทั้ง 2 อย่างโดยทำตามขั้นตอนต่อไปนี้

  1. เรียกใช้คำสั่งต่อไปนี้เพื่อเปิดใช้การปรับแต่งที่ที่เก็บระบุไว้
cd cloud-code-getting-started
source set_env_cust.sh

ซึ่งจะตั้งค่าทั้งตัวเลือกการปรับแต่งที่กล่าวถึงก่อนหน้านี้และเปิดใช้ตัวเลือกเหล่านั้น

  1. สังเกตพรอมต์เชลล์ใหม่ สคริปต์ Bash ที่มาจากไฟล์ .bash_profile ได้กำหนดค่าพรอมต์ใหม่นี้ให้สั้นกว่าค่าเริ่มต้น และมีข้อมูล Git พื้นฐาน เช่น สาขาที่เช็คเอาต์หรือสถานะ Git
  2. ตอนนี้มีนามแฝง code ใหม่สำหรับคำสั่ง cloudshell edit ซึ่งสั้นกว่า ใช้แอปนี้เพื่อดูเนื้อหาของไฟล์ .bash_profile ดังนี้
code $HOME/.bash_profile
  1. ใช้คำสั่ง bat ที่เพิ่งติดตั้งเพื่อดูเนื้อหาของไฟล์ .customize_environment
bat $HOME/.customize_environment

bat เป็นเวอร์ชันที่ได้รับการปรับปรุงของเครื่องมือ cat ยอดนิยมของ Unix เอาต์พุต bat แสดงคำสั่ง apt install ที่ใช้ในการติดตั้ง hey ซึ่งเป็นเครื่องมือทดสอบการโหลดซ้ำทุกครั้งที่มีการเปิดเครื่อง Cloud Shell ใหม่

  1. ทดสอบว่าทุกอย่างทำงานได้โดยคลิกเมนู Cloud Shell (จุด 3 จุดที่มุมขวาบน) แล้วเลือกรีสตาร์ท

ซึ่งจะช่วยให้คุณจำลองการหมดเวลาของ Cloud Shell และการสร้างอินสแตนซ์ใหม่ได้ เพื่อให้มั่นใจว่าได้กำหนดค่าทุกอย่างถูกต้องแล้ว

การปรับแต่งอิมเมจคอนเทนเนอร์ Cloud Shell

ตัวเลือกการปรับแต่งนี้ช่วยให้คุณสร้างอิมเมจ Docker ที่ทำหน้าที่เป็นสภาพแวดล้อม Cloud Shell ที่กำหนดเองพร้อมแพ็กเกจเพิ่มเติมและการกำหนดค่าที่กำหนดเองได้ รูปภาพที่สร้างขึ้นจะเปิดอินสแตนซ์ Cloud Shell ที่ไม่ถาวรโดยสมบูรณ์ ดังนั้นทั้ง VM ของ Cloud Shell และไดเรกทอรี $HOME ที่แนบมาจะไม่คงอยู่ อย่างไรก็ตาม การสร้างอิมเมจนี้จะมีประโยชน์สำหรับกรณีการใช้งานที่คุณต้องส่งอินสแตนซ์ Cloud Shell ที่เฉพาะเจาะจงสำหรับฟังก์ชันไปยังบุคคลที่สามเพื่อให้บุคคลที่สามสามารถทำงานที่เฉพาะเจาะจงได้อย่างมีประสิทธิภาพสูงสุด

แทนที่จะปรับแต่งสภาพแวดล้อมเหมือนที่ทำในส่วนก่อนหน้า คุณจะฝังการเปลี่ยนแปลงในอิมเมจใหม่ที่ใช้เพื่อเปิด Cloud Shell ซึ่งมีข้อดีที่ชัดเจนเนื่องจาก Cloud Shell ที่กำหนดเองจะเริ่มทำงานได้เร็วขึ้น

การสร้างอิมเมจ Cloud Shell ใหม่

  1. เริ่มสร้างอิมเมจคอนเทนเนอร์ Cloud Shell โดยพิมพ์ในเทอร์มินัล Cloud Shell ดังนี้
cloudshell env create-custom-image custom-cloud-shell
cd custom-cloud-shell

การดำเนินการนี้จะสร้างไดเรกทอรีใหม่ใน Cloud Shell และสร้างที่เก็บ Cloud Source Repositories ใหม่ที่มีชื่อเดียวกันเพื่อโฮสต์โค้ด และยังโคลนตัวอย่าง Dockerfile ใน $HOME/custom-cloud-shell/ directory ด้วย

  1. เพิ่มบรรทัด RUN apt install -y hey ไปยังบรรทัดสุดท้ายของ Dockerfile
echo "RUN apt install -y hey" >> $HOME/custom-cloud-shell/Dockerfile

ซึ่งจะตั้งค่าการปรับแต่งแบบเดียวกับที่คุณมีใน .customize_environment แต่จะฝังไว้ในคอนเทนเนอร์แทน

  1. สร้างอิมเมจในเครื่องโดยใช้คำสั่งต่อไปนี้
cloudshell env build-local
  1. ทดสอบอิมเมจใหม่โดยเรียกใช้คำสั่งต่อไปนี้
cloudshell env run

ตอนนี้คุณจะอยู่ในเชลล์ภายในอิมเมจ

  1. ทดสอบว่าได้ติดตั้งคำสั่ง hey แล้วโดยเรียกใช้คำสั่ง
hey
  1. เมื่อเสร็จแล้ว ให้พิมพ์ exit เพื่อออกจากคอนเทนเนอร์
exit
  1. พุชการเปลี่ยนแปลงไปยัง Cloud Source Repositories และอิมเมจไปยัง Container Registry โดยทำดังนี้
git commit -a -m "Initial commit"
git push origin master
cloudshell env push

ทดสอบรูปภาพใหม่

  1. ตั้งค่าให้รูปภาพแสดงแบบสาธารณะเพื่อให้คุณใช้รูปภาพได้ โดยทำดังนี้
gsutil iam ch allUsers:objectViewer $(gsutil ls)
  1. สร้าง URL ที่คุณใช้เพื่อทดสอบอินสแตนซ์ที่กำหนดเองของ Cloud Shell ที่เผยแพร่ได้โดยทำดังนี้
echo "https://ssh.cloud.google.com/cloudshell/editor?cloudshell_image=gcr.io/$GOOGLE_CLOUD_PROJECT/custom-cloud-shell"
  1. คัดลอก URL เอาต์พุตและวางในแท็บเบราว์เซอร์ใหม่ แล้วอินสแตนซ์ที่กำหนดเองของ Cloud Shell จะเปิดขึ้น โปรดสังเกตว่าเมื่อเข้าถึงอินสแตนซ์ จะมีแบนเนอร์ที่ระบุว่าคุณกำลังเรียกใช้ในโหมดชั่วคราวแบบเต็ม

bc091a4c33649aa9.png

  1. ทดสอบรูปภาพอีกครั้งโดยเรียกใช้คำสั่ง hey
hey
  1. เมื่อเสร็จแล้ว ให้exitอินสแตนซ์ Cloud Shell แบบชั่วคราว กลับไปที่แท็บที่เปิด Cloud Shell ปกติ แล้วคลิกเชื่อมต่ออีกครั้ง

เข้าถึง Cloud Shell จากระยะไกลด้วย SSH

นอกจากนี้ คุณยังใช้ฟีเจอร์ของ Cloud Shell จากระยะไกลจากคอมพิวเตอร์ในเครื่องได้ด้วย โดยทั่วไปแล้วจะเกี่ยวข้องกับกรณีการใช้งาน 2 กรณีที่แตกต่างกัน ดังนี้

  • การ SSH ไปยังเครื่อง Cloud Shell จากเทอร์มินัลในเครื่อง
  • การต่อเชื่อมไดเรกทอรีระยะไกล $HOME ของ Cloud Shell ในเครื่อง

โดยคุณจะต้องติดตั้ง Google Cloud SDK ไว้ในเครื่อง นอกจากนี้ คุณยังต้องกำหนดค่าด้วยรหัสโปรเจ็กต์และข้อมูลเข้าสู่ระบบเฉพาะที่คุณใช้

ทำตามขั้นตอนต่อไปนี้จากโปรแกรมจำลองเทอร์มินัลที่ทำงานในเครื่องภายใน

  1. ตั้งค่ารหัสโปรเจ็กต์ GCP และเข้าสู่ระบบด้วยข้อมูลเข้าสู่ระบบที่สอดคล้องกับองค์กร Cloud ที่คุณมี Cloud Shell
gcloud config set project <your project id>
gcloud auth login
  1. SSH ไปยังเครื่อง Cloud Shell ระยะไกล
gcloud cloud-shell ssh --authorize-session

ตอนนี้คุณจะอยู่ใน Cloud Shell แต่ใช้ฟีเจอร์และการกำหนดค่าของโปรแกรมจำลองเทอร์มินัลในเครื่อง หากโปรแกรมที่คุณใช้รองรับ tmux คุณอาจใช้ประโยชน์จากการผสานรวมเพิ่มเติมเพื่อรับประสบการณ์การใช้งานระยะไกลที่ดียิ่งขึ้น

เมานต์ไดเรกทอรีหลักของ Cloud Shell จากเครื่องของคุณ

แม้ว่าการ SSH ไปยังอินสแตนซ์ Cloud Shell ระยะไกลจะดี แต่จะดียิ่งกว่าหากคุณมี IDE ภายในที่มีสิทธิ์เข้าถึงไดเรกทอรี $HOME ของ Cloud Shell ระยะไกล ด้วยวิธีนี้ คุณจะรวมการเข้าถึง SSH ที่แสดงก่อนหน้านี้เข้ากับความสามารถในการแก้ไขโค้ดระยะไกลในเครื่องได้

โดยให้สร้างจุดเชื่อมต่อจากเครื่องภายในก่อน ดังนี้

mkdir $HOME/cloudshell

นี่คือไดเรกทอรีที่จะติดตั้ง Cloud Shell ตอนนี้หากต้องการติดตั้ง ให้ตรวจสอบว่าได้เริ่มอินสแตนซ์ Cloud Shell แล้ว จากนั้นพิมพ์ในเทอร์มินัลในเครื่องดังนี้

$(gcloud cloud-shell get-mount-command $HOME/cloudshell)
cd $HOME/cloudshell

ซึ่งจะแสดงคำสั่งต่อเชื่อมที่คุณต้องออกเพื่อต่อเชื่อม Cloud Shell ในเครื่องและต่อเชื่อม คุณจะเห็นเนื้อหาของไดเรกทอรีหน้าแรกของ Cloud Shell ที่ติดตั้งในเครื่องของคุณ

ตอนนี้คุณสามารถเปิด IDE เช่น VSCode ในเครื่องและเปิดพื้นที่ทำงานที่อยู่ระยะไกลในระบบคลาวด์ได้แล้ว ในขณะเดียวกัน การใช้การเข้าถึง SSH ไปยัง Cloud Shell จะช่วยให้คุณเปิดแผงเทอร์มินัลภายใน IDE เพื่อรวมเทอร์มินัลระยะไกลไว้ใน IDE ในเครื่องได้ด้วย

5. การใช้ Cloud Code

Cloud Code เป็นปลั๊กอินที่ Google พัฒนาขึ้นเพื่อช่วยให้นักพัฒนาซอฟต์แวร์ทำงานกับเครื่องมือบนระบบคลาวด์ได้อย่างมีประสิทธิภาพมากขึ้น โดยพร้อมใช้งานใน IDE และโปรแกรมแก้ไขโค้ดหลายรายการ เช่น VSCode และผลิตภัณฑ์ Jetbrains และจะผสานรวมกับ Cloud Shell Editor โดยค่าเริ่มต้นเพื่อความสะดวกของคุณ Cloud Code มีฟีเจอร์มากมายที่เหมาะสำหรับนักพัฒนาแอป ซึ่งคุณจะได้ฝึกใช้ในขั้นตอนถัดไป

การค้นหา Cloud Code ใน Cloud Shell Editor

การใช้ปุ่ม Quick Access

ค้นหาปุ่ม 4 ปุ่มต่อไปนี้ที่แสดงในแผงด้านซ้ายของเครื่องมือแก้ไข

de0b6c69b590d21b.png

รายการเมนูเหล่านี้ช่วยให้เข้าถึงและกำหนดค่าบริการ GCP ได้อย่างง่ายดายจาก Cloud Shell Editor โดยตรง

ในแล็บนี้ คุณจะมุ่งเน้นไปที่คลัสเตอร์ Kubernetes

การใช้แถบสถานะ

Cloud Shell มีอีก 2 ส่วนที่แสดงผ่าน UI ของ Cloud Shell Editor ซึ่งเกี่ยวข้องกับเรื่องนี้ คุณจะเห็นทั้ง 2 อย่างในแถบด้านล่างของเครื่องมือแก้ไข

f04c703ff45b05a.png

  • <> Cloud Code: การคลิกที่นี่จะแสดงเมนูการดำเนินการด่วนที่คุณจะใช้ในบทแนะนำนี้ 58a3f8940f6263ae.png
  • ควบคุม Minikube: การดำเนินการนี้จะช่วยให้คุณควบคุมโปรแกรมจำลอง Kubernetes ในเครื่องอย่าง Minikube ได้ด้วยการดำเนินการพื้นฐาน เช่น การเริ่มหรือหยุดคลัสเตอร์

การสร้างอินสแตนซ์ Minikube

สร้างอินสแตนซ์ Minikube ตอนนี้โดยคลิกปุ่ม

540da42dd52e1469.png

การสร้างคลัสเตอร์ GKE ด้วย Cloud Code

  1. คลิกไอคอน Cloud Code - Kubernetes Clusters ( 5ffab5cb541da6.png) ทางด้านซ้าย คุณจะเห็นแผงใหม่ทางด้านซ้ายที่ชื่อว่า CLOUD CODE - KUBERNETES: CLUSTERS
  2. คลิกปุ่ม + ข้าง CLOUD CODE - KUBERNETES: CLUSTERS แล้วเลือก Google Kubernetes Engine (โปรดทราบว่าคุณยังเลือกตัวเลือกอื่นๆ ได้ด้วย เช่น Minikube ที่คุณเปิดไว้ก่อนหน้านี้)

e7a81607c1bc7c55.png

  1. คลิกสร้างคลัสเตอร์ GKE ใหม่ ตัวเลือกนี้จะโหลดแผงใหม่ทางด้านขวา ซึ่งคุณสามารถป้อนข้อมูลเพิ่มเติมเพื่อสร้างคลัสเตอร์การพัฒนาได้อย่างรวดเร็ว ทำตามวิธีการในแผงและป้อนข้อมูลต่อไปนี้
  • เลือก Autopilot
  • เลือกภูมิภาค (europe-west-1)
  • ตั้งชื่อคลัสเตอร์ว่า "dev"
  1. คลิกปุ่มสร้างคลัสเตอร์ ซึ่งจะเป็นการสร้างคลัสเตอร์ Autopilot ใหม่

กระบวนการสร้างคลัสเตอร์อาจใช้เวลาถึง 5 นาที ดังนั้นในขณะที่ระบบกำลังสร้างคลัสเตอร์ ให้ลองสำรวจแผง Kubernetes ของ Cloud Code เพิ่มเติม

สำรวจแผง Kubernetes ของ Cloud Code

ก่อนหน้านี้คุณได้สร้างคลัสเตอร์ Minikube เมื่อพร้อมแล้ว คลัสเตอร์นี้จะปรากฏในแผง Kubernetes ของ Cloud Code โดยมีชื่อที่คุณตั้งไว้ minikube:

b654e618f78de3b3.png

คลัสเตอร์จะปรากฏเป็น "ใช้งานอยู่" ใน UI การตั้งค่านี้จะซิงค์กับบริบท Kubernetes ปัจจุบันในบรรทัดคำสั่ง .

สิ่งที่คุณเห็นในแผง Kubernetes ของ Cloud Code มีดังนี้

  • ไฟล์ KubeConfig เริ่มต้น: Cloud Code จะอ่านไฟล์ ~/.kube/config สำหรับผู้ใช้และใช้ไฟล์ดังกล่าวเพื่อเชื่อมต่อกับคลัสเตอร์ Kubernetes ที่กำหนดค่าไว้ คุณจึงไปยังส่วนต่างๆ ได้อย่างง่ายดาย คุณแก้ไขไฟล์ Kubeconfig ได้โดยวางเมาส์เหนือบรรทัด Default Kubeconfig แล้วคลิกสี่เหลี่ยมที่มีลูกศรขาออกข้างๆ หากต้องการ
  • การแสดงผลที่เรียกดูได้ของออบเจ็กต์ต่างๆ ของคลัสเตอร์ที่ลงทะเบียน: ในกรณีนี้ คุณจะเห็นminikubeคลัสเตอร์ Minikube ที่สร้างไว้ก่อนหน้านี้ พร้อมด้วยบริบท เนมสเปซ และโหนด ลองขยายโหนดบางส่วนของโครงสร้าง ตอนนี้จะยังไม่มีพ็อดเนื่องจากคุณยังไม่ได้ติดตั้งใช้งานแอปพลิเคชันใดๆ

เมื่อคลัสเตอร์ GKE ใหม่พร้อมใช้งานแล้ว คลัสเตอร์จะแสดงในแผงด้านซ้ายพร้อมกับminikubeคลัสเตอร์ Minikube โปรดทราบว่าคุณคลิกขวาที่คลัสเตอร์ใดก็ได้และทำให้คลัสเตอร์นั้น "ใช้งานอยู่" ในแง่ของการเลือกคลัสเตอร์สำหรับการดำเนินการ Cloud Code ที่คุณอาจเปิดใช้

8e4306c3ce707ef8.png

6. ยินดีด้วย

ยินดีด้วย คุณทำ Codelab เสร็จแล้ว

สิ่งที่คุณได้พูดถึงไปแล้ว

  • ไปยังส่วนต่างๆ และทำความคุ้นเคยกับฟีเจอร์หลักของ Cloud Shell
  • ฝึกฝนด้วยรูปแบบการใช้งาน Cloud Shell ที่แตกต่างกัน
  • ปรับแต่งสภาพแวดล้อม Cloud Shell สำหรับการใช้งานขั้นสูง
  • ทำความคุ้นเคยกับตัวเลือกและฟีเจอร์ของ Cloud Code
  • ตรวจสอบรายละเอียดของ Cloud Code สำหรับแอปพลิเคชัน Kubernetes
  • ใช้โปรแกรมจำลองในเครื่อง เช่น Minikube