Eksportuj i importuj dane

Możesz skorzystać z usługi zarządzanego eksportu i importu Cloud Firestore, aby odzyskać dane po przypadkowym usunięciu i wyeksportować dane do przetwarzania w trybie offline. Możesz eksportować wszystkie dokumenty lub tylko wybrane zbiory. Podobnie możesz zaimportować wszystkie dane z eksportu lub tylko określone zbiory. Dane wyeksportowane z jednej bazy danych Cloud Firestore można zaimportować do innej bazy danych Cloud Firestore. Możesz także załadować eksporty z Cloud Firestore do BigQuery .

Na tej stronie opisano, jak eksportować i importować dokumenty Cloud Firestore przy użyciu usługi zarządzanego eksportu i importu oraz Cloud Storage . Usługa zarządzanego eksportu i importu Cloud Firestore jest dostępna za pośrednictwem narzędzia wiersza poleceń gcloud i interfejsu API Cloud Firestore ( REST , RPC ).

Zanim zaczniesz

Zanim będzie można skorzystać z usługi zarządzanego eksportu i importu, należy wykonać następujące zadania:

  1. Włącz rozliczenia dla swojego projektu Google Cloud. Tylko projekty Google Cloud z włączonymi rozliczeniami mogą korzystać z funkcji eksportu i importu.
  2. Utwórz zasobnik Cloud Storage dla swojego projektu w lokalizacji znajdującej się w pobliżu lokalizacji bazy danych Cloud Firestore . Nie możesz używać segmentu Requester Pays do operacji eksportu i importu.
  3. Upewnij się, że Twoje konto ma niezbędne uprawnienia do Cloud Firestore i Cloud Storage. Jeśli jesteś właścicielem projektu, Twoje konto ma wymagane uprawnienia. W przeciwnym razie poniższe role przyznają niezbędne uprawnienia do operacji eksportu i importu oraz dostępu do Cloud Storage:

    • Role Cloud Firestore: Owner , Cloud Datastore Owner lub Cloud Datastore Import Export Admin
    • Role Cloud Storage: Owner lub Storage Admin

Uprawnienia agenta usługi

Operacje eksportu i importu wykorzystują agenta usługi Cloud Firestore do autoryzacji operacji Cloud Storage. Agent usługi Cloud Firestore stosuje następującą konwencję nazewnictwa:

Agent usługi Cloud Firestore
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

Aby dowiedzieć się więcej na temat agentów usług, zobacz Agenci usług .

Agent usługi Cloud Firestore wymaga dostępu do zasobnika Cloud Storage używanego w operacji eksportu lub importu. Jeśli Twój zasobnik Cloud Storage znajduje się w tym samym projekcie, co baza danych Cloud Firestore, agent usługi Cloud Firestore może domyślnie uzyskać dostęp do zasobnika .

Jeśli zasobnik Cloud Storage znajduje się w innym projekcie, musisz przyznać agentowi usługi Cloud Firestore dostęp do zasobnika Cloud Storage.

Przypisz role agentowi usługi

Możesz użyć narzędzia wiersza poleceń gsutil , aby przypisać jedną z poniższych ról. Na przykład, aby przypisać rolę administratora pamięci masowej do agenta usługi Cloud Firestore, uruchom następujące polecenie:

gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \
    gs://[BUCKET_NAME]

Zastąp PROJECT_NUMBER numerem projektu, który jest używany do nadawania nazwy agentowi usługi Cloud Firestore. Aby wyświetlić nazwę agenta serwisowego, zobacz Wyświetlanie nazwy agenta serwisowego .

Alternatywnie możesz przypisać tę rolę za pomocą konsoli GCP .

Wyświetl nazwę agenta serwisowego

Konto używane przez operacje importu i eksportu do autoryzacji żądań możesz wyświetlić na stronie Import/Eksport w konsoli Google Cloud Platform. Możesz także sprawdzić, czy Twoja baza danych korzysta z agenta usługi Cloud Firestore, czy ze starszego konta usługi App Engine.

  1. Wyświetl konto autoryzacyjne obok zadań importu/eksportu uruchamianych jako etykieta.

