Quản lý các dịch vụ và cơ sở dữ liệu SQL Connect

Các dự án SQL Connect bao gồm 2 thành phần cơ sở hạ tầng chính:

  • Một hoặc nhiều thực thể dịch vụ SQL Connect
  • Một hoặc nhiều Cloud SQL cho thực thể PostgreSQL

Hướng dẫn này thảo luận về cách thiết lập và quản lý các thực thể dịch vụ SQL Connect, đồng thời giới thiệu cách quản lý các thực thể được liên kết Cloud SQL.

Định cấu hình khu vực cho Firebase SQL Connect

Các dự án sử dụng SQL Connect yêu cầu chế độ cài đặt vị trí.

Khi tạo một thực thể dịch vụ SQL Connect mới, bạn sẽ được nhắc chọn vị trí của dịch vụ.

Phạm vi cung cấp

Các dịch vụ SQL Connect có thể được tạo ở các khu vực sau.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (không dùng được cho các bản dùng thử gói Spark)
  • asia-southeast2 (không dùng được cho các bản dùng thử gói 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

Quản lý các thực thể dịch vụ SQL Connect

Tạo dịch vụ

Để tạo một dịch vụ mới, hãy sử dụng bảng điều khiển Firebase hoặc chạy quá trình khởi chạy dự án cục bộ bằng Firebase CLI. Các quy trình làm việc này sẽ tạo một dịch vụ SQL Connect mới.

Các quy trình này cũng hướng dẫn bạn cách:

  • Cung cấp một thực thể Cloud SQL mới (cấp miễn phí)
  • Liên kết một thực thể Cloud SQL hiện có với SQL Connect (gói Blaze)

Quản lý người dùng

SQL Connect cung cấp các công cụ để quản lý quyền truy cập của người dùng theo nguyên tắc cấp quyền tối thiểu (cấp cho mỗi người dùng hoặc tài khoản dịch vụ các quyền tối thiểu cần thiết để hỗ trợ chức năng cần thiết) và khái niệm về kiểm soát quyền truy cập theo vai trò (RBAC) (với các vai trò được xác định trước để quản lý quyền đối với cơ sở dữ liệu, giúp đơn giản hoá việc quản lý bảo mật).

Để thêm thành viên dự án làm người dùng có thể sửa đổi SQL Connect thực thể trong dự án của bạn, hãy sử dụng bảng điều khiển Firebase để chọn các vai trò người dùng được xác định trước phù hợp.

Các vai trò này cấp quyền bằng cách sử dụng tính năng Quản lý danh tính và quyền truy cập (IAM). Vai trò là một tập hợp các quyền. Khi bạn chỉ định một vai trò cho thành viên dự án, bạn sẽ cấp cho thành viên dự án đó tất cả các quyền mà vai trò đó chứa. Xem thêm thông tin trong:

Chọn vai trò để bật các quy trình làm việc cụ thể

Các vai trò IAM cho phép các quy trình làm việc của Firebase CLI giúp bạn quản lý các dự án SQL Connect.

Lệnh CLI, quy trình làm việc khác Vai trò bắt buộc
firebase init dataconnect
  • Không có quyền (khi không liên kết thực thể Cloud SQL)
  • roles/cloudsql.admin (khi tạo thực thể 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 trên thực thể Cloud SQL mục tiêu
firebase dataconnect:sql:grant
  • roles/cloudsql.admin trên thực thể Cloud SQL mục tiêu

Theo dõi hiệu suất dịch vụ SQL Connect

Tìm hiểu về hiệu suất dịch vụ

Hiệu suất của cả dịch vụ SQL Connect và dịch vụ Cloud SQL cho PostgreSQL đều có thể ảnh hưởng đến trải nghiệm của bạn.

  • Đối với dịch vụ Cloud SQL cho PostgreSQL, hãy tham khảo hướng dẫn chung trong tài liệu về Hạn mức và giới hạn.
  • Đối với dịch vụ SQL Connect, có hạn mức cho các yêu cầu GraphQL, ảnh hưởng đến tốc độ mà bạn có thể gọi và thực thi các truy vấn:

    • Hạn mức 24.000 yêu cầu GraphQL mỗi phút cho mỗi dự án trên mỗi khu vực

    Nếu bạn gặp phải những giới hạn hạn mức đó, vui lòng liên hệ với bộ phận hỗ trợ của Firebase để điều chỉnh hạn mức liên quan.

Theo dõi hiệu suất, mức sử dụng và thông tin thanh toán của dịch vụ

Bạn có thể theo dõi các yêu cầu, lỗi và tỷ lệ hoạt động, cả trên toàn cầu và theo từng hoạt động trong Firebase bảng điều khiển.

Quản lý các thực thể Cloud SQL

Các giới hạn của bản dùng thử miễn phí

Các tính năng Cloud SQL sau cho PostgreSQL không được hỗ trợ trong các bản dùng thử miễn phí của gói Spark hoặc Blaze:

  • Cấp máy khác với db-f1-micro
  • Thay đổi tài nguyên của thực thể, chẳng hạn như khu vực, bộ nhớ, dung lượng lưu trữ, CPU
  • Các phiên bản PostgreSQL khác với 15.x
  • Bản sao chỉ đọc
  • Địa chỉ IP thực thể riêng tư
  • Tính sẵn sàng cao (nhiều khu vực); chỉ hỗ trợ các thực thể một khu vực
  • Phiên bản Enterprise Plus
  • Sao lưu tự động
  • Tự động tăng dung lượng lưu trữ.

Các giới hạn của cơ sở dữ liệu tạm thời để bắt đầu sử dụng

Khi thêm SQL Connect vào dự án Firebase, bạn có thể bắt đầu tạo nguyên mẫu mô hình dữ liệu và tải dữ liệu ngay lập tức, vì dữ liệu sẽ được lưu trữ trong cơ sở dữ liệu tạm thời. Xin lưu ý rằng thực thể Cloud SQL cho PostgreSQL vĩnh viễn sẽ mất từ 5 đến 20 phút để cung cấp. Mọi dữ liệu ban đầu mà bạn tải sẽ tự động di chuyển sang cơ sở dữ liệu PostgreSQL vĩnh viễn sau khi được cung cấp.

Cơ sở dữ liệu tạm thời này rất phù hợp để khám phá giản đồ và các thao tác CRUD.

Nếu không muốn sử dụng cơ sở dữ liệu tạm thời, hãy đợi Cloud SQL thực thể được cung cấp.

Cơ sở dữ liệu tạm thời không phải là cơ sở dữ liệu PostgreSQL và không cung cấp tất cả các tính năng của PostgreSQL.

Các giới hạn đáng chú ý là:

  • Kích thước cơ sở dữ liệu phải nhỏ hơn 1 MB
  • Số hàng trên mỗi bảng phải nhỏ hơn 1000
  • Ít hơn 1 truy vấn mỗi giây
  • Không hỗ trợ phương thức tìm kiếm toàn bộ văn bản
  • Không hỗ trợ việc tạo vectơ nhúng
  • Không hỗ trợ các tính năng SQL như @view, @col(dataType) hoặc SQL gốc.

Quản trị các thực thể Cloud SQL

Nói chung, bạn có thể quản lý các thực thể Cloud SQL bằng Google Cloud bảng điều khiển để thực hiện các quy trình làm việc sau.

  • Dừng và khởi động lại các thực thể Cloud SQL

  • Tạo và xoá Cloud SQL cơ sở dữ liệu (trong các thực thể)

  • Khởi động các thực thể cơ sở dữ liệu PostgreSQL bằng cờ và sử dụng a nhiều tiện ích

  • Theo dõi hiệu suất bằng các tính năng quan sát Cloud SQL trong bảng điều khiểnGoogle Cloud

  • Quản lý quyền truy cập và bảo mật Cloud SQL bằng các tính năng như IAM, trình quản lý bí mật, mã hoá dữ liệu và proxy xác thực

  • Thêm, xoá và quản trị người dùng Cloud SQL.

Đối với các quy trình làm việc này và các quy trình làm việc khác, hãy tham khảo Cloud SQL cho tài liệu PostgreSQL.

Cấp vai trò người dùng PostgreSQL

SQL Connect cung cấp các công cụ để quản lý quyền truy cập của người dùng theo nguyên tắc cấp quyền tối thiểu (cấp cho mỗi người dùng hoặc tài khoản dịch vụ các quyền tối thiểu cần thiết để hỗ trợ chức năng cần thiết) và khái niệm về kiểm soát quyền truy cập theo vai trò (RBAC) (với các vai trò được xác định trước để quản lý quyền đối với cơ sở dữ liệu, giúp đơn giản hoá việc quản lý bảo mật).

Trong một số trường hợp, bạn có thể muốn kết nối trực tiếp với cơ sở dữ liệu do SQL Connect-quản lý Cloud SQL thông qua một ứng dụng SQL mà bạn chọn, chẳng hạn như Cloud Run, Cloud Functions hoặc GKE.

Để bật các kết nối như vậy, bạn cần cấp quyền SQL bằng cách:

  • Chỉ định vai trò IAM roles/cloudsql.client cho người dùng hoặc tài khoản dịch vụ cần kết nối với thực thể, từ bảng điều khiển Google Cloud hoặc bằng cách sử dụng gcloud CLI
  • Cấp vai trò PostgreSQL cần thiết bằng Firebase CLI

Chỉ định vai trò IAM Cloud SQL

Để biết thông tin về cách sử dụng Cloud SQL cho PostgreSQL để chỉ định vai trò IAM vai trò roles/cloudsql.client, hãy xem Vai trò và quyền.

Cấp vai trò PostgreSQL

Bằng Firebase CLI, bạn có thể cấp các vai trò PostgreSQL được xác định trước cho người dùng hoặc tài khoản dịch vụ được liên kết với dự án của bạn bằng firebase dataconnect:sql:grant lệnh.

Ví dụ: để cấp vai trò người ghi, hãy chạy lệnh này bằng Firebase CLI:

firebase dataconnect:sql:grant --role writer

Để biết thông tin chi tiết, hãy tham khảo hướng dẫn tham khảo về Firebase CLI.

Tích hợp các cơ sở dữ liệu Cloud SQL cho PostgreSQL hiện có

Quy trình cung cấp và quản lý cơ sở dữ liệu mặc định giả định rằng dự án của bạn sử dụng cơ sở dữ liệu mới (greenfield) và khi bạn gọi firebase deploy, SQL Connect sẽ hiển thị các thay đổi về giản đồ cơ sở dữ liệu cần thực hiện và thực hiện mọi quá trình di chuyển sau khi bạn phê duyệt.

Đối với các cơ sở dữ liệu hiện có (brownfield), bạn có thể có quy trình làm việc riêng để quản lý giản đồ và không thể sử dụng SQL Connect công cụ để di chuyển, nhưng vẫn muốn sử dụng cơ sở dữ liệu của mình trong dự án SQL Connect để tận dụng tính năng tạo SDK cho thiết bị di động và web, uỷ quyền dựa trên truy vấn, quản lý kết nối ứng dụng và nhiều tính năng khác.

Phần này cung cấp hướng dẫn về trường hợp sau: tích hợp các cơ sở dữ liệu hiện có với SQL Connect.

Tích hợp cơ sở dữ liệu hiện có vào dự án SQL Connect

Quy trình làm việc để tích hợp cơ sở dữ liệu hiện có thường bao gồm các bước sau:

  1. Trong quá trình thiết lập dự án SQL Connect trong bảng điều khiển Firebase, hãy chọn thực thể và cơ sở dữ liệu.

  2. Bằng Firebase CLI, hãy chạy lệnh firebase dataconnect:sql:setup và từ chối lựa chọn cho phép SQL Connect xử lý quá trình di chuyển SQL.

    Để ngăn các thay đổi đối với giản đồ cơ sở dữ liệu không do công cụ tuỳ chỉnh của bạn thực hiện, lệnh setup sẽ chỉ định các vai trò người đọc và người ghi phù hợp, nhưng không chỉ định vai trò owner. Bạn có thể xem thêm thông tin về lệnh setup và các vai trò PostgreSQL trong Firebase hướng dẫn tham khảo về CLI.

  3. Viết giản đồ SQL Connect GraphQL phù hợp với giản đồ cơ sở dữ liệu của bạn.

    Bạn chỉ có thể triển khai giản đồ, truy vấn và đột biến GraphQL khi giản đồ GraphQL của bạn tương thích với giản đồ PostgreSQL.

    Để đơn giản hoá việc căn chỉnh cả hai giản đồ, chúng tôi cung cấp lệnh firebase dataconnect:sql:diff, lệnh này sẽ cung cấp cho bạn các câu lệnh SQL cần thiết để di chuyển cơ sở dữ liệu. Bạn có thể sử dụng lệnh này để tinh chỉnh lặp lại giản đồ GraphQL cho phù hợp với giản đồ cơ sở dữ liệu hiện có.

  4. Trong tương lai, bạn có thể lặp lại nhanh chóng trên giản đồ, truy vấn và đột biến GraphQL trong môi trường phát triển cục bộ. Sau đó, khi hài lòng, bạn có thể sử dụng firebase dataconnect:sql:diff để lấy các câu lệnh di chuyển SQL mà bạn có thể áp dụng cho PostgreSQL bằng các công cụ và quy trình tuỳ chỉnh.

  5. Ngoài ra, trước tiên, bạn có thể thay đổi trực tiếp cơ sở dữ liệu PostgreSQL, sau đó thử chuyển các thay đổi đó trở lại giản đồ GraphQL. Bạn nên sử dụng phương pháp ưu tiên GraphQL, vì có thể có trường hợp các thay đổi về giản đồ không được hỗ trợ. Ngoài ra, nếu bạn triển khai các thay đổi khiến giản đồ PostgreSQL không tương thích với truy vấn hoặc đột biến trình kết nối đã triển khai, thì các trình kết nối đó có thể ngừng hoạt động hoặc hoạt động không đúng cách.