จัดการบริการและฐานข้อมูล SQL Connect

โปรเจ็กต์ SQL Connect ประกอบด้วยองค์ประกอบโครงสร้างพื้นฐานหลัก 2 อย่าง ได้แก่

  • อินสแตนซ์บริการ SQL Connect อย่างน้อย 1 รายการ
  • อินสแตนซ์ Cloud SQL สำหรับ PostgreSQL อย่างน้อย 1 รายการ

คู่มือนี้จะอธิบายวิธีตั้งค่าและจัดการอินสแตนซ์บริการ SQL Connect ของคุณ รวมถึงแนะนำวิธีจัดการอินสแตนซ์ Cloud SQL ที่เชื่อมโยง

กำหนดค่าภูมิภาคสำหรับ Firebase SQL Connect

โปรเจ็กต์ที่ใช้ SQL Connect ต้องมีการตั้งค่าสถานที่

เมื่อสร้างอินสแตนซ์บริการ SQL Connect ใหม่ ระบบจะแจ้งให้คุณ เลือกสถานที่ของบริการ

ประเทศที่ให้บริการ

คุณสร้างบริการ SQL Connect ได้ในภูมิภาคต่อไปนี้

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (ไม่พร้อมให้บริการสำหรับช่วงทดลองใช้แพ็กเกจ Spark)
  • asia-southeast2 (ไม่พร้อมให้บริการสำหรับช่วงทดลองใช้แพ็กเกจ Spark)
  • australia-southeast1
  • australia-southeast2
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • northamerica-northeast1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

จัดการอินสแตนซ์บริการ SQL Connect

สร้างบริการ

หากต้องการสร้างบริการใหม่ ให้ใช้คอน0/}โซล หรือเรียกใช้การเริ่มต้นโปรเจ็กต์ในเครื่อง โดยใช้ Firebase CLIFirebase เวิร์กโฟลว์เหล่านี้จะสร้างบริการใหม่ SQL Connect

นอกจากนี้ โฟลว์เหล่านี้ยังแนะนำขั้นตอนต่อไปนี้ด้วย

  • การจัดสรรอินสแตนซ์ Cloud SQL ใหม่ (ระดับไม่มีค่าใช้จ่าย)
  • การลิงก์อินสแตนซ์ Cloud SQL ที่มีอยู่กับ SQL Connect (แพ็กเกจ Blaze)

จัดการผู้ใช้

SQL Connect มีเครื่องมือในการจัดการการเข้าถึงของผู้ใช้ตาม หลักการให้สิทธิ์น้อยที่สุด (ให้สิทธิ์ที่จำเป็นขั้นต่ำแก่ผู้ใช้หรือบัญชีบริการแต่ละบัญชีเพื่อรองรับฟังก์ชันการทำงานที่จำเป็น) และแนวคิดเรื่อง การควบคุมการเข้าถึงตามบทบาท (RBAC) (มีบทบาทที่กำหนดไว้ล่วงหน้าเพื่อจัดการสิทธิ์ของฐานข้อมูล ซึ่งช่วยลดความซับซ้อนในการจัดการความปลอดภัย)

หากต้องการเพิ่มสมาชิกโปรเจ็กต์เป็นผู้ใช้ที่แก้ไขSQL Connect อินสแตนซ์ในโปรเจ็กต์ได้ ให้ใช้คอนโซล Firebase เพื่อเลือกบทบาทผู้ใช้ที่กำหนดไว้ล่วงหน้าที่เหมาะสม

บทบาทเหล่านี้ให้สิทธิ์โดยใช้ Identity and Access Management (IAM) บทบาทคือคอลเล็กชันของสิทธิ์ เมื่อมอบหมายบทบาทให้สมาชิกโปรเจ็กต์ คุณจะให้สิทธิ์ทั้งหมดที่มีอยู่ในบทบาทนั้นแก่สมาชิกโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ที่

เลือกบทบาทเพื่อเปิดใช้เวิร์กโฟลว์ที่เฉพาะเจาะจง

บทบาท IAM ช่วยให้เวิร์กโฟลว์ Firebase CLI ช่วยให้คุณจัดการโปรเจ็กต์ SQL Connect ได้

คำสั่ง CLI, เวิร์กโฟลว์อื่นๆ บทบาทที่จำเป็น
firebase init dataconnect
  • ไม่มีสิทธิ์ (เมื่อไม่ได้ลิงก์อินสแตนซ์ Cloud SQL)
  • roles/cloudsql.admin (เมื่อสร้างอินสแตนซ์ Cloud SQL)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • roles/cloudsql.admin ในอินสแตนซ์ Cloud SQL ปลายทาง