Agent usługi musi mieć rolę Storage Admin dla zasobnika Cloud Storage, który będzie używany podczas operacji eksportu lub importu.

Skonfiguruj gcloud dla swojego projektu

Możesz inicjować operacje importu i eksportu za pomocą konsoli Google Cloud Platform lub narzędzia wiersza poleceń gcloud . Aby użyć gcloud , skonfiguruj narzędzie wiersza poleceń i połącz się ze swoim projektem na jeden z następujących sposobów:

Eksportuj dane

Operacja eksportu kopiuje dokumenty z Twojej bazy danych do zestawu plików w zasobniku Cloud Storage. Należy pamiętać, że eksport nie jest dokładną migawką bazy danych wykonaną w momencie rozpoczęcia eksportu. Eksport może obejmować zmiany wprowadzone w trakcie wykonywania operacji.

Eksportuj wszystkie dokumenty

Konsola chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Kliknij Eksportuj .

  5. Kliknij opcję Eksportuj całą bazę danych .

  6. W obszarze Wybierz miejsce docelowe wprowadź nazwę zasobnika Cloud Storage lub użyj przycisku Przeglądaj , aby wybrać zasobnik.

  7. Kliknij Eksportuj .

Konsola powraca do strony Import/Eksport . Jeśli operacja rozpocznie się pomyślnie, strona doda wpis do strony ostatnich importów i eksportów. W przypadku niepowodzenia strona wyświetla komunikat o błędzie.

gcloud

Użyj polecenia firestore export , aby wyeksportować wszystkie dokumenty w swojej bazie danych, zastępując [BUCKET_NAME] nazwą swojego segmentu Cloud Storage. Dodaj flagę --async , aby zapobiec oczekiwaniu narzędzia gcloud na zakończenie operacji.

  gcloud firestore export gs://[BUCKET_NAME] \
  --database=[DATABASE]

Zastąp następujące elementy:

  • BUCKET_NAME : uporządkuj eksport, dodając przedrostek pliku po nazwie zasobnika, na przykład BUCKET_NAME/my-exports-folder/export-name . Jeśli nie podasz prefiksu pliku, usługa zarządzanego eksportu utworzy go na podstawie bieżącej sygnatury czasowej.

  • DATABASE : nazwa bazy danych, z której chcesz wyeksportować dokumenty. W przypadku domyślnej bazy danych użyj --database='(default)' .

Po rozpoczęciu operacji eksportu zamknięcie terminala nie anuluje operacji, zobacz anulowanie operacji .

Eksportuj określone kolekcje

Konsola chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Kliknij Eksportuj .

  5. Kliknij opcję Eksportuj jedną lub więcej grup kolekcji . Użyj menu rozwijanego, aby wybrać jedną lub więcej grup kolekcji.

  6. W obszarze Wybierz miejsce docelowe wprowadź nazwę zasobnika Cloud Storage lub użyj przycisku Przeglądaj , aby wybrać zasobnik.

  7. Kliknij Eksportuj .

Konsola powraca do strony Import/Eksport . Jeśli operacja rozpocznie się pomyślnie, strona doda wpis do strony ostatnich importów i eksportów. W przypadku niepowodzenia strona wyświetla komunikat o błędzie.

gcloud

Aby wyeksportować określone grupy kolekcji, użyj flagi --collection-ids . Operacja eksportuje tylko grupy kolekcji o podanych identyfikatorach kolekcji. Grupa kolekcji zawiera wszystkie kolekcje i podkolekcje (w dowolnej ścieżce) o określonym identyfikatorze kolekcji.

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
--database=[DATABASE]

Na przykład możesz zaprojektować kolekcję restaurants w bazie danych foo tak, aby zawierała wiele podkolekcji, takich jak ratings , reviews lub outlets . Aby wyeksportować restaurants i reviews z określonej kolekcji, polecenie wygląda następująco:

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=restaurants,reviews \
--database='cymbal'

