โปรเจ็กต์ 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
สร้างบริการ
หากต้องการสร้างบริการใหม่ ให้ใช้ Firebase คอนโซลหรือเรียกใช้การเริ่มต้นโปรเจ็กต์ที่อยู่ในเครื่องโดยใช้ Firebase CLI เวิร์กโฟลว์เหล่านี้จะสร้าง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 ซึ่งส่งผลต่ออัตราที่คุณสามารถเรียกใช้และดำเนินการค้นหาได้ ดังนี้
- โควต้าต่อโปรเจ็กต์ต่อภูมิภาคสำหรับคำขอ GraphQL 24000 รายการต่อนาที
หากพบว่ามีการจำกัดโควต้าดังกล่าว โปรดติดต่อทีมสนับสนุน 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 ด้วย Flag และใช้ส่วนขยายที่หลากหลาย
ตรวจสอบประสิทธิภาพด้วย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 โดยทำดังนี้
- มอบหมาย
roles/cloudsql.clientบทบาท IAM ให้กับผู้ใช้หรือบัญชีบริการ ที่ต้องเชื่อมต่อกับอินสแตนซ์จากGoogle Cloudคอนโซลหรือ ใช้gcloud CLI - การให้บทบาท PostgreSQL ที่จำเป็นโดยใช้ Firebase CLI
มอบหมายบทบาท Cloud SQL IAM
ดูข้อมูลเกี่ยวกับการทำงานกับ Cloud SQL สำหรับ PostgreSQL เพื่อกำหนดบทบาท IAM
roles/cloudsql.client ได้ที่
บทบาทและสิทธิ์
มอบบทบาท PostgreSQL
การใช้ Firebase CLI ช่วยให้คุณมอบบทบาท PostgreSQL ที่กำหนดไว้ล่วงหน้าให้กับผู้ใช้
หรือบัญชีบริการที่เชื่อมโยงกับโปรเจ็กต์ได้ด้วยคำสั่ง firebase dataconnect:sql:grant
เช่น หากต้องการให้สิทธิ์บทบาทผู้เขียน ให้เรียกใช้คำสั่งนี้โดยใช้ Firebase CLI
firebase dataconnect:sql:grant --role writerดูรายละเอียดได้ที่Firebaseคู่มืออ้างอิง CLI
ผสานรวม Cloud SQL ที่มีอยู่สำหรับฐานข้อมูล PostgreSQL
การจัดสรรและการจัดการฐานข้อมูลเริ่มต้นจะถือว่าโปรเจ็กต์ของคุณ
ใช้ฐานข้อมูลใหม่ (Greenfield) และเมื่อคุณเรียกใช้ firebase deploy
SQL Connect จะแสดงการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่จะดำเนินการและ
ทำการย้ายข้อมูลหลังจากที่คุณอนุมัติ
สำหรับฐานข้อมูลที่มีอยู่ (บราวน์ฟิลด์) คุณอาจมีเวิร์กโฟลว์ของคุณเองสำหรับ การจัดการสคีมาและใช้SQL Connectเครื่องมือสำหรับการย้ายข้อมูลไม่ได้ แต่ต้องการใช้ฐานข้อมูลในโปรเจ็กต์ SQL Connect เพื่อใช้ประโยชน์จาก การสร้าง SDK สำหรับอุปกรณ์เคลื่อนที่และเว็บ การให้สิทธิ์ตามการค้นหา การจัดการการเชื่อมต่อไคลเอ็นต์ และอื่นๆ
ส่วนนี้จะให้คำแนะนำเกี่ยวกับกรณีหลัง นั่นคือการผสานรวมฐานข้อมูลที่มีอยู่กับ SQL Connect
Cloud SQLผสานรวมฐานข้อมูลที่มีอยู่เข้ากับSQL Connectโปรเจ็กต์
โดยทั่วไปแล้ว เวิร์กโฟลว์สำหรับการผสานรวมฐานข้อมูลที่มีอยู่จะเกี่ยวข้องกับขั้นตอนต่อไปนี้
ในระหว่างSQL Connectการตั้งค่าโปรเจ็กต์ในFirebaseคอนโซล เลือกอินสแตนซ์และฐานข้อมูล
ใช้ Firebase CLI เพื่อเรียกใช้คำสั่ง
firebase dataconnect:sql:setupและปฏิเสธตัวเลือกในการอนุญาตให้ SQL Connect จัดการการย้ายข้อมูล SQLหากต้องการป้องกันไม่ให้มีการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่ไม่ได้เกิดจากเครื่องมือที่กำหนดเอง คำสั่ง
setupจะกำหนดบทบาทผู้อ่านและผู้เขียนที่เหมาะสม แต่จะไม่กำหนดบทบาทownerดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งsetupและบทบาทของ PostgreSQL ได้ในFirebase คู่มืออ้างอิง CLIเขียนSQL Connectสคีมา GraphQL ที่ตรงกับสคีมาฐานข้อมูล
คุณจะติดตั้งใช้งานสคีมา GraphQL, การค้นหา และการเปลี่ยนแปลงได้ก็ต่อเมื่อ สคีมา GraphQL เข้ากันได้กับสคีมา PostgreSQL
เรามีคำสั่ง
firebase dataconnect:sql:diffเพื่อให้การจัดแนวทั้ง 2 สคีมาเป็นเรื่องง่าย ซึ่งจะให้คำสั่ง SQL ที่จำเป็นแก่คุณในการย้ายข้อมูลฐานข้อมูล คุณสามารถใช้สิ่งนี้เพื่อ ปรับแต่งสคีมา GraphQL ซ้ำๆ ให้ตรงกับสคีมาฐานข้อมูลที่มีอยู่หลังจากนี้ คุณจะสามารถทำซ้ำสคีมา GraphQL, การค้นหา และ การเปลี่ยนแปลงในสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่องได้อย่างรวดเร็ว จากนั้นเมื่อพอใจแล้ว คุณจะ ใช้
firebase dataconnect:sql:diffเพื่อรับคำสั่งการย้ายข้อมูล SQL ที่ใช้กับ PostgreSQL ได้โดยใช้เครื่องมือและโฟลว์ที่กำหนดเองหรือคุณอาจทำการเปลี่ยนแปลงในฐานข้อมูล PostgreSQL โดยตรงก่อน แล้วลองพอร์ตกลับไปยังสคีมา GraphQL เราขอแนะนําให้ใช้ แนวทาง GraphQL-first เนื่องจากอาจมีกรณีที่ระบบไม่รองรับการเปลี่ยนแปลงสคีมา นอกจากนี้ หากคุณใช้การเปลี่ยนแปลงที่ทำให้สคีมา PostgreSQL ไม่สามารถใช้งานร่วมกับคำค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ใช้งานอยู่ ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