firebase dataconnect:sql:grant
  • roles/cloudsql.admin ในอินสแตนซ์ Cloud SQL ปลายทาง

ตรวจสอบประสิทธิภาพของบริการ SQL Connect

ทำความเข้าใจประสิทธิภาพของบริการ

ประสิทธิภาพของทั้งบริการ SQL Connect และบริการ Cloud SQL สำหรับ PostgreSQL อาจส่งผลต่อประสบการณ์การใช้งานของคุณ

  • สำหรับบริการ Cloud SQL สำหรับ PostgreSQL โปรดดูคำแนะนำทั่วไปในเอกสารประกอบเรื่อง โควต้าและขีดจำกัด
  • สำหรับบริการ SQL Connect จะมีโควต้าสำหรับคำขอ GraphQL ซึ่งส่งผลต่ออัตราที่คุณสามารถเรียกและดำเนินการค้นหาได้ ดังนี้

    • โควต้าต่อโปรเจ็กต์ต่อภูมิภาคที่ 24,000 คำขอ GraphQL ต่อนาที

    หากพบขีดจำกัดโควต้าดังกล่าว โปรดติดต่อ ทีมสนับสนุน Firebase เพื่อปรับโควต้าที่เกี่ยวข้อง

ตรวจสอบประสิทธิภาพ การใช้งาน และการเรียกเก็บเงินของบริการ

คุณสามารถตรวจสอบคำขอ ข้อผิดพลาด และอัตราการดำเนินการได้ทั้งในระดับโลกและระดับ การดำเนินการใน Firebase คอนโซล

จัดการอินสแตนซ์ Cloud SQL

ข้อจำกัดของช่วงทดลองใช้ฟรี

ระบบไม่รองรับฟีเจอร์ Cloud SQL สำหรับ PostgreSQL ต่อไปนี้ใน ช่วงทดลองใช้ฟรีของแพ็กเกจ Spark หรือ Blaze:

  • ระดับเครื่องที่ไม่ใช่ db-f1-micro
  • การเปลี่ยนทรัพยากรของอินสแตนซ์ เช่น ภูมิภาค พื้นที่เก็บข้อมูล หน่วยความจำ CPU
  • PostgreSQL เวอร์ชันอื่นที่ไม่ใช่ 15.x
  • ตัวจำลองการอ่าน
  • ที่อยู่ IP ส่วนตัวของอินสแตนซ์
  • ความพร้อมใช้งานสูง (หลายโซน) โดยรองรับเฉพาะอินสแตนซ์แบบโซนเดียว
  • รุ่น Enterprise Plus
  • สำรองข้อมูลอัตโนมัติ
  • การเพิ่มพื้นที่เก็บข้อมูลอัตโนมัติ

ข้อจำกัดของฐานข้อมูลเริ่มต้นใช้งานชั่วคราว

เมื่อเพิ่ม SQL Connect ลงในโปรเจ็กต์ Firebase คุณจะเริ่ม สร้างต้นแบบโมเดลข้อมูลและโหลดข้อมูลได้ทันที เนื่องจากระบบจะจัดเก็บข้อมูลไว้ใน ฐานข้อมูลชั่วคราว โปรดทราบว่า Cloud SQL สำหรับ อินสแตนซ์ PostgreSQL แบบถาวรจะใช้เวลาจัดสรร 5-20 นาที ระบบจะย้ายข้อมูลเริ่มต้นที่คุณโหลดไปยังฐานข้อมูล PostgreSQL แบบถาวรโดยอัตโนมัติเมื่อจัดสรรแล้ว

ฐานข้อมูลชั่วคราวนี้เหมาะสำหรับการสำรวจสคีมาและการดำเนินการ CRUD

หากไม่ต้องการใช้ฐานข้อมูลชั่วคราว ให้รอจนกว่าจะมีการจัดสรร Cloud SQL อินสแตนซ์

ฐานข้อมูลชั่วคราวไม่ใช่ฐานข้อมูล PostgreSQL และไม่มีฟีเจอร์ PostgreSQL ทั้งหมด

ข้อจำกัดที่สำคัญมีดังนี้

  • ขนาดฐานข้อมูลต้องน้อยกว่า 1 MB
  • จำนวนแถวต่อตารางต้องน้อยกว่า 1,000 แถว
  • น้อยกว่า 1 คำค้นหาต่อวินาที
  • ไม่รองรับการค้นหาข้อความแบบเต็ม
  • ไม่รองรับการสร้างการฝังเวกเตอร์
  • ไม่รองรับฟีเจอร์ SQL เช่น @view, @col(dataType), หรือ SQL ดั้งเดิม

