โปรเจ็กต์ 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 เดือน
- PostgreSQL เวอร์ชันอื่นๆ ที่ไม่ใช่ 15.x
- การใช้อินสแตนซ์ Cloud SQL สำหรับ PostgreSQL ที่มีอยู่
- ระดับเครื่องที่แตกต่างจาก db-f1-micro
- การเปลี่ยนทรัพยากรของอินสแตนซ์ เช่น พื้นที่เก็บข้อมูล หน่วยความจำ CPU
- ตัวจำลองการอ่าน
- ที่อยู่ IP ส่วนตัวของอินสแตนซ์
- ความพร้อมใช้งานสูง (หลายโซน) รองรับเฉพาะอินสแตนซ์แบบโซนเดียว
- รุ่น Enterprise Plus
- สำรองข้อมูลอัตโนมัติ
- การเพิ่มพื้นที่เก็บข้อมูลอัตโนมัติ
ดูแลอินสแตนซ์ 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 จะแสดงการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่จะดำเนินการ และ
ทำการย้ายข้อมูลหลังจากที่คุณอนุมัติ
สำหรับฐานข้อมูลที่มีอยู่ (Brownfield) คุณอาจมีเวิร์กโฟลว์ของคุณเองในการจัดการสคีมาและไม่สามารถใช้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 ไม่เข้ากันกับการค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ใช้งานอยู่ ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