เชื่อมต่อแอปพลิเคชันกับข้อมูล Cloud SQL และติดตั้งใช้งานใน Cloud Run

1. ภาพรวม

ใน Codelab นี้ เราจะสาธิตวิธีการตั้งค่า Cloud SQL และเชื่อมต่อแอปพลิเคชันกับ Cloud SQL ซึ่งเป็นวิธีที่ง่ายและทำได้ไม่ยาก ซึ่งเป็นการเรียนรู้ระดับ L100 อย่างรวดเร็วเพื่ออัปเกรดประสบการณ์ของนักพัฒนาซอฟต์แวร์ในการผสานรวมแอปพลิเคชัน AI ขั้นสูงเข้ากับฟีเจอร์ข้อมูลที่ซับซ้อนที่ Cloud SQL มีให้

สิ่งที่คุณจะสร้าง

เว็บแอปพลิเคชันแบบง่าย

โดยคุณจะต้องดำเนินการต่อไปนี้

  1. สร้างอินสแตนซ์ Cloud SQL สำหรับ PostgreSQL ในการติดตั้งเพียงคลิกเดียว
  2. สร้างแอปพลิเคชันตัวอย่างเพื่อเชื่อมต่อกับอินสแตนซ์นี้และตั้งค่าข้อมูล

ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

2. ก่อนเริ่มต้น

สร้างโปรเจ็กต์

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

รูปภาพปุ่มเปิดใช้งาน Cloud Shell

  1. เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
  1. เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
  1. หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
  1. เปิดใช้ API ที่จำเป็น: ทำตามลิงก์และเปิดใช้ API

หรือจะใช้คำสั่ง gcloud ก็ได้ โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ

3. การตั้งค่าฐานข้อมูล

ใน Lab นี้ เราจะใช้ Cloud SQL สำหรับ PostgreSQL เป็นฐานข้อมูลสำหรับข้อมูลทดสอบ

มาสร้างอินสแตนซ์ Cloud SQL ที่จะโหลดชุดข้อมูลทดสอบกัน

  1. คลิกปุ่มหรือคัดลอกลิงก์ด้านล่างไปยังเบราว์เซอร์ที่คุณเข้าสู่ระบบผู้ใช้ Google Cloud Console

  1. เมื่อทำขั้นตอนนี้เสร็จแล้ว ระบบจะโคลนที่เก็บไปยังโปรแกรมแก้ไข Cloud Shell ในเครื่อง และคุณจะเรียกใช้คำสั่งด้านล่างจากโฟลเดอร์โปรเจ็กต์ได้ (โปรดตรวจสอบว่าคุณอยู่ในไดเรกทอรีโปรเจ็กต์)
sh run.sh
  1. ตอนนี้ให้ใช้ UI (คลิกลิงก์ในเทอร์มินัลหรือคลิกลิงก์ "แสดงตัวอย่างบนเว็บ" ในเทอร์มินัล
  2. ป้อนรายละเอียดสำหรับรหัสโปรเจ็กต์และชื่ออินสแตนซ์เพื่อเริ่มต้นใช้งาน
  3. ไปหากาแฟดื่มระหว่างที่บันทึกเลื่อนลงมาเรื่อยๆ และคุณสามารถอ่านเกี่ยวกับวิธีที่ระบบดำเนินการนี้เบื้องหลังได้ที่นี่

4. สร้างแอปพลิเคชันตัวอย่างเพื่อทดสอบการเชื่อมต่อ

ในเทอร์มินัลของ Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้ทีละคำสั่ง

git clone https://github.com/flazer99/verify-easy-cloud-sql-connection

cd verify-easy-cloud-sql-connection

ทำการเปลี่ยนแปลงไฟล์ verify_connection.py สำหรับการตั้งค่า Cloud SQL ที่คุณเพิ่งกำหนดค่าในส่วนสุดท้าย

# Replace this with the Private IP of your Cloud SQL Instance
DB_HOST = <<>> 
DB_PORT = "5432"
DB_NAME = "postgres"
DB_USER = "postgres"
# Replace this with your actual Cloud SQL password    
DB_PASS = <<>>

5. ทำให้ใช้งานได้กับ Cloud Run

ในเทอร์มินัล Cloud Shell ตรวจสอบว่าคุณอยู่ในโฟลเดอร์โปรเจ็กต์

เมื่อแน่ใจว่าคุณอยู่ในโฟลเดอร์โปรเจ็กต์แล้ว ให้เรียกใช้คำสั่งต่อไปนี้

gcloud run deploy verify-cloudsql \
    --source . \
    --region=us-central1 \
    --network=easy-cloudsql-vpc \
    --subnet=easy-cloudsql-subnet \
    --vpc-egress=all-traffic \
    --allow-unauthenticated

เมื่อติดตั้งใช้งานแล้ว คุณควรได้รับปลายทาง Cloud Run ที่ติดตั้งใช้งานแล้วซึ่งมีลักษณะดังนี้

https://verify-cloudsql-**********-uc.a.run.app/

6. สาธิต

หากต้องการยืนยันว่าการดำเนินการสำเร็จ คุณสามารถดูผลลัพธ์ในเบราว์เซอร์หรือ Logs Explorer ได้

คุณไปที่ Cloud SQL ใน Google Cloud Console และเปิดอินสแตนซ์ที่สร้างขึ้นใหม่ได้ คลิก Cloud SQL Studio จากแผงการนำทางทางด้านซ้าย แล้วเชื่อมต่อด้วยข้อมูลเข้าสู่ระบบ

ในสตูดิโอ ให้รีเฟรชออบเจ็กต์ฐานข้อมูลในแผงด้านซ้าย แล้วคุณจะเห็นตารางที่สร้างขึ้นใหม่

658d9261e6098139.png

คุณสามารถค้นหาได้อย่างรวดเร็วเพื่อยืนยันว่าการแทรกเสร็จสมบูรณ์แล้ว

658d9261e6098139.png

7. ล้างข้อมูล

เมื่อห้องทดลองนี้เสร็จสิ้นแล้ว อย่าลืมลบอินสแตนซ์ Cloud SQL

ซึ่งควรล้างข้อมูลคลัสเตอร์พร้อมกับอินสแตนซ์

8. บทสรุป

เริ่มต้นใช้งานการตั้งค่าข้อมูลด้วย Cloud SQL อย่างรวดเร็วและง่ายดาย!!!