ดูแลจัดการอินสแตนซ์ Cloud SQL

โดยทั่วไป คุณสามารถจัดการอินสแตนซ์ Cloud SQL ได้โดยใช้คอนโซล Google Cloud เพื่อดำเนินการเวิร์กโฟลว์ต่อไปนี้

  • หยุดและรีสตาร์ทอินสแตนซ์ Cloud SQL

  • สร้างและลบฐานข้อมูล Cloud SQL (ภายในอินสแตนซ์)

  • เริ่มอินสแตนซ์ฐานข้อมูล PostgreSQL ด้วยแฟล็กและใช้a ส่วนขยายที่หลากหลาย

  • ตรวจสอบประสิทธิภาพด้วยฟีเจอร์ Cloud SQLการสังเกตการณ์ ในGoogle Cloudคอนโซล

  • จัดการการเข้าถึงและความปลอดภัยของ Cloud SQL ด้วยฟีเจอร์ต่างๆ เช่น IAM, Secret Manager, การเข้ารหัสข้อมูล และพร็อกซีการตรวจสอบสิทธิ์

  • เพิ่ม ลบ และดูแลจัดการผู้ใช้ Cloud SQL

สำหรับเวิร์กโฟลว์เหล่านี้และเวิร์กโฟลว์อื่นๆ โปรดดู Cloud SQL สำหรับเอกสารประกอบ PostgreSQL

ให้สิทธิ์บทบาทผู้ใช้ PostgreSQL

SQL Connect มีเครื่องมือในการจัดการการเข้าถึงของผู้ใช้ตาม หลักการให้สิทธิ์น้อยที่สุด (ให้สิทธิ์ที่จำเป็นขั้นต่ำแก่ผู้ใช้หรือบัญชีบริการแต่ละบัญชีเพื่อรองรับฟังก์ชันการทำงานที่จำเป็น) และแนวคิดเรื่อง การควบคุมการเข้าถึงตามบทบาท (RBAC) (มีบทบาทที่กำหนดไว้ล่วงหน้าเพื่อจัดการสิทธิ์ของฐานข้อมูล ซึ่งช่วยลดความซับซ้อนในการจัดการความปลอดภัย)

ในบางกรณี คุณอาจต้องการเชื่อมต่อกับฐานข้อมูลที่ SQL Connect-จัดการ Cloud SQL โดยตรงผ่านไคลเอ็นต์ SQL ที่คุณเลือกโดยใช้ เช่น Cloud Run, Cloud Functions หรือ GKE

หากต้องการเปิดใช้การเชื่อมต่อดังกล่าว คุณต้องให้สิทธิ์ SQL โดยทำดังนี้

  • มอบหมายบทบาท IAM roles/cloudsql.client ให้กับผู้ใช้หรือบัญชีบริการ ที่ต้องเชื่อมต่อกับอินสแตนซ์จากคอนโซล Google Cloud หรือ ใช้ gcloud CLI
  • ให้บทบาท PostgreSQL ที่จำเป็นโดยใช้ Firebase CLI

มอบหมายบทบาท IAM Cloud SQL

ดูข้อมูลเกี่ยวกับการใช้ Cloud SQL สำหรับ PostgreSQL เพื่อมอบหมาย IAM บทบาท roles/cloudsql.client ได้ที่ บทบาทและสิทธิ์

ให้บทบาท PostgreSQL

คุณสามารถให้บทบาท PostgreSQL ที่กำหนดไว้ล่วงหน้าแก่ผู้ใช้ หรือบัญชีบริการที่เชื่อมโยงกับโปรเจ็กต์ได้โดยใช้ Firebase CLI ด้วยคำสั่ง firebase dataconnect:sql:grant

ตัวอย่างเช่น หากต้องการให้บทบาทผู้เขียน ให้เรียกใช้คำสั่งนี้โดยใช้ Firebase CLI:

firebase dataconnect:sql:grant --role writer

ดูรายละเอียดได้ที่ Firebaseคู่มืออ้างอิง CLI

ผสานรวมฐานข้อมูล Cloud SQL สำหรับ PostgreSQL ที่มีอยู่