Eksportuj ze znacznika czasu PITR

Możesz wyeksportować swoją bazę danych do Cloud Storage z danych PITR za pomocą polecenia gcloud firestore export . Możesz wyeksportować dane PITR, gdzie sygnatura czasowa to pełny minutowy sygnatura czasowa z ostatnich siedmiu dni, ale nie wcześniejsza niż earliestVersionTime . Jeśli w określonym znaczniku czasu dane już nie istnieją, operacja eksportu zakończy się niepowodzeniem.

Operacja eksportu PITR obsługuje wszystkie filtry, łącznie z eksportem wszystkich dokumentów i eksportem określonych kolekcji.

  1. Wyeksportuj bazę danych, określając parametr snapshot-time jako żądany znacznik czasu odzyskiwania.

    gcloud

    Uruchom następujące polecenie, aby wyeksportować bazę danych do swojego segmentu.

    gcloud firestore export gs://[BUCKET_NAME_PATH] \
        --snapshot-time=[PITR_TIMESTAMP] \
        --collection-ids=[COLLECTION_IDS] \
        --namespace-ids=[NAMESPACE_IDS]
    

    Gdzie,

    • PITR_TIMESTAMP - znacznik czasu PITR z dokładnością do minuty, na przykład 2023-05-26T10:20:00.00Z .

    Przed eksportowaniem danych PITR należy zwrócić uwagę na następujące kwestie:

    • Określ znacznik czasu w formacie RFC 3339 . Na przykład 2020-09-01T23:59:30.234233Z .
    • Upewnij się, że podany znacznik czasu to pełny minutowy znacznik czasu z ostatnich siedmiu dni, ale nie wcześniejszy niż earliestVersionTime . Jeśli w określonym znaczniku czasu dane już nie istnieją, generowany jest błąd.
    • Za nieudany eksport PITR nie ponosisz żadnych opłat.

Zaimportować dane

Po wyeksportowaniu plików w Cloud Storage możesz zaimportować dokumenty zawarte w tych plikach z powrotem do swojego projektu lub do innego projektu. Należy zwrócić uwagę na następujące uwagi dotyczące operacji importowania:

  • Podczas importowania danych wymagane indeksy są aktualizowane przy użyciu bieżących definicji indeksów z bazy danych. Eksport nie zawiera definicji indeksów.

  • Importy nie przypisują nowych identyfikatorów dokumentów. Importy korzystają z identyfikatorów zarejestrowanych w momencie eksportu. Podczas importowania dokumentu jego identyfikator jest rezerwowany, aby zapobiec kolizjom identyfikatorów. Jeżeli dokument o tym samym identyfikatorze już istnieje, import zastępuje istniejący dokument.

  • Jeśli import nie ma wpływu na dokument w Twojej bazie danych, pozostanie on w Twojej bazie danych po imporcie.

  • Operacje importu nie uruchamiają Cloud Functions. Słuchacze migawek otrzymują aktualizacje związane z operacjami importowania.

  • Nazwa pliku .overall_export_metadata musi odpowiadać nazwie jego folderu nadrzędnego:

    gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/ PARENT_FOLDER_NAME / PARENT_FOLDER_NAME .overall_export_metadata

    Jeśli przenosisz lub kopiujesz pliki wyjściowe eksportu, zachowaj takie same nazwy plików PARENT_FOLDER_NAME i .overall_export_metadata .

Importuj wszystkie dokumenty z eksportu

Konsola chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Kliknij opcję Importuj .

  5. W polu Nazwa pliku wprowadź nazwę pliku .overall_export_metadata z zakończonej operacji eksportu. Aby wybrać plik, możesz użyć przycisku Przeglądaj .

  6. Kliknij opcję Importuj .

Konsola powraca do strony Import/Eksport . Jeśli operacja rozpocznie się pomyślnie, strona doda wpis do strony ostatnich importów i eksportów. W przypadku niepowodzenia strona wyświetla komunikat o błędzie.

gcloud

Użyj polecenia firestore import aby zaimportować dokumenty z poprzedniej operacji eksportu.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]

