Zarządzanie usługami i bazami danych Data Connect

Twoje projekty Data Connect składają się z 2 głównych elementów infrastruktury:

  • co najmniej 1 instancja usługi Data Connect,
  • co najmniej 1 instancja Cloud SQL for PostgreSQL,

W tym przewodniku omawiamy, jak konfigurować instancje usługi Data Connect i nimi zarządzać, a także jak zarządzać powiązanymi instancjami Cloud SQL.

Konfigurowanie regionów dla usługi Firebase Data Connect

Projekty korzystające z Data Connect wymagają ustawienia lokalizacji.

Gdy tworzysz nową Data Connectinstancję usługi, wyświetli się prośba o wybranie lokalizacji usługi.

Dostępne lokalizacje

Usługi Data Connect można tworzyć w tych regionach.

  • 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

Zarządzanie instancjami usługi Data Connect

Tworzenie usług

Aby utworzyć nową usługę, użyj konsoli Firebase lub uruchom lokalną inicjację projektu za pomocą interfejsu Firebase CLI. Te procesy tworzą nową usługę.Data Connect

Te procesy przeprowadzą Cię też przez:

  • Aprowizowanie nowej instancji Cloud SQL (bezpłatna wersja)
  • Łączenie istniejącej instancji Cloud SQL z Data Connect (abonament Blaze)

Zarządzanie użytkownikami

Data Connect udostępnia narzędzia do zarządzania dostępem użytkowników, które są zgodne z zasadą najmniejszych uprawnień (przyznawanie każdemu użytkownikowi lub kontu usługi minimalnych uprawnień niezbędnych do obsługi wymaganych funkcji) i koncepcją kontroli dostępu opartej na rolach (RBAC) (z predefiniowanymi rolami do zarządzania uprawnieniami do bazy danych, co upraszcza zarządzanie bezpieczeństwem).

Aby dodać członków projektu jako użytkowników, którzy mogą modyfikować Data Connectinstancje w projekcie, użyj konsoli Firebase, aby wybrać odpowiednie predefiniowane role użytkowników.

Te role przyznają uprawnienia za pomocą usługi Identity and Access Management (IAM). Rola to zbiór uprawnień. Przypisanie roli członkowi projektu oznacza przyznanie mu wszystkich uprawnień zawartych w tej roli. Więcej informacji znajdziesz w tych artykułach:

Wybieranie ról w celu włączenia określonych przepływów pracy

Role uprawnień umożliwiają przepływy pracy w interfejsie wiersza poleceń Firebase, dzięki czemu możesz zarządzać projektami Data Connect.

Polecenie interfejsu wiersza poleceń, inny przepływ pracy Wymagane role
firebase init dataconnect
  • Brak uprawnień (gdy instancja Cloud SQL nie jest połączona)
  • roles/cloudsql.admin (podczas tworzenia instancji 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
  • rola roles/cloudsql.admin w docelowej instancji Cloud SQL;
firebase dataconnect:sql:grant
  • rola roles/cloudsql.admin w docelowej instancji Cloud SQL;

Monitorowanie wydajności usługi Data Connect

Analizowanie wydajności usługi

Na Twoje wrażenia mogą wpływać wydajność usługi Data Connect i usługi Cloud SQL for PostgreSQL.

  • W przypadku usługi Cloud SQL for PostgreSQL zapoznaj się z ogólnymi wskazówkami w dokumentacji dotyczącej limitów i ograniczeń.
  • W przypadku Data Connect usługi obowiązuje limit żądań GraphQL, który wpływa na częstotliwość, z jaką możesz wywoływać i wykonywać zapytania:

    • Ogólny limit na projekt wynoszący 6000 żądań na minutę z połączeń aplikacji klienckich.
    • Ogólny limit na projekt wynoszący 6000 żądań na minutę z Firebase Admin SDK i interfejsu REST API.
    • Limit 1200 żądań na minutę na użytkownika. W tym przypadku „na użytkownika” oznacza, że limit dotyczy żądań zainicjowanych przez jeden adres IP, niezależnie od tego, czy pochodzą one z aplikacji klienckiej, z Firebase Admin SDK czy z interfejsu API REST.

    Jeśli osiągniesz te limity, skontaktuj się z zespołem pomocy Firebase, aby dostosować odpowiedni limit.

Monitorowanie wydajności, wykorzystania i płatności za usługę

Możesz monitorować żądania, błędy i szybkość operacji zarówno globalnie, jak i w przypadku poszczególnych operacji w Firebasekonsoli.

Zarządzanie instancjami Cloud SQL

Ograniczenia bezpłatnej wersji próbnej

W 3-miesięcznym okresie próbnym nie są obsługiwane te funkcje Cloud SQL for PostgreSQL:

  • Wersje PostgreSQL inne niż 15.x
  • Korzystanie z istniejących instancji Cloud SQL for PostgreSQL
  • inny poziom maszyny niż db-f1-micro;
  • zmiana zasobów instancji, takich jak miejsce na dane, pamięć czy procesor;
  • Repliki do odczytu
  • Prywatny adres IP instancji
  • Wysoka dostępność (wiele stref); obsługiwane są tylko instancje jednostrefowe
  • Wersja Enterprise Plus
  • Automatyczne kopie zapasowe
  • Automatyczne zwiększanie miejsca na dane.

Administrowanie instancjami Cloud SQL

Ogólnie instancjami Cloud SQL możesz zarządzać za pomocą Google Cloudkonsoli, aby wykonywać te czynności:

  • Zatrzymywanie i ponowne uruchamianie instancji Cloud SQL
  • Tworzenie i usuwanie baz danych Cloud SQL (w instancjach)
  • Uruchamianie instancji bazy danych PostgreSQL z flagami i korzystanie z różnych rozszerzeń
  • Monitorowanie wydajności za pomocą funkcji obserwacji Cloud SQL w Google Cloudkonsoli
  • Zarządzanie dostępem do Cloud SQL i bezpieczeństwem za pomocą funkcji takich jak IAM, Secret Manager, szyfrowanie danych i serwer proxy uwierzytelniania
  • dodawać, usuwać i zarządzać użytkownikami Cloud SQL;

Więcej informacji o tych i innych procesach znajdziesz w dokumentacji Cloud SQL for PostgreSQL.

Przyznawanie ról użytkownikom PostgreSQL

Data Connect udostępnia narzędzia do zarządzania dostępem użytkowników, które są zgodne z zasadą najmniejszych uprawnień (przyznawanie każdemu użytkownikowi lub kontu usługi minimalnych uprawnień niezbędnych do obsługi wymaganych funkcji) i koncepcją kontroli dostępu opartej na rolach (RBAC) (z predefiniowanymi rolami do zarządzania uprawnieniami bazy danych, co upraszcza zarządzanie bezpieczeństwem).

W niektórych przypadkach możesz chcieć połączyć się z bazą danych Cloud SQL zarządzaną przez Data Connect bezpośrednio za pomocą wybranego klienta SQL, np. Cloud Run, Cloud Functions lub GKE.

Aby włączyć takie połączenia, musisz przyznać uprawnienia SQL, wykonując te czynności:

  • Przypisanie roli uprawnień roles/cloudsql.client użytkownikowi lub kontu usługi, które musi połączyć się z instancją, w Google Cloud konsoli lub za pomocą gcloud CLI.
  • Przyznawanie niezbędnej roli PostgreSQL za pomocą interfejsu Firebase CLI

Przypisywanie roli Cloud SQL IAM

Informacje o pracy z Cloud SQL for PostgreSQL w celu przypisania roli IAM roles/cloudsql.client znajdziesz w artykule Role i uprawnienia.

Przyznawanie ról PostgreSQL

Za pomocą interfejsu Firebase możesz przyznawać użytkownikom lub kontom usługi powiązanym z projektem predefiniowane role PostgreSQL za pomocą polecenia firebase dataconnect:sql:grant.

Aby na przykład przyznać rolę osoby piszącej, uruchom to polecenie w interfejsie wiersza poleceń:

firebase dataconnect:sql:grant --role writer

Szczegółowe informacje znajdziesz w przewodniku po interfejsie CLI.

Integrowanie istniejących baz danych Cloud SQL for PostgreSQL

Domyślny przepływ pracy związany z udostępnianiem baz danych i zarządzaniem nimi zakłada, że projekt korzysta z nowych baz danych (greenfield). Gdy wywołasz firebase deploy,Data Connect wyświetli zmiany schematu bazy danych, które mają zostać wprowadzone, i przeprowadzi migracje po ich zatwierdzeniu.

W przypadku istniejących baz danych możesz mieć własny proces zarządzania schematami i nie możesz używać narzędzi Data Connect do migracji, ale chcesz używać bazy danych w projekcie Data Connect, aby korzystać z generowania pakietu SDK na potrzeby urządzeń mobilnych i internetu, autoryzacji opartej na zapytaniach, zarządzania połączeniami klientów i innych funkcji.

Ta sekcja zawiera wskazówki dotyczące tego drugiego przypadku: integrowania istniejących baz danych z Data Connect.

.

Integrowanie istniejącej bazy danych z projektem Data Connect

Proces integracji istniejącej bazy danych obejmuje zwykle te etapy:

  1. Podczas Data Connectkonfigurowania projektu w Firebasekonsoli wybierz instancję i bazę danych.
  2. Za pomocą interfejsu Firebase uruchom polecenie firebase dataconnect:sql:setup i odmów zezwolenia usłudze Data Connect na obsługę migracji SQL.

    Aby zapobiec zmianom w schemacie bazy danych, które nie są wprowadzane przez Twoje narzędzia niestandardowe, polecenie setup przypisze odpowiednie role czytelnika i zapisującego, ale nie rolę owner. Więcej informacji o poleceniu setup i rolach PostgreSQL znajdziesz w przewodniku po interfejsie CLI.

  3. Utwórz Data Connectschemat GraphQL zgodny ze schematem bazy danych.

    Schemat GraphQL, zapytania i mutacje możesz wdrożyć tylko wtedy, gdy schemat GraphQL jest zgodny ze schematem PostgreSQL.

    Aby uprościć dopasowywanie obu schematów, udostępniamy polecenie firebase dataconnect:sql:diff, które zawiera wymagane instrukcje SQL do migracji bazy danych. Możesz użyć tej funkcji, aby iteracyjnie dopracowywać schemat GraphQL, tak aby pasował do istniejącego schematu bazy danych.

  4. W przyszłości możesz szybko iterować schemat GraphQL, zapytania i mutacje w lokalnym środowisku programistycznym. Gdy będziesz zadowolony(-a) z wyników, możesz użyć firebase dataconnect:sql:diff, aby uzyskać instrukcje migracji SQL, które możesz zastosować w PostgreSQL za pomocą niestandardowych narzędzi i procesów.

  5. Możesz też najpierw wprowadzić zmiany bezpośrednio w bazie danych PostgreSQL, a potem spróbować przenieść je z powrotem do schematu GraphQL. Zalecamy podejście oparte na GraphQL, ponieważ mogą wystąpić przypadki, w których zmiany schematu nie są obsługiwane. Jeśli wdrożysz zmiany, które spowodują, że schemat PostgreSQL stanie się niezgodny z wdrożonymi zapytaniami lub mutacjami konektora, konektory te mogą przestać działać lub działać nieprawidłowo.