โฟลว์การจัดสรรและการจัดการฐานข้อมูลเริ่มต้นจะถือว่าโปรเจ็กต์ของคุณ ใช้ฐานข้อมูลใหม่ (Greenfield) และเมื่อคุณเรียกใช้ firebase deploy, SQL Connect จะแสดงการเปลี่ยนแปลงสคีมาฐานข้อมูลที่จะเกิดขึ้นและ ดำเนินการย้ายข้อมูลหลังจากที่คุณอนุมัติ

สำหรับฐานข้อมูลที่มีอยู่ (Brownfield) คุณอาจมีเวิร์กโฟลว์ของคุณเองในการจัดการสคีมาและไม่สามารถใช้ SQL Connect เครื่องมือสำหรับการย้ายข้อมูลได้ แต่ต้องการใช้ฐานข้อมูลในโปรเจ็กต์ SQL Connect เพื่อใช้ประโยชน์จากการสร้าง SDK สำหรับอุปกรณ์เคลื่อนที่และเว็บ การให้สิทธิ์ตามการค้นหา การจัดการการเชื่อมต่อไคลเอ็นต์ และอื่นๆ

ส่วนนี้มีคำแนะนำเกี่ยวกับกรณีหลัง ซึ่งเป็นการผสานรวมฐานข้อมูลที่มีอยู่ กับ SQL Connect

ผสานรวมฐานข้อมูลที่มีอยู่เข้ากับโปรเจ็กต์ SQL Connect

โดยทั่วไป เวิร์กโฟลว์สำหรับการผสานรวมฐานข้อมูลที่มีอยู่เกี่ยวข้องกับขั้นตอนต่อไปนี้

  1. ในระหว่างการตั้งค่าโปรเจ็กต์ SQL Connect ในคอนโซล Firebase ให้เลือกอินสแตนซ์และฐานข้อมูล

  2. ใช้ Firebase CLI เรียกใช้คำสั่ง firebase dataconnect:sql:setup และปฏิเสธตัวเลือกที่จะอนุญาตให้ SQL Connect จัดการการย้ายข้อมูล SQL

    เพื่อป้องกันการเปลี่ยนแปลงสคีมาฐานข้อมูลที่ไม่ได้เกิดจากเครื่องมือที่กำหนดเอง คำสั่ง setup จะกำหนดบทบาทผู้อ่านและผู้เขียนที่เหมาะสม แต่จะไม่กำหนด บทบาท owner ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง setup และ บทบาท PostgreSQL ได้ใน Firebase คู่มืออ้างอิง CLI

  3. เขียนสคีมา GraphQL ของ SQL Connect ที่ตรงกับสคีมาฐานข้อมูล

    คุณจะติดตั้งใช้งานสคีมา GraphQL, การค้นหา และการเปลี่ยนแปลงได้ก็ต่อเมื่อสคีมา GraphQL เข้ากันได้กับสคีมา PostgreSQL

    เรามีคำสั่ง firebase dataconnect:sql:diff เพื่อช่วยให้การจัดสคีมาทั้ง 2 รายการง่ายขึ้น ซึ่งจะให้คำสั่ง SQL ที่จำเป็นในการย้ายข้อมูลฐานข้อมูล คุณสามารถใช้คำสั่งนี้เพื่อปรับแต่งสคีมา GraphQL ซ้ำๆ ให้ตรงกับสคีมาฐานข้อมูลที่มีอยู่

  4. ในอนาคต คุณสามารถปรับสคีมา GraphQL, การค้นหา และการเปลี่ยนแปลงได้อย่างรวดเร็วในสภาพแวดล้อมการพัฒนาในเครื่อง จากนั้นเมื่อพอใจแล้ว คุณสามารถใช้ firebase dataconnect:sql:diff เพื่อรับคำสั่งการย้ายข้อมูล SQL ที่คุณสามารถใช้กับ PostgreSQL ได้โดยใช้เครื่องมือและโฟลว์ที่กำหนดเอง

  5. อีกทางเลือกหนึ่งคือ คุณอาจทำการเปลี่ยนแปลงฐานข้อมูล PostgreSQL โดยตรงก่อน แล้วลองนำการเปลี่ยนแปลงเหล่านั้นกลับไปใช้ในสคีมา GraphQL เราขอแนะนำแนวทาง GraphQL ก่อน เนื่องจากอาจมีบางกรณีที่ระบบไม่รองรับการเปลี่ยนแปลงสคีมา นอกจากนี้ หากคุณติดตั้งใช้งานการเปลี่ยนแปลงที่ทำให้สคีมา PostgreSQL ไม่เข้ากันกับการค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ติดตั้งใช้งาน ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