จัดการบริการและฐานข้อมูล Data Connect

โปรเจ็กต์ 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เวิร์กโฟลว์ CLI ช่วยให้คุณจัดการโปรเจ็กต์ Data Connectได้

คำสั่ง CLI, เวิร์กโฟลว์อื่นๆ ต้องมีบทบาทต่อไปนี้
firebase init dataconnect
  • ไม่มีสิทธิ์ (เมื่อไม่ได้ลิงก์อินสแตนซ์ Cloud SQL)
  • roles/cloudsql.admin (เมื่อสร้างอินสแตนซ์ Cloud SQL)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • roles/cloudsql.admin ในอินสแตนซ์ Cloud SQL เป้าหมาย
firebase dataconnect:sql:grant
  • roles/cloudsql.admin ในอินสแตนซ์ Cloud SQL เป้าหมาย

ตรวจสอบ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

โดยทั่วไปแล้ว เวิร์กโฟลว์สำหรับการผสานรวมฐานข้อมูลที่มีอยู่จะเกี่ยวข้องกับขั้นตอนต่อไปนี้

  1. ในระหว่างData Connectการตั้งค่าโปรเจ็กต์ในFirebaseคอนโซล ให้เลือกอินสแตนซ์และฐานข้อมูล
  2. ใช้ Firebase CLI แล้วเรียกใช้คำสั่ง firebase dataconnect:sql:setup และปฏิเสธตัวเลือกในการอนุญาตให้ Data Connect จัดการการย้ายข้อมูล SQL

    หากต้องการป้องกันไม่ให้มีการเปลี่ยนแปลงสคีมาของฐานข้อมูลที่ไม่ได้เกิดจากเครื่องมือที่กำหนดเอง คำสั่ง setup จะกำหนดบทบาทผู้อ่านและผู้เขียนที่เหมาะสม แต่จะไม่กำหนดบทบาท owner ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง setup และบทบาทของ PostgreSQL ได้ในคู่มืออ้างอิง CLI

  3. เขียนData Connectสคีมา GraphQL ที่ตรงกับสคีมาฐานข้อมูล

    คุณจะใช้สคีมา การค้นหา และการกลายพันธุ์ของ GraphQL ได้ก็ต่อเมื่อ สคีมา GraphQL เข้ากันได้กับสคีมา PostgreSQL

    เรามีคำสั่ง firebase dataconnect:sql:diff เพื่อให้การจัดแนวทั้ง 2 สคีมาเป็นเรื่องง่าย ซึ่งจะให้คำสั่ง SQL ที่จำเป็นแก่คุณ ในการย้ายข้อมูลฐานข้อมูล คุณสามารถใช้สิ่งนี้เพื่อ ปรับแต่งสคีมา GraphQL ซ้ำๆ ให้ตรงกับสคีมาฐานข้อมูลที่มีอยู่

  4. หลังจากนี้ คุณจะสามารถทำซ้ำสคีมา GraphQL, การค้นหา และ การเปลี่ยนแปลงในสภาพแวดล้อมการพัฒนาในเครื่องได้อย่างรวดเร็ว จากนั้นเมื่อพอใจแล้ว คุณจะ ใช้ firebase dataconnect:sql:diff เพื่อรับคำสั่งการย้ายข้อมูล SQL ที่ใช้กับ PostgreSQL ได้โดยใช้เครื่องมือและโฟลว์ที่กำหนดเอง

  5. หรือคุณอาจทำการเปลี่ยนแปลงในฐานข้อมูล PostgreSQL โดยตรงก่อน แล้วลองพอร์ตกลับไปยังสคีมา GraphQL เราขอแนะนําให้ใช้ แนวทาง GraphQL-first เนื่องจากอาจมีกรณีที่ระบบไม่รองรับการเปลี่ยนแปลงสคีมา นอกจากนี้ หากคุณใช้การเปลี่ยนแปลงที่ทำให้สคีมา PostgreSQL ไม่เข้ากันกับการค้นหาหรือการเปลี่ยนแปลงของตัวเชื่อมต่อที่ใช้งานอยู่ ตัวเชื่อมต่อเหล่านั้นอาจหยุดทำงานหรือทำงานผิดปกติ