Zastąp następujące elementy:

  • BUCKET_NAME/EXPORT_PREFIX : lokalizacja plików eksportu.

  • DATABASE : nazwa bazy danych. W przypadku domyślnej bazy danych użyj --database='(default)' .

Na przykład:

gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'

Możesz potwierdzić lokalizację plików eksportu w przeglądarce Cloud Storage w konsoli Google Cloud Platform:

Otwórz przeglądarkę Cloud Storage

Po rozpoczęciu operacji importu zamknięcie terminala nie anuluje operacji, zobacz anulowanie operacji .

Importuj określone kolekcje

Konsola chmurowa Google

W konsoli nie można wybierać konkretnych kolekcji. Zamiast tego użyj gcloud .

gcloud

Aby zaimportować określone grupy kolekcji z zestawu plików eksportu, użyj flagi --collection-ids . Operacja importuje tylko grupy kolekcji o podanych identyfikatorach kolekcji. Grupa kolekcji zawiera wszystkie kolekcje i podkolekcje (w dowolnej ścieżce) o określonym identyfikatorze kolekcji. Określ nazwę bazy danych za pomocą flagi --database . W przypadku domyślnej bazy danych użyj --database='(default)' .

Tylko eksport określonych grup kolekcji obsługuje import określonych grup kolekcji. Nie można importować określonych zbiorów z eksportu wszystkich dokumentów.

  gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \
  --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
  --database=[DATABASE]

Zaimportuj eksport PITR

Aby zaimportować wyeksportowaną bazę danych, wykonaj czynności opisane w artykule Importuj wszystkie dokumenty . Jeżeli w Twojej bazie danych istnieje już jakiś dokument, zostanie on nadpisany.

Zarządzanie operacjami eksportowymi i importowymi

Po rozpoczęciu operacji eksportu lub importu Cloud Firestore przypisuje operacji unikalną nazwę. Możesz użyć nazwy operacji, aby usunąć, anulować lub sprawdzić status operacji.

Nazwy operacji są poprzedzone przedrostkiem projects/[PROJECT_ID]/databases/(default)/operations/ , na przykład:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Można jednak pominąć przedrostek podczas określania nazwy operacji dla poleceń describe , cancel i delete .

Lista wszystkich operacji eksportu i importu

Konsola chmurowa Google

Listę ostatnich operacji eksportu i importu możesz wyświetlić na stronie Import/Eksport w konsoli Google Cloud Platform.

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

gcloud

Użyj polecenia operations list , aby wyświetlić wszystkie uruchomione i ostatnio zakończone operacje eksportu i importu:

gcloud firestore operations list

Sprawdź stan działania

Konsola chmurowa Google

Stan ostatniej operacji eksportu lub importu możesz sprawdzić na stronie Import/Eksport w konsoli Google Cloud Platform.

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

gcloud

Użyj polecenia operations describe , aby wyświetlić status operacji eksportu lub importu.

gcloud firestore operations describe [OPERATION_NAME]

Oszacuj czas realizacji

Żądanie podania statusu długotrwałej operacji zwraca metryki workEstimated i workCompleted . Każda z tych metryk jest zwracana zarówno w liczbie bajtów, jak i liczbie jednostek:

  • workEstimated pokazuje szacowaną całkowitą liczbę bajtów i dokumentów, które operacja będzie przetwarzać. Cloud Firestore może pominąć tę metrykę, jeśli nie może dokonać oszacowania.

  • workCompleted pokazuje liczbę przetworzonych do tej pory bajtów i dokumentów. Po zakończeniu operacji wartość pokazuje całkowitą liczbę faktycznie przetworzonych bajtów i dokumentów, która może być większa niż wartość workEstimated .

Podziel workCompleted przez workEstimated w celu przybliżonego oszacowania postępu. Szacunek ten może być niedokładny, ponieważ zależy od opóźnionego gromadzenia statystyk.

Anuluj operację

Konsola chmurowa Google

