โปรเจ็กต์ Data Connect ประกอบด้วยองค์ประกอบโครงสร้างพื้นฐานหลัก 2 อย่าง ได้แก่
- Data Connectอินสแตนซ์บริการอย่างน้อย 1 รายการ
 - อินสแตนซ์ Cloud SQL สำหรับ PostgreSQL อย่างน้อย 1 รายการ
 
คู่มือนี้จะอธิบายวิธีตั้งค่าและจัดการData Connect อินสแตนซ์บริการ รวมถึงแนะนำวิธีจัดการอินสแตนซ์ Cloud SQL ที่เชื่อมโยง
กำหนดค่าภูมิภาคสำหรับ Firebase Data Connect
โปรเจ็กต์ที่ใช้ Data Connect ต้องมีการตั้งค่าตำแหน่ง
เมื่อสร้างData Connectอินสแตนซ์บริการData Connectใหม่ ระบบจะแจ้งให้คุณเลือกตำแหน่งของบริการ
ประเทศที่ให้บริการ
คุณสร้างบริการ Data Connect ได้ในภูมิภาคต่อไปนี้
- asia-east1
 - asia-east2
 - asia-northeast1
 - asia-northeast2
 - asia-northeast3
 - asia-south1
 - asia-southeast1
 - asia-southeast2
 - 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
 
จัดการอินสแตนซ์บริการ Data Connect
สร้างบริการ
หากต้องการสร้างบริการใหม่ ให้ใช้ Firebase คอนโซลหรือเรียกใช้การเริ่มต้นโปรเจ็กต์ในเครื่องโดยใช้ Firebase CLI เวิร์กโฟลว์เหล่านี้จะสร้างData Connectบริการใหม่
นอกจากนี้ ขั้นตอนเหล่านี้ยังแนะนำคุณเกี่ยวกับสิ่งต่อไปนี้ด้วย
- การจัดสรรอินสแตนซ์ Cloud SQL ใหม่ (ระดับไม่มีค่าใช้จ่าย)
 - การลิงก์อินสแตนซ์ Cloud SQL ที่มีอยู่กับ Data Connect (แพ็กเกจ Blaze)
 
จัดการผู้ใช้
Data Connect มีเครื่องมือในการจัดการสิทธิ์เข้าถึงของผู้ใช้ตามหลักการให้สิทธิ์น้อยที่สุด (ให้สิทธิ์ที่จำเป็นขั้นต่ำแก่ผู้ใช้หรือบัญชีบริการแต่ละรายเพื่อรองรับฟังก์ชันการทำงานที่จำเป็น) และแนวคิดการควบคุมการเข้าถึงตามบทบาท (RBAC) (มีบทบาทที่กำหนดไว้ล่วงหน้าเพื่อจัดการสิทธิ์ของฐานข้อมูล ซึ่งช่วยลดความซับซ้อนในการจัดการความปลอดภัย)
หากต้องการเพิ่มสมาชิกในโปรเจ็กต์เป็นผู้ใช้ที่แก้ไขData Connect อินสแตนซ์ในโปรเจ็กต์ได้ ให้ใช้คอนโซล Firebase เพื่อเลือก บทบาทของผู้ใช้ที่กำหนดไว้ล่วงหน้าที่เหมาะสม
บทบาทเหล่านี้ให้สิทธิ์โดยใช้ Identity and Access Management (IAM) บทบาทคือคอลเล็กชันของสิทธิ์ เมื่อมอบหมายบทบาทให้กับสมาชิกโปรเจ็กต์ คุณจะมอบสิทธิ์ทั้งหมดที่มีอยู่ในบทบาทนั้นให้กับสมาชิกโปรเจ็กต์ ดู ข้อมูลเพิ่มเติมได้ที่
- ภาพรวมของบทบาท IAM ของ Firebase
 - รายการบทบาทData Connectโดยละเอียด
 
เลือกบทบาทเพื่อเปิดใช้เวิร์กโฟลว์ที่เฉพาะเจาะจง
บทบาท IAM ช่วยให้Firebaseเวิร์กโฟลว์ CLI ช่วยให้คุณจัดการโปรเจ็กต์ Data Connectได้
| คำสั่ง CLI, เวิร์กโฟลว์อื่นๆ | ต้องมีบทบาทต่อไปนี้ | 
|---|---|
firebase init dataconnect
     | 
    
      
  | 
  
firebase deploy -–only dataconnect
     | 
    
      
  | 
  
firebase dataconnect:sql:diff
     | 
    
      
  | 
  
