Zarządzanie usługami i bazami danych SQL Connect

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

  • co najmniej 1 instancji usługi SQL Connect,
  • co najmniej 1 instancji Cloud SQL for PostgreSQL.

Z tego przewodnika dowiesz się, jak skonfigurować instancje usługi SQL Connect i nimi zarządzać. Przedstawiamy też sposób zarządzania powiązanymi Cloud SQL instancjami.

Konfigurowanie regionów na potrzeby Firebase SQL Connect

Projekty, które korzystają z SQL Connect, wymagają ustawienia lokalizacji.

Gdy tworzysz nową instancję usługi SQL Connect, musisz wybrać lokalizację usługi.

Dostępne lokalizacje

SQL Connect usługi można tworzyć w tych regionach.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (niedostępne w przypadku wersji próbnych w ramach abonamentu Spark)
  • asia-southeast2 (niedostępne w przypadku wersji próbnych w ramach abonamentu 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

Zarządzanie instancjami usługi SQL Connect

Tworzenie usług

Aby utworzyć nową usługę, użyj konsoli Firebase lub uruchom lokalną inicjację projektu za pomocą interfejsu wiersza poleceń Firebase. Te przepływy pracy tworzą nową SQL Connect usługę.

Te przepływy prowadzą też przez:

  • udostępnianie nowej instancji Cloud SQL (bezpłatny poziom)
  • łączenie dotychczasowej instancji Cloud SQL z SQL Connect (abonament Blaze).

Zarządzanie użytkownikami

SQL Connect udostępnia narzędzia do zarządzania dostępem użytkowników, które są zgodne z zasadą najmniejszych uprawnień (przyznaj każdemu użytkownikowi lub kontu usługi minimalne uprawnienia niezbędne do obsługi wymaganej funkcjonalności) oraz z 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ć SQL Connect instancje w Twoim projekcie, użyj konsoli Firebase, aby wybrać odpowiednie predefiniowane role użytkowników.

Te role przyznają uprawnienia za pomocą Identity and Access Management (IAM). Rola to zbiór uprawnień. Gdy przypiszesz rolę członkowi projektu, przyznasz mu wszystkie uprawnienia zawarte w tej roli. Więcej informacji znajdziesz w tych materiałach:

Wybieranie ról umożliwiających określone przepływy pracy

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

Polecenie interfejsu wiersza poleceń, inny przepływ pracy Wymagane role
firebase init dataconnect
  • Brak uprawnień (gdy nie łączysz instancji Cloud SQL)
  • roles/cloudsql.admin (gdy tworzysz instancję 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 w docelowej instancji Cloud SQL
firebase dataconnect:sql:grant
  • roles/cloudsql.admin w docelowej instancji Cloud SQL

Monitorowanie skuteczności usługi SQL Connect

Analizowanie wydajności usługi

Na Twoje wrażenia może wpływać skuteczność zarówno usługi SQL Connect, jak i Cloud SQL dla PostgreSQL.

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

    • Limit 24 tys. żądań GraphQL na minutę na projekt i region.

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

Monitorowanie skuteczności, wykorzystania i płatności

W konsoli Firebase możesz monitorować żądania, błędy i częstotliwość operacji zarówno globalnie, jak i w przypadku poszczególnych operacji.

Zarządzanie instancjami Cloud SQL

Ograniczenia bezpłatnej wersji próbnej

Te funkcje Cloud SQL for PostgreSQL nie są obsługiwane w bezpłatnych wersjach próbnych w ramach abonamentów Spark i Blaze:

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

Ograniczenia tymczasowych baz danych na potrzeby wdrażania

Gdy dodasz SQL Connect do projektu Firebase, możesz od razu zacząć tworzyć prototyp modelu danych i wczytywać dane, ponieważ będą one przechowywane w tymczasowej bazie danych. Pamiętaj, że udostępnienie stałej instancji Cloud SQL for PostgreSQL potrwa od 5 do 20 minut. Wszystkie początkowe dane, które wczytasz, zostaną automatycznie przeniesione do stałej bazy danych PostgreSQL po jej udostępnieniu.

Ta tymczasowa baza danych doskonale nadaje się do analizowania schematu i operacji CRUD.

Jeśli nie chcesz korzystać z tymczasowej bazy danych, poczekaj na udostępnienie instancji Cloud SQL.

Tymczasowa baza danych nie jest bazą danych PostgreSQL i nie udostępnia wszystkich funkcji PostgreSQL.

Najważniejsze ograniczenia:

  • Rozmiar bazy danych musi być mniejszy niż 1 MB.
  • Liczba wierszy w tabeli musi być mniejsza niż 1000.
  • Mniej niż 1 zapytanie na sekundę.
  • Brak obsługi wyszukiwania pełnotekstowego.
  • Brak obsługi generowania osadzania wektorowego.
  • Brak obsługi funkcji SQL, takich jak @view, @col(dataType) czy natywny SQL.

Administrowanie instancjami Cloud SQL

Ogólnie rzecz biorąc, instancjami Cloud SQL możesz zarządzać za pomocą Google Cloud konsoli aby wykonywać te przepływy pracy.

  • Zatrzymywanie i ponowne uruchamianie instancji Cloud SQL

  • Tworzenie i usuwanie Cloud SQL baz danych (w instancjach)

  • Uruchamianie instancji bazy danych PostgreSQL z flagami i korzystanie z a różnych rozszerzeń

  • Monitorowanie skuteczności za pomocą Cloud SQL funkcji obserwacji w Google Cloud konsoli

  • Zarządzanie dostępem i bezpieczeństwem Cloud SQL za pomocą funkcji takich jak IAM, menedżer kluczy tajnych, szyfrowanie danych i serwer proxy uwierzytelniania

  • Dodawanie, usuwanie i administrowanie użytkownikami Cloud SQL.

Więcej informacji o tych i innych przepływach pracy znajdziesz w Cloud SQL dla PostgreSQL dokumentacji.

Przyznawanie ról użytkowników PostgreSQL

SQL Connect udostępnia narzędzia do zarządzania dostępem użytkowników, które są zgodne z zasadą najmniejszych uprawnień (przyznaj każdemu użytkownikowi lub kontu usługi minimalne uprawnienia niezbędne do obsługi wymaganej funkcjonalności) oraz z koncepcją kontroli dostępu opartej na rolach (RBAC) (z predefiniowanymi rolami do zarządzania uprawnieniami do bazy danych, co upraszcza zarządzanie bezpieczeństwem).

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

Aby umożliwić takie połączenia, musisz przyznać uprawnienia SQL, wykonując te czynności:

  • Przypisanie roli uprawnień roles/cloudsql.client do użytkownika lub konta usługi które musi połączyć się z instancją, w konsoli Google Cloud lub za pomocą gcloud CLI
  • Przyznanie wymaganej roli PostgreSQL za pomocą interfejsu wiersza poleceń Firebase.

Przypisywanie roli uprawnień Cloud SQL

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

Przyznawanie ról PostgreSQL

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

Aby na przykład przyznać rolę autora, uruchom to polecenie za pomocą Firebase interfejsu wiersza poleceń:

firebase dataconnect:sql:grant --role writer

Szczegółowe informacje znajdziesz w Firebase przewodniku po interfejsie wiersza poleceń.

Integracja dotychczasowych Cloud SQL baz danych for PostgreSQL

Domyślny przepływ udostępniania i zarządzania bazami danych zakłada, że projekt korzysta z nowych baz danych (greenfield). Gdy wywołasz polecenie firebase deploy, SQL Connect wyświetli zmiany schematu bazy danych, które mają zostać wprowadzone, i przeprowadzi migracje po Twojej akceptacji.

W przypadku dotychczasowych baz danych (brownfield) możesz mieć własny przepływ pracy do zarządzania schematami i nie możesz używać SQL Connect narzędzi do migracji, ale chcesz używać bazy danych w projekcie SQL 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.

W tej sekcji znajdziesz wskazówki dotyczące tego drugiego przypadku, czyli integracji dotychczasowych baz danych z SQL Connect.

Integracja dotychczasowej bazy danych z projektem SQL Connect

Przepływ pracy związany z integracją dotychczasowej bazy danych obejmuje te kroki:

  1. Podczas konfigurowania projektu SQL Connect w konsoli Firebase, wybierz instancję i bazę danych.

  2. Za pomocą interfejsu wiersza poleceń Firebase uruchom polecenie firebase dataconnect:sql:setup i odrzuć opcję umożliwiającą SQL Connect obsługę migracji SQL.

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

  3. Napisz schemat SQL Connect GraphQL, który pasuje do schematu 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 go używać do iteracyjnego dopracowywania schematu GraphQL, aby pasował do dotychczasowego 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), możesz użyć polecenia firebase dataconnect:sql:diff, aby uzyskać instrukcje migracji SQL, które możesz zastosować do PostgreSQL za pomocą niestandardowych narzędzi i przepływó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 będzie niezgodny z wdrożonymi zapytaniami lub mutacjami oprogramowania sprzęgającego, te oprogramowania sprzęgające mogą przestać działać lub działać nieprawidłowo.