Możesz anulować trwającą operację eksportu lub importu na stronie Import/Eksport w konsoli Google Cloud Platform.

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Import/Eksport .

W tabeli Ostatnie importy i eksporty aktualnie wykonywane operacje zawierają przycisk Anuluj w kolumnie Zakończono . Kliknij przycisk Anuluj , aby zatrzymać operację. Przycisk zmienia się w komunikat Anulowanie , a następnie w komunikat Anulowano , gdy operacja zostanie całkowicie zatrzymana.

gcloud

Użyj polecenia operations cancel , aby zatrzymać trwającą operację:

gcloud firestore operations cancel [OPERATION_NAME]

Anulowanie uruchomionej operacji nie powoduje jej cofnięcia. Anulowana operacja eksportu pozostawi dokumenty już wyeksportowane w Cloud Storage, a anulowana operacja importu pozostawi aktualizacje wprowadzone już w Twojej bazie danych. Nie można zaimportować częściowo zakończonego eksportu.

Usuń operację

Użyj polecenia gcloud firestore operations delete , aby usunąć operację z listy ostatnich operacji. To polecenie nie usunie plików eksportu z Cloud Storage.

gcloud firestore operations delete [OPERATION_NAME]

Rozliczenia i ceny operacji eksportowych i importowych

Zanim zaczniesz korzystać z usługi zarządzanego eksportu i importu, musisz włączyć rozliczenia dla swojego projektu Google Cloud.

Za operacje eksportu i importu pobierane są opłaty za odczyt i zapis dokumentów według stawek podanych w cenniku Cloud Firestore . Operacje eksportu wiążą się z jedną operacją odczytu na każdy wyeksportowany dokument. Operacje importu wiążą się z jedną operacją zapisu na zaimportowany dokument.

Pliki wyjściowe przechowywane w Cloud Storage wliczają się do kosztów przechowywania danych w Cloud Storage .

Koszty operacji eksportowych i importowych nie wliczają się do Twojego limitu wydatków . Operacje eksportu lub importu nie spowodują alertów dotyczących budżetu Google Cloud do czasu ich zakończenia. Podobnie odczyty i zapisy wykonane podczas operacji eksportu lub importu są dodawane do dziennego limitu po zakończeniu operacji. Operacje eksportu i importu nie mają wpływu na użycie widoczne w sekcji użytkowania konsoli.

Przeglądanie kosztów eksportu i importu

Operacje eksportu i importu stosują etykietę goog-firestoremanaged:exportimport do operacji rozliczanych. Na stronie raportów rozliczeń Cloud możesz użyć tej etykiety, aby wyświetlić koszty związane z operacjami importu i eksportu:

Uzyskaj dostęp do etykiety zarządzanej przez goog-firestore z menu filtrów.

Eksportuj do BigQuery

Możesz załadować dane z eksportu Cloud Firestore do BigQuery, ale tylko wtedy, gdy określisz filtr collection-ids . Zobacz Ładowanie danych z eksportów Cloud Firestore .

Limit kolumn BigQuery

BigQuery nakłada limit 10 000 kolumn na tabelę. Operacje eksportu Cloud Firestore generują schemat tabeli BigQuery dla każdej grupy kolekcji. W tym schemacie każda unikalna nazwa pola w grupie kolekcji staje się kolumną schematu.

Jeśli schemat BigQuery grupy kolekcji przekracza 10 000 kolumn, operacja eksportu Cloud Firestore próbuje zmieścić się w limicie kolumn, traktując pola mapy jako bajty. Jeśli w wyniku tej konwersji liczba kolumn będzie mniejsza niż 10 000, możesz załadować dane do BigQuery, ale nie możesz wysyłać zapytań do podpól w polach mapy. Jeśli liczba kolumn nadal przekracza 10 000, operacja eksportu nie generuje schematu BigQuery dla grupy kolekcji i nie można załadować jej danych do BigQuery.

Eksportuj pliki formatu i metadanych

Dane wyjściowe zarządzanego eksportu korzystają z formatu dziennika LevelDB .

Pliki metadanych