firebase dataconnect:sql:migrate
     | 
    
      
  | 
  
firebase dataconnect:sql:grant
     | 
    
      
  | 
  
ตรวจสอบData Connectประสิทธิภาพของบริการ
ทำความเข้าใจประสิทธิภาพของบริการ
ประสิทธิภาพของทั้งบริการ Data Connect และบริการ Cloud SQL สำหรับ PostgreSQL อาจส่งผลต่อประสบการณ์การใช้งานของคุณ
- สำหรับบริการ Cloud SQL สำหรับ PostgreSQL โปรดดูคำแนะนำทั่วไปในเอกสารประกอบเกี่ยวกับโควต้าและขีดจำกัด
 สำหรับบริการ Data Connect จะมีโควต้าสำหรับคำขอ GraphQL ซึ่งจะส่งผลต่ออัตราที่คุณสามารถเรียกใช้และดำเนินการค้นหาได้
- โควต้าต่อโปรเจ็กต์โดยรวมคือ 6,000 คำขอต่อนาทีจากตัวเชื่อมต่อแอปไคลเอ็นต์
 - โควต้าต่อโปรเจ็กต์โดยรวมคือ 6,000 คำขอต่อนาทีจาก Firebase Admin SDK และจาก REST API
 - โควต้าต่อผู้ใช้ 1,200 คำขอต่อนาที ในที่นี้ "ต่อผู้ใช้" หมายความว่า ขีดจํากัดจะมีผลกับคําขอที่เริ่มต้นจากที่อยู่ IP เดียว ไม่ว่าจะมาจาก แอปไคลเอ็นต์ จาก Firebase Admin SDK หรือจาก REST API
 
หากพบว่ามีการจำกัดโควต้าดังกล่าว โปรดติดต่อทีมสนับสนุน Firebase เพื่อปรับโควต้าที่เกี่ยวข้อง
ตรวจสอบประสิทธิภาพ การใช้งาน และการเรียกเก็บเงินของบริการ
คุณสามารถตรวจสอบคำขอ ข้อผิดพลาด และอัตราการดำเนินการได้ทั้งในระดับโลกและต่อการดำเนินการในFirebaseคอนโซล
จัดการอินสแตนซ์ Cloud SQL
ข้อจำกัดของช่วงทดลองใช้ฟรี
ฟีเจอร์ Cloud SQL สำหรับ PostgreSQL ต่อไปนี้ไม่รองรับในช่วงทดลองใช้ฟรี 3 เดือน
- ระดับเครื่องที่แตกต่างจาก db-f1-micro
 - การเปลี่ยนทรัพยากรของอินสแตนซ์ เช่น ภูมิภาค พื้นที่เก็บข้อมูล หน่วยความจำ CPU
 - PostgreSQL เวอร์ชันอื่นๆ ที่ไม่ใช่ 15.x
 - ตัวจำลองการอ่าน
 - ที่อยู่ IP ส่วนตัวของอินสแตนซ์
 - ความพร้อมใช้งานสูง (หลายโซน) รองรับเฉพาะอินสแตนซ์แบบโซนเดียว
 - รุ่น Enterprise Plus
 - สำรองข้อมูลอัตโนมัติ
 - การเพิ่มพื้นที่เก็บข้อมูลอัตโนมัติ
 
ข้อจำกัดของฐานข้อมูลการเริ่มต้นใช้งานชั่วคราว
เมื่อเพิ่ม Data Connect ลงในโปรเจ็กต์ Firebase คุณจะเริ่ม สร้างต้นแบบโมเดลข้อมูลและโหลดข้อมูลได้ทันที เนื่องจากระบบจะจัดเก็บข้อมูลไว้ใน ฐานข้อมูลชั่วคราว โปรดทราบว่าอินสแตนซ์ Cloud SQL สำหรับ PostgreSQL แบบถาวร จะใช้เวลา 5-20 นาทีในการจัดสรร ระบบจะย้ายข้อมูลเริ่มต้นที่คุณโหลดไปยังฐานข้อมูล PostgreSQL ถาวรโดยอัตโนมัติเมื่อมีการจัดสรร
ฐานข้อมูลชั่วคราวนี้เหมาะอย่างยิ่งสำหรับการสำรวจสคีมาและการดำเนินการ CRUD
หากไม่ต้องการใช้ฐานข้อมูลชั่วคราว ให้รอจนกว่าจะมีการจัดสรรอินสแตนซ์ Cloud SQL
ฐานข้อมูลชั่วคราวไม่ใช่ฐานข้อมูล PostgreSQL และไม่มีฟีเจอร์ทั้งหมดของ PostgreSQL
ข้อจำกัดที่สำคัญมีดังนี้
- ฐานข้อมูลต้องมีขนาดไม่เกิน 1 MB
 - จำนวนแถวต่อตารางต้องน้อยกว่า 1,000
 - น้อยกว่า 1 คำค้นหาต่อวินาที
 - ไม่รองรับการค้นหาข้อความแบบเต็ม
 - ไม่รองรับการสร้างการฝังเวกเตอร์
 - ไม่รองรับฟีเจอร์ SQL ดิบ เช่น 
@view,@col(dataType) 
ดูแลอินสแตนซ์ Cloud SQL
โดยทั่วไป คุณสามารถจัดการอินสแตนซ์ Cloud SQL ได้โดยใช้Google Cloudคอนโซลเพื่อ ทำเวิร์กโฟลว์ต่อไปนี้
- หยุดและรีสตาร์ทอินสแตนซ์ Cloud SQL
 - สร้างและลบฐานข้อมูล Cloud SQL (ภายในอินสแตนซ์)
 - เริ่มต้นอินสแตนซ์ฐานข้อมูล PostgreSQL ด้วย Flag และใช้ส่วนขยายที่หลากหลาย
 - ตรวจสอบประสิทธิภาพด้วยฟีเจอร์การสังเกตการณ์ Cloud SQL ในGoogle Cloud Console
 - จัดการการเข้าถึงและความปลอดภัยของ Cloud SQL ด้วยฟีเจอร์ต่างๆ เช่น IAM, Secret Manager, การเข้ารหัสข้อมูลและพร็อกซีการตรวจสอบสิทธิ์
 - เพิ่ม ลบ และดูแลผู้ใช้ Cloud SQL
 
สำหรับเวิร์กโฟลว์เหล่านี้และเวิร์กโฟลว์อื่นๆ โปรดดูเอกสารประกอบ Cloud SQL สำหรับ PostgreSQL
มอบบทบาทผู้ใช้ PostgreSQL
Data Connect มีเครื่องมือในการจัดการสิทธิ์เข้าถึงของผู้ใช้ตามหลักการให้สิทธิ์น้อยที่สุด (ให้สิทธิ์ที่จำเป็นขั้นต่ำแก่ผู้ใช้หรือบัญชีบริการแต่ละรายเพื่อรองรับฟังก์ชันการทำงานที่จำเป็น) และแนวคิดการควบคุมการเข้าถึงตามบทบาท (RBAC) (มีบทบาทที่กำหนดไว้ล่วงหน้าเพื่อจัดการสิทธิ์ของฐานข้อมูล ซึ่งช่วยลดความซับซ้อนในการจัดการความปลอดภัย)
ในบางกรณี คุณอาจต้องการเชื่อมต่อกับฐานข้อมูล Cloud SQL ที่Data Connect จัดการ โดยตรงผ่านไคลเอ็นต์ SQL ที่คุณเลือก เช่น Cloud Run, Cloud Functions หรือ GKE
หากต้องการเปิดใช้การเชื่อมต่อดังกล่าว คุณต้องให้สิทธิ์ SQL โดยทำดังนี้
- มอบหมาย
roles/cloudsql.clientบทบาท IAM ให้กับผู้ใช้หรือบัญชีบริการ ที่ต้องเชื่อมต่อกับอินสแตนซ์จากGoogle Cloudคอนโซลหรือ ใช้gcloud CLI - การให้บทบาท PostgreSQL ที่จำเป็นโดยใช้ Firebase CLI
 
มอบหมายบทบาท IAM ของ Cloud SQL
ดูข้อมูลเกี่ยวกับการทำงานกับ Cloud SQL สำหรับ PostgreSQL เพื่อกำหนดบทบาท IAM
roles/cloudsql.client ได้ที่บทบาทและสิทธิ์
มอบบทบาท PostgreSQL
การใช้ Firebase CLI ช่วยให้คุณมอบบทบาท PostgreSQL ที่กำหนดไว้ล่วงหน้าให้กับผู้ใช้
หรือบัญชีบริการที่เชื่อมโยงกับโปรเจ็กต์ได้ด้วยคำสั่ง firebase dataconnect:sql:grant
เช่น หากต้องการให้บทบาทผู้เขียน ให้เรียกใช้คำสั่งนี้ที่ CLI
firebase dataconnect:sql:grant --role writerดูรายละเอียดได้ที่คู่มืออ้างอิง CLI
ผสานรวมฐานข้อมูล Cloud SQL สำหรับ PostgreSQL ที่มีอยู่
โฟลว์การจัดสรรและการจัดการฐานข้อมูลเริ่มต้นจะถือว่าโปรเจ็กต์ของคุณ
ใช้ฐานข้อมูลใหม่ (Greenfield) และเมื่อคุณเรียกใช้ firebase deploy
Data Connect จะแสดงการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่จะดำเนินการ และ
ทำการย้ายข้อมูลหลังจากที่คุณอนุมัติ
สำหรับฐานข้อมูลที่มีอยู่ (บราวน์ฟิลด์) คุณอาจมีเวิร์กโฟลว์ของคุณเองสำหรับ การจัดการสคีมาและไม่สามารถใช้Data Connectเครื่องมือสำหรับการย้ายข้อมูล แต่ต้องการใช้ฐานข้อมูลในโปรเจ็กต์ Data Connect เพื่อใช้ประโยชน์จาก การสร้าง SDK สำหรับอุปกรณ์เคลื่อนที่และเว็บ การให้สิทธิ์ตามการค้นหา การจัดการการเชื่อมต่อไคลเอ็นต์ และอื่นๆ
ส่วนนี้จะให้คำแนะนำเกี่ยวกับกรณีหลัง นั่นคือการผสานรวมฐานข้อมูลที่มีอยู่กับ Data Connect
ผสานรวมฐานข้อมูลที่มีอยู่กับData Connectโปรเจ็กต์
โดยทั่วไปแล้ว เวิร์กโฟลว์สำหรับการผสานรวมฐานข้อมูลที่มีอยู่จะเกี่ยวข้องกับขั้นตอนต่อไปนี้
- ในระหว่างData Connectการตั้งค่าโปรเจ็กต์ในFirebaseคอนโซล เลือกอินสแตนซ์และฐานข้อมูล
 ใช้ Firebase CLI แล้วเรียกใช้คำสั่ง
firebase dataconnect:sql:setupและปฏิเสธตัวเลือกเพื่ออนุญาตให้ Data Connect จัดการการย้ายข้อมูล SQLหากต้องการป้องกันไม่ให้มีการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่ไม่ได้เกิดจากเครื่องมือที่กำหนดเอง คำสั่ง
setupจะกำหนดบทบาทผู้อ่านและผู้เขียนที่เหมาะสม แต่จะไม่กำหนดบทบาทownerดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งsetupและบทบาทของ PostgreSQL ได้ในคู่มืออ้างอิง CLIเขียนData Connectสคีมา GraphQL ที่ตรงกับสคีมาฐานข้อมูล
คุณจะติดตั้งใช้งานสคีมา การค้นหา และการเปลี่ยนแปลง GraphQL ได้ก็ต่อเมื่อ สคีมา GraphQL เข้ากันได้กับสคีมา PostgreSQL
เรามีคำสั่ง
firebase dataconnect:sql:diffเพื่อให้การจัดแนวทั้ง 2 สคีมาเป็นเรื่องง่าย ซึ่งจะให้คำสั่ง SQL ที่จำเป็นแก่คุณ ในการย้ายข้อมูลฐานข้อมูล คุณสามารถใช้สิ่งนี้เพื่อ ปรับแต่งสคีมา GraphQL ซ้ำๆ ให้ตรงกับสคีมาฐานข้อมูลที่มีอยู่หลังจากนี้ คุณจะสามารถทำซ้ำสคีมา GraphQL, การค้นหา และ การเปลี่ยนแปลงในสภาพแวดล้อมการพัฒนาในเครื่องได้อย่างรวดเร็ว จากนั้นเมื่อพอใจแล้ว คุณจะ ใช้
firebase dataconnect:sql:diffเพื่อรับคำสั่งการย้ายข้อมูล SQL ที่ใช้กับ PostgreSQL ได้โดยใช้เครื่องมือและโฟลว์ที่กำหนดเองหรือคุณอาจทำการเปลี่ยนแปลงในฐานข้อมูล PostgreSQL โดยตรงก่อน แล้วลองพอร์ตกลับไปยังสคีมา GraphQL เราขอแนะนำให้ใช้ แนวทาง GraphQL-first เนื่องจากอาจมีกรณีที่ระบบไม่รองรับการเปลี่ยนแปลงสคีมา นอกจากนี้ หากคุณใช้การเปลี่ยนแปลงที่ทำให้สคีมา PostgreSQL ไม่เข้ากันกับคำค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ใช้งาน ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