Twoje projekty SQL Connect składają się z 2 głównych elementów infrastruktury:
- co najmniej 1 instancja usługi SQL Connect,
- co najmniej 1 instancja Cloud SQL PostgreSQL;
Z tego przewodnika dowiesz się, jak konfigurować instancje usług i nimi zarządzać, a także jak zarządzać powiązanymi z nimi instancjami.SQL ConnectCloud SQL
Konfigurowanie regionów dla Firebase SQL Connect
Projekty korzystające z SQL Connect wymagają ustawienia lokalizacji.
Gdy tworzysz nową SQL Connect instancję usługi, wyświetla się prośba o wybranie lokalizacji usługi.
Dostępne lokalizacje
Usługi SQL Connect można tworzyć w tych regionach.
- asia-east1
- asia-east2
- asia-northeast1
- asia-northeast2
- asia-northeast3
- asia-south1
- asia-southeast1 (niedostępny w przypadku okresów próbnych abonamentu Spark)
- asia-southeast2 (niedostępny w przypadku okresów próbnych 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 inicjowanie projektu lokalnego za pomocą interfejsu Firebase CLI. Te procesy tworzą nową usługę.SQL Connect
Te procesy przeprowadzą Cię też przez:
- Udostępnianie nowej instancji Cloud SQL (bezpłatny poziom)
- Łączenie istniejącej 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ą jak najmniejszych uprawnień (przyznawanie każdemu użytkownikowi lub kontu usługi minimalnych uprawnień niezbędnych do obsługi wymaganej funkcjonalności) 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ć SQL 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ń. Przypisując rolę członkowi projektu, przyznajesz mu wszystkie uprawnienia zawarte w tej roli. Więcej informacji znajdziesz w tych artykułach:
- Omówienie ról uprawnień Firebase
- Szczegółowa lista SQL Connectról
Wybieranie ról w celu włączenia określonych przepływów pracy
Role uprawnień umożliwiają przepływy pracy interfejsu wiersza poleceń Firebase, które pozwalają zarządzać projektami SQL Connect.
| Polecenie interfejsu wiersza poleceń, inny przepływ pracy | Wymagane role |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
Monitorowanie wydajności usługi SQL Connect
Analizowanie wydajności usługi
Wydajność zarówno usługi SQL Connect, jak i usługi Cloud SQL dla PostgreSQL może mieć wpływ na Twoje wrażenia.
- W przypadku usługi Cloud SQL for PostgreSQL zapoznaj się z ogólnymi wskazówkami w dokumentacji dotyczącej limitów i kwot.
W przypadku SQL Connect usługi 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 wydajności usługi, wykorzystania i płatności
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 bezpłatnych okresach próbnych Spark i Blaze nie są obsługiwane te Cloud SQL funkcje PostgreSQL:
- 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
- Enterprise Plus
- Automatyczne kopie zapasowe
- Automatyczne zwiększanie miejsca na dane.
Ograniczenia tymczasowych baz danych wprowadzających
Gdy dodasz SQL Connect do projektu w 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 utworzenie trwałej instancji Cloud SQL for PostgreSQL zajmie od 5 do 20 minut. Wszystkie wczytane dane początkowe zostaną automatycznie przeniesione do stałej bazy danych PostgreSQL po jej udostępnieniu.
Ta tymczasowa baza danych doskonale nadaje się do eksplorowania schematu i operacji CRUD.
Jeśli nie chcesz używać tymczasowej bazy danych, poczekaj, aż instancja zostanie udostępniona.Cloud SQL
Baza danych tymczasowych 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 wektorów dystrybucyjnych
- Brak obsługi funkcji SQL, takich jak
@view,@col(dataType)czy natywny SQL.
Administrowanie instancjami Cloud SQL
Ogólnie instancjami Cloud SQL możesz zarządzać za pomocą Google Cloudkonsoli, wykonując 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 skuteczności za pomocą Cloud SQLfunkcji obserwacji w Google Cloudkonsoli
Zarządzaj Cloud SQL dostępem i zabezpieczeniami za pomocą funkcji takich jak IAM, menedżer wpisów tajnych, szyfrowanie danych i serwer proxy uwierzytelniania.
Dodawanie, usuwanie i zarządzanie Cloud SQL użytkownikami.
Więcej informacji o tych i innych przepływach pracy znajdziesz w Cloud SQL dokumentacji PostgreSQL.
Przyznawanie ról użytkownikom PostgreSQL
SQL Connect udostępnia narzędzia do zarządzania dostępem użytkowników, które są zgodne z zasadą jak najmniejszych uprawnień (przyznawanie każdemu użytkownikowi lub kontu usługi minimalnych uprawnień niezbędnych do obsługi wymaganej funkcjonalności) 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).
W niektórych przypadkach możesz chcieć połączyć się bezpośrednio z bazą danych zarządzaną przez SQL ConnectCloud SQL 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:
- Przypisz rolę uprawnień
roles/cloudsql.clientdo użytkownika lub konta 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
Przypisz rolę uprawnień Cloud SQL
Informacje o pracy z Cloud SQL w przypadku PostgreSQL w celu przypisania roli IAM roles/cloudsql.client znajdziesz w sekcji 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 zapisującej, uruchom to polecenie za pomocą interfejsu wiersza poleceń Firebase:
firebase dataconnect:sql:grant --role writerSzczegółowe informacje znajdziesz w Firebaseprzewodniku po interfejsie CLI.
Integracja istniejących baz danych Cloud SQL for PostgreSQL
Domyślny proces udostępniania baz danych i zarządzania nimi zakłada, że projekt korzysta z nowych baz danych (greenfield). Gdy wywołasz firebase deploy,SQL Connect wyświetli zmiany schematu bazy danych, które mają zostać wprowadzone, i przeprowadzi migracje po Twojej akceptacji.
W przypadku istniejących baz danych (brownfield) możesz mieć własny przepływ pracy do zarządzania schematami i nie możesz używać narzędzi SQL Connect 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.
Ta sekcja zawiera wskazówki dotyczące tego drugiego przypadku, czyli integrowania istniejących baz danych z SQL Connect.
Integrowanie istniejącej bazy danych z projektem SQL Connect
Proces integrowania istniejącej bazy danych zwykle obejmuje te kroki:
Podczas SQL Connectkonfigurowania projektu w Firebasekonsoli wybierz instancję i bazę danych.
W interfejsie wiersza poleceń Firebase uruchom polecenie
firebase dataconnect:sql:setupi odrzuć opcję zezwolenia SQL Connect na obsługę migracji SQL.Aby zapobiec zmianom w schemacie bazy danych, które nie są wprowadzane przez Twoje narzędzia niestandardowe, polecenie
setupprzypisze odpowiednie role czytelnika i zapisującego, ale nie rolęowner. Więcej informacji o poleceniusetupi rolach PostgreSQL znajdziesz w Firebase przewodniku po interfejsie CLI.Utwórz SQL 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.W przyszłości możesz szybko iterować schemat GraphQL, zapytania i mutacje w lokalnym środowisku programistycznym. Gdy będziesz zadowolony 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.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 oprogramowania sprzęgającego, może ono przestać działać lub działać nieprawidłowo.