Operacja eksportu tworzy plik metadanych dla każdej określonej grupy kolekcji. Pliki metadanych mają zazwyczaj nazwę ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata .

Pliki metadanych są buforami protokołów i można je dekodować za pomocą kompilatora protokołu protoc . Można na przykład zdekodować plik metadanych, aby określić grupy kolekcji zawarte w plikach eksportu:

protoc --decode_raw < export0.export_metadata

Migracja agenta usługi

Cloud Firestore używa agenta usługi Cloud Firestore do autoryzacji operacji importu i eksportu zamiast korzystać z konta usługi App Engine. Agent usługi i konto usługi korzystają z następujących konwencji nazewnictwa:

Agent usługi Cloud Firestore
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

Cloud Firestore korzystał wcześniej z domyślnego konta usługi App Engine zamiast agenta usługi Cloud Firestore. Jeśli Twoja baza danych nadal korzysta z konta usługi App Engine do importowania lub eksportowania danych, zalecamy wykonanie instrukcji podanych w tej sekcji, aby przeprowadzić migrację do korzystania z agenta usługi Cloud Firestore.

Konto usługi App Engine
PROJECT_ID @appspot.gserviceaccount.com

Preferowany jest agent usługi Cloud Firestore, ponieważ jest specyficzny dla Cloud Firestore. Konto usługi App Engine jest współdzielone przez więcej niż jedną usługę.

Wyświetl konto autoryzacyjne

Możesz sprawdzić, którego konta używają Twoje operacje importu i eksportu do autoryzacji żądań na stronie Import/Eksport w konsoli Google Cloud Platform. Możesz także sprawdzić, czy Twoja baza danych korzysta już z agenta usługi Cloud Firestore.

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.
  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Wyświetl konto autoryzacyjne obok zadań importu/eksportu uruchamianych jako etykieta.

Jeśli Twój projekt nie korzysta z agenta usługi Cloud Firestore, możesz przeprowadzić migrację do agenta usługi Cloud Firestore, korzystając z jednej z następujących technik:

Pierwsza z tych technik jest preferowana, ponieważ lokalizuje zakres efektu w pojedynczym projekcie Cloud Firestore. Druga technika nie jest preferowana, ponieważ nie powoduje migracji istniejących uprawnień zasobnika Cloud Storage. Zapewnia jednak zgodność z wymogami bezpieczeństwa na poziomie organizacji.

Przeprowadź migrację, sprawdzając i aktualizując uprawnienia zasobnika Cloud Storage

Proces migracji składa się z dwóch etapów:

  1. Zaktualizuj uprawnienia zasobnika Cloud Storage. Aby uzyskać szczegółowe informacje, zobacz następującą sekcję.
  2. Potwierdź migrację do agenta usługi Cloud Firestore.

Uprawnienia zasobnika agenta usługi

W przypadku jakichkolwiek operacji eksportu lub importu, które korzystają z zasobnika Cloud Storage w innym projekcie, musisz przyznać agentowi usługi Cloud Firestore uprawnienia do tego zasobnika. Na przykład operacje przenoszące dane do innego projektu muszą uzyskać dostęp do zasobnika w tym innym projekcie. W przeciwnym razie te operacje nie powiodą się po migracji do agenta usługi Cloud Firestore.

Przepływy pracy importu i eksportu pozostające w tym samym projekcie nie wymagają zmian w uprawnieniach. Agent usługi Cloud Firestore domyślnie może uzyskiwać dostęp do zasobników w tym samym projekcie.

Zaktualizuj uprawnienia do zasobników Cloud Storage z innych projektów, aby zapewnić dostęp agentowi service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com . Przyznaj agentowi usługi rolę Firestore Service Agent .

Rola Firestore Service Agent przyznaje uprawnienia do odczytu i zapisu w zasobniku Cloud Storage. Jeśli chcesz przyznać uprawnienia tylko do odczytu lub tylko do zapisu, użyj roli niestandardowej .

Proces migracji opisany w poniższej sekcji pomaga zidentyfikować zasobniki Cloud Storage, które mogą wymagać aktualizacji uprawnień.

Przeprowadź migrację projektu do agenta usługi Firestore

Wykonaj poniższe kroki, aby przeprowadzić migrację z konta usługi App Engine do agenta usługi Cloud Firestore. Po zakończeniu migracji nie można cofnąć.

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.
  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Jeśli Twój projekt nie został jeszcze zmigrowany do agenta usługi Cloud Firestore, zobaczysz baner opisujący migrację i przycisk Sprawdź stan zasobnika . Następny krok pomoże Ci zidentyfikować i naprawić potencjalne błędy uprawnień.

    Kliknij opcję Sprawdź stan zasobnika .

    Pojawi się menu z opcją dokończenia migracji i listą zasobników Cloud Storage. Zakończenie ładowania listy może zająć kilka minut.

    Ta lista zawiera zasobniki, które były ostatnio używane w operacjach importu i eksportu, ale obecnie nie dają uprawnień do odczytu i zapisu agentowi usługi Cloud Firestore.

  5. Zanotuj główną nazwę agenta usługi Cloud Firestore swojego projektu. Nazwa agenta serwisowego pojawi się pod agentem serwisowym i umożliwi dostęp do etykiety.
  6. W przypadku dowolnego segmentu na liście, którego będziesz używać w przyszłych operacjach importu lub eksportu, wykonaj następujące kroki:

    1. W wierszu tabeli tego zasobnika kliknij Napraw . Spowoduje to otwarcie strony uprawnień tego zasobnika w nowej karcie.

    2. Kliknij Dodaj .
    3. W polu Nowe podmioty wpisz nazwę agenta usługi Cloud Firestore.
    4. W polu Wybierz rolę wybierz Agenci usługi > Agent usługi Firestore .
    5. Kliknij Zapisz .
    6. Wróć do karty ze stroną Import/eksport Cloud Firestore.
    7. Powtórz te kroki dla innych zasobników na liście. Pamiętaj, aby wyświetlić wszystkie strony listy.
  7. Kliknij opcję Migruj do agenta usługi Firestore . Jeśli nadal masz zasobniki, w których sprawdzenie uprawnień nie powiodło się, musisz potwierdzić migrację, klikając Migruj .

    Alert poinformuje Cię o zakończeniu migracji. Migracji nie można cofnąć.

Wyświetl stan migracji

Aby zweryfikować status migracji projektu:

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.
  3. W menu nawigacyjnym kliknij Import/Eksport .

  4. Poszukaj podmiotu zabezpieczeń obok zadań importu/eksportu uruchamianych jako etykieta.

    Jeśli podmiotem zabezpieczeń jest service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com , oznacza to, że Twój projekt został już przeniesiony do agenta usługi Cloud Firestore. Migracji nie można cofnąć.

    Jeśli projekt nie został przeniesiony, u góry strony pojawi się baner z przyciskiem Sprawdź stan koszyka . Aby dokończyć migrację, zobacz Migracja do agenta usługi Firestore .

Dodaj ograniczenie zasad obowiązujące w całej organizacji

  • Ustaw następujące ograniczenie w zasadach swojej organizacji:

    Wymagaj agenta usługi Firestore do importu/eksportu ( firestore.requireP4SAforImportExport ).

    To ograniczenie wymaga operacji importu i eksportu, aby agent usługi Cloud Firestore mógł autoryzować żądania. Aby ustawić to ograniczenie, zobacz Tworzenie zasad organizacji i zarządzanie nimi .

Zastosowanie tego ograniczenia zasad organizacji nie powoduje automatycznego przyznania odpowiednich uprawnień zasobnika Cloud Storage agentowi usługi Cloud Firestore.

Jeśli ograniczenie powoduje błędy uprawnień w przypadku jakichkolwiek przepływów pracy związanych z importem lub eksportem, możesz je wyłączyć, aby wrócić do korzystania z domyślnego konta usługi. Po sprawdzeniu i zaktualizowaniu uprawnień zasobnika Cloud Storage możesz ponownie włączyć ograniczenie.