โปรเจ็กต์ 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
- รายการบทบาทโดยละเอียด SQL Connect
เลือกบทบาทเพื่อเปิดใช้เวิร์กโฟลว์ที่เฉพาะเจาะจง
บทบาท IAM ช่วยให้เวิร์กโฟลว์ Firebase CLI ช่วยให้คุณจัดการโปรเจ็กต์ SQL Connect ได้
| คำสั่ง CLI, เวิร์กโฟลว์อื่นๆ | บทบาทที่จำเป็น |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
ตรวจสอบประสิทธิภาพของบริการ 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
โดยทั่วไป เวิร์กโฟลว์สำหรับการผสานรวมฐานข้อมูลที่มีอยู่เกี่ยวข้องกับขั้นตอนต่อไปนี้
ในระหว่างการตั้งค่าโปรเจ็กต์ SQL Connect ในคอนโซล Firebase ให้เลือกอินสแตนซ์และฐานข้อมูล
ใช้ Firebase CLI เรียกใช้คำสั่ง
firebase dataconnect:sql:setupและปฏิเสธตัวเลือกที่จะอนุญาตให้ SQL Connect จัดการการย้ายข้อมูล SQLเพื่อป้องกันการเปลี่ยนแปลงสคีมาฐานข้อมูลที่ไม่ได้เกิดจากเครื่องมือที่กำหนดเอง คำสั่ง
setupจะกำหนดบทบาทผู้อ่านและผู้เขียนที่เหมาะสม แต่จะไม่กำหนด บทบาทownerดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งsetupและ บทบาท PostgreSQL ได้ใน Firebase คู่มืออ้างอิง CLIเขียนสคีมา GraphQL ของ SQL Connect ที่ตรงกับสคีมาฐานข้อมูล
คุณจะติดตั้งใช้งานสคีมา GraphQL, การค้นหา และการเปลี่ยนแปลงได้ก็ต่อเมื่อสคีมา GraphQL เข้ากันได้กับสคีมา PostgreSQL
เรามีคำสั่ง
firebase dataconnect:sql:diffเพื่อช่วยให้การจัดสคีมาทั้ง 2 รายการง่ายขึ้น ซึ่งจะให้คำสั่ง SQL ที่จำเป็นในการย้ายข้อมูลฐานข้อมูล คุณสามารถใช้คำสั่งนี้เพื่อปรับแต่งสคีมา GraphQL ซ้ำๆ ให้ตรงกับสคีมาฐานข้อมูลที่มีอยู่ในอนาคต คุณสามารถปรับสคีมา GraphQL, การค้นหา และการเปลี่ยนแปลงได้อย่างรวดเร็วในสภาพแวดล้อมการพัฒนาในเครื่อง จากนั้นเมื่อพอใจแล้ว คุณสามารถใช้
firebase dataconnect:sql:diffเพื่อรับคำสั่งการย้ายข้อมูล SQL ที่คุณสามารถใช้กับ PostgreSQL ได้โดยใช้เครื่องมือและโฟลว์ที่กำหนดเองอีกทางเลือกหนึ่งคือ คุณอาจทำการเปลี่ยนแปลงฐานข้อมูล PostgreSQL โดยตรงก่อน แล้วลองนำการเปลี่ยนแปลงเหล่านั้นกลับไปใช้ในสคีมา GraphQL เราขอแนะนำแนวทาง GraphQL ก่อน เนื่องจากอาจมีบางกรณีที่ระบบไม่รองรับการเปลี่ยนแปลงสคีมา นอกจากนี้ หากคุณติดตั้งใช้งานการเปลี่ยนแปลงที่ทำให้สคีมา PostgreSQL ไม่เข้ากันกับการค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ติดตั้งใช้งาน ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