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