Eksportowanie i importowanie danych

Możesz korzystać z Cloud Firestore usługi zarządzanego eksportu i importu, aby przywracać przypadkowo usunięte dane i eksportować dane do przetwarzania w trybie offline. Możesz wyeksportować wszystkie dokumenty lub tylko określone grupy kolekcji. Podobnie możesz zaimportować wszystkie dane z eksportu lub tylko określone grupy kolekcji. Dane wyeksportowane z jednej bazy danychCloud Firestore można zaimportować do innej bazy danychCloud Firestore. Możesz też wczytaćCloud Firestore wyeksportowane dane do BigQuery.

Na tej stronie dowiesz się, jak eksportować i importować dokumenty Cloud Firestore za pomocą zarządzanej usługi eksportu i importu oraz Cloud Storage. Usługa eksportowania i importowania zarządzana przez Cloud Firestore jest dostępna za pomocą narzędzia wiersza poleceń gcloud i interfejsu API Cloud Firestore (REST, RPC).

Zanim zaczniesz

Zanim zaczniesz korzystać z usługi zarządzanego eksportu i importu, musisz wykonać te czynności:

  1. Włącz płatności w projekcie Google Cloud. Tylko projekty Google Cloud z włączonymi płatnościami mogą korzystać z funkcji eksportowania i importowania.
  2. Utwórz Cloud Storage zasobnik na dane w projekcie w lokalizacji w pobliżu lokalizacji bazy danych.Cloud Firestore Nie możesz używać zasobnika „Płatnik żąda” do operacji eksportu i importu.
  3. Sprawdź, czy Twoje konto ma niezbędne uprawnienia do Cloud FirestoreCloud Storage. Jeśli jesteś właścicielem projektu, Twoje konto ma wymagane uprawnienia. W przeciwnym razie te role przyznają niezbędne uprawnienia do operacji eksportowania i importowania oraz do dostępu do Cloud Storage:

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

Uprawnienia agenta usługi

Operacje eksportowania i importowania korzystają z Cloud Firestoreagenta usługiCloud Storage do autoryzowania operacji. Agent usługi Cloud Firestore używa tej konwencji nazewnictwa:

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

Więcej informacji o agentach usługi znajdziesz w artykule Agenci usługi.

.

Cloud Firestore agent usługi wymaga dostępu do zasobnika Cloud Storage używanego w operacji eksportu lub importu. Jeśli TwójCloud Storage zasobnik znajduje się w tym samym projekcie co Cloud Firestorebaza danych, Cloud Firestoreagent usługi ma domyślnie 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.

Przypisywanie ról agentowi usługi

Za pomocą narzędzia wiersza poleceń gsutil możesz przypisać jedną z tych ról: Aby na przykład przypisać rolę administratora miejsca na dane agentowi usługi Cloud Firestore, uruchom to 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 usługi, zobacz Wyświetlanie nazwy agenta usługi.

Możesz też przypisać tę rolę za pomocą konsoli Google Cloud.

Wyświetlanie nazwy agenta usługi

Konto, którego operacje importowania i eksportowania używają do autoryzowania żądań, możesz wyświetlić na stronie Import/eksport w konsoli Google Cloud. Możesz też sprawdzić, czy Twoja baza danych korzysta z Cloud Firestoreagenta usługiApp Engine czy starszego konta usługi.

  1. Obok etykiety Zadania importu/eksportu są uruchamiane jako wyświetli się konto autoryzacji.

Agent usługi musi mieć rolę Storage Admin w przypadku zasobnika Cloud Storage, który ma być używany do operacji eksportowania lub importowania.

Konfigurowanie gcloud w projekcie

Operacje importowania i eksportowania możesz inicjować w konsoli Google Cloud lub za pomocą narzędzia wiersza poleceń gcloud. Aby używać gcloud, skonfiguruj narzędzie wiersza poleceń i połącz się z projektem w jeden z tych sposobów:

Eksportuj dane

Operacja eksportowania kopiuje dokumenty z bazy danych do zestawu plików w zasobniku Cloud Storage. Pamiętaj, że eksport nie jest dokładną migawką bazy danych zrobioną w momencie rozpoczęcia eksportu. Eksport może obejmować zmiany wprowadzone podczas działania operacji.

Eksportowanie wszystkich dokumentów

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Kliknij Eksportuj.

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

  6. Pod nagłówkiem Wybierz miejsce docelowe wpisz nazwę zasobnika Cloud Storage lub kliknij Przeglądaj, aby wybrać zasobnik.

  7. Kliknij Eksportuj.

Konsola wróci na stronę Import/eksport. Jeśli operacja się powiedzie, na stronie ostatnich importów i eksportów pojawi się nowy wpis. W przypadku niepowodzenia na stronie wyświetli się komunikat o błędzie.

gcloud

Użyj polecenia firestore export, aby wyeksportować wszystkie dokumenty z bazy danych, zastępując [BUCKET_NAME] nazwą zasobnika Cloud Storage. Dodaj flagę --async, aby narzędzie gcloud nie czekało na zakończenie operacji.

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

Zastąp następujące elementy:

  • BUCKET_NAME: uporządkuj eksportowane pliki, dodając prefiks pliku po nazwie zasobnika, np. BUCKET_NAME/my-exports-folder/export-name. Jeśli nie podasz prefiksu pliku, usługa eksportu zarządzanego 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 eksportu zamknięcie terminala nie powoduje anulowania operacji. Zobacz anulowanie operacji.

Eksportowanie określonych grup kolekcji

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Kliknij Eksportuj.

  5. Kliknij opcję Wyeksportuj jedną lub więcej grup kolekcji. W menu wybierz co najmniej 1 grupę kolekcji.

  6. Pod nagłówkiem Wybierz miejsce docelowe wpisz nazwę zasobnika Cloud Storage lub kliknij Przeglądaj, aby wybrać zasobnik.

  7. Kliknij Eksportuj.

Konsola wróci na stronę Import/eksport. Jeśli operacja się powiedzie, na stronie ostatnich importów i eksportów pojawi się nowy wpis. W przypadku niepowodzenia na stronie wyświetli się komunikat o błędzie.

gcloud

Aby wyeksportować konkretne grupy kolekcji, użyj flagi --collection-ids. Operacja eksportuje tylko grupy kolekcji o podanych identyfikatorach. Grupa kolekcji obejmuje wszystkie kolekcje i podkolekcje, których końcowy identyfikator jest identyfikatorem grupy kolekcji.

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \
--database=[DATABASE]

Możesz na przykład zaprojektować kolekcję restaurants w bazie danych foo, aby zawierała wiele podkolekcji, takich jak ratings, reviews lub outlets. Aby wyeksportować grupę kolekcji reviews, musi ona być wymieniona wprost:

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

Jeśli zamiast tego podasz restaurants, dokumenty z podzbioru reviews nie zostaną wyeksportowane.

Eksportowanie z sygnatury czasowej PITR

Bazę danych możesz wyeksportować do Cloud Storage z danych PITR. Możesz eksportować dane PITR, których sygnatura czasowa jest pełną minutą w ciągu ostatnich 7 dni, ale nie wcześniej niż earliestVersionTime. Jeśli dane nie istnieją już w określonym sygnale czasowym, operacja eksportu się nie powiedzie.

Operacja eksportu PITR obsługuje wszystkie filtry, w tym eksportowanie wszystkich dokumentów i eksportowanie określonych grup kolekcji.

Przed wyeksportowaniem danych PITR weź pod uwagę te kwestie:

  • Podaj sygnaturę czasową w formacie RFC 3339. Na przykład: 2023-05-26T10:20:00.00Z.
  • Upewnij się, że podany znacznik czasu jest pełną minutą w ciągu ostatnich 7 dni, ale nie wcześniej niż earliestVersionTime. Jeśli w określonej sygnaturze czasowej nie ma już danych, zostanie wygenerowany błąd.
  • Nie obciążymy Cię płatnością za nieudany eksport PITR.

Konsola

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych
  2. Wybierz bazę danych z listy baz danych.
  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.
  4. Kliknij Eksportuj.
  5. Skonfiguruj źródło eksportu, aby eksportować całą bazę danych lub tylko określone grupy kolekcji.
  6. W sekcji Wybierz stan bazy danych do wyeksportowania kliknij Eksportuj z wcześniejszego momentu.

    Wybierz czas zrzutu, który ma zostać użyty do eksportu.

  7. W sekcji Miejsce docelowe wpisz nazwę zasobnika Cloud Storage lub kliknij Przeglądaj, aby wybrać zasobnik.
  8. Kliknij Eksportuj.

    Konsola wróci na stronę Import/eksport. Jeśli operacja się powiedzie, na stronie ostatnich importów i eksportów pojawi się nowy wpis. W przypadku niepowodzenia na stronie wyświetli się komunikat o błędzie.

gcloud

Bazę danych możesz wyeksportować do Cloud Storage z danych PITR za pomocą polecenia gcloud firestore export.

Wyeksportuj bazę danych, określając parametr snapshot-time jako sygnaturę czasową przywracania. Aby wyeksportować bazę danych do zasobnika, uruchom to polecenie.

gcloud firestore export gs://[BUCKET_NAME_PATH] \
    --snapshot-time=[PITR_TIMESTAMP]

gdzie PITR_TIMESTAMP to sygnatura czasowa PITR z dokładnością do minuty, np. 2023-05-26T10:20:00.00Z.

Dodaj flagę --collection-ids, aby wyeksportować określone grupy kolekcji.

Importuj dane

Gdy pliki eksportu będą dostępne w usłudze Cloud Storage, możesz zaimportować dokumenty z tych plików z powrotem do projektu lub do innego projektu. Pamiętaj o tych kwestiach dotyczących operacji importowania:

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

  • Importowanie nie przypisuje 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śli dokument o tym samym identyfikatorze już istnieje, importowanie spowoduje zastąpienie go.

  • Jeśli import nie wpłynie na dokument w bazie danych, pozostanie on w niej po zakończeniu importu.

  • Operacje importu nie aktywują funkcji w Cloud Functions. Detektory zrzutów otrzymują aktualizacje związane z operacjami importowania.

  • Nazwa pliku .overall_export_metadata musi być zgodna z nazwą folderu nadrzędnego:

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

    Jeśli przeniesiesz lub skopiujesz pliki wyjściowe eksportu, zachowaj taką samą nazwę plików PARENT_FOLDER_NAME.overall_export_metadata.

Importowanie wszystkich dokumentów z eksportu

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Kliknij Importuj.

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

  6. Kliknij Importuj.

Konsola wróci na stronę Import/eksport. Jeśli operacja się powiedzie, na stronie ostatnich importów i eksportów pojawi się nowy wpis. W przypadku niepowodzenia na stronie wyświetli się komunikat o błędzie.

gcloud

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

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)'.

Przykład:

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

Lokalizację wyeksportowanych plików możesz sprawdzić w przeglądarce w konsoli Google Cloud:Cloud Storage

Otwórz przeglądarkę Cloud Storage

Po rozpoczęciu operacji importu zamknięcie terminala nie powoduje jej anulowania. Zobacz anulowanie operacji.

Importowanie konkretnych grup kolekcji

Google Cloud Console

Nie możesz wybrać w konsoli konkretnych grup kolekcji. Zamiast niej użyj zasady gcloud.

gcloud

Aby zaimportować konkretne grupy kolekcji z zestawu plików eksportu, użyj flagi --collection-ids. Operacja importuje tylko grupy kolekcji o podanych identyfikatorach. Grupa kolekcji obejmuje wszystkie kolekcje i podkolekcje, których końcowy identyfikator jest identyfikatorem grupy kolekcji. Określ nazwę bazy danych za pomocą flagi --database. W przypadku domyślnej bazy danych użyj --database='(default)'.

Tylko eksport konkretnych grup kolekcji obsługuje importowanie konkretnych grup kolekcji. Nie możesz zaimportować określonych grup kolekcji z eksportu wszystkich dokumentów.

  gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \
  --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \
  --database=[DATABASE]

Importowanie wyeksportowanego pliku PITR

Aby zaimportować wyeksportowaną bazę danych, wykonaj czynności opisane w sekcji Importowanie wszystkich dokumentów. Jeśli w bazie danych istnieje już jakiś dokument, zostanie on zastąpiony.

Zarządzanie operacjami eksportu i importu

Po rozpoczęciu operacji eksportu lub importu Cloud Firestore przypisuje operacji unikalną nazwę. Nazwy operacji możesz używać do usuwania, anulowania i sprawdzania stanu operacji.

Nazwy działań mają prefiks projects/[PROJECT_ID]/databases/(default)/operations/, np.:

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

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

Wyświetlanie listy wszystkich operacji eksportu i importu

Google Cloud Console

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

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

gcloud

Użyj polecenia operations list, aby wyświetlić wszystkie trwające i niedawno zakończone operacje eksportu i importu:

gcloud firestore operations list

Sprawdzanie stanu operacji

Google Cloud Console

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

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

gcloud

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

gcloud firestore operations describe [OPERATION_NAME]

Oszacowanie czasu realizacji

Żądanie stanu długo trwającej operacji zwraca wskaźniki workEstimatedworkCompleted. Każde z tych danych jest zwracane w postaci liczby bajtów i liczby jednostek:

  • workEstimated – szacowana łączna liczba bajtów i dokumentów, które zostaną przetworzone w ramach operacji. Cloud Firestore może pominąć te dane, jeśli nie może ich oszacować.

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

Aby uzyskać przybliżone oszacowanie postępu, podziel workCompleted przez workEstimated. Ten szacunek może być niedokładny, ponieważ zależy od opóźnionego zbierania statystyk.

Anulowanie operacji

Google Cloud Console

Trwającą operację eksportu lub importu możesz anulować na stronie Import/eksport w konsoli Google Cloud.

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

W tabeli Ostatnie importy i eksporty w kolumnie Ukończono przy obecnie wykonywanych operacjach znajduje się przycisk Anuluj. Aby zatrzymać operację, kliknij przycisk Anuluj. Przycisk zmieni się na komunikat Anulowanie, a następnie na Anulowano, gdy operacja zostanie całkowicie zatrzymana.

Tabela ostatnich importów i eksportów w konsoli pokazująca trwający import danych z opcją Anuluj, która umożliwia zatrzymanie operacji.

gcloud

Aby zatrzymać trwającą operację, użyj polecenia operations cancel:

gcloud firestore operations cancel [OPERATION_NAME]

Anulowanie trwającej operacji nie powoduje jej cofnięcia. Anulowanie operacji eksportu spowoduje pozostawienie wyeksportowanych już dokumentów w Cloud Storage, a anulowanie operacji importu spowoduje pozostawienie w bazie danych wprowadzonych już zmian. Nie możesz zaimportować częściowo ukończonego eksportu.

Usuwanie operacji

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

gcloud firestore operations delete [OPERATION_NAME]

Rozliczenia i ceny za operacje eksportu i importu

Zanim zaczniesz korzystać z zarządzanej usługi eksportu i importu, musisz włączyć płatności w projekcie Google Cloud.

Za operacje eksportowania i importowania pobierane są opłaty za odczyty i zapisy dokumentów według stawek podanych na stronie Cloud Firestorecennika. Operacje eksportu generują jedną operację odczytu na eksportowany dokument. Operacje importu powodują 1 operację zapisu na każdy importowany dokument.

Pliki wyjściowe przechowywane w Cloud Storage są wliczane do Cloud Storagekosztów miejsca na dane.

Operacje eksportowania i importowania nie będą wywoływać alertów dotyczących Google Cloudbudżetu do momentu ich zakończenia. Operacje eksportowania i importowania nie będą miały wpływu na wykorzystanie widoczne w sekcji wykorzystania w konsoli.

Wyświetlanie kosztów eksportu i importu

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

Otwórz etykietę goog-firestoremanaged w menu filtrów.

Eksportuj do BigQuery

Dane z eksportu Cloud Firestore możesz wczytać do BigQuery, ale tylko wtedy, gdy określisz filtr collection-ids. Zobacz Wczytywanie danych z eksportów Cloud Firestore.

BigQuery limit kolumn

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

Jeśli BigQuery schema grupy kolekcji przekracza 10 000 kolumn,operacja eksportu Cloud Firestore próbuje utrzymać się w limicie kolumn, traktując pola mapy jako bajty. Jeśli po tej konwersji liczba kolumn spadnie poniżej 10 tys., możesz wczytać dane do BigQuery, ale nie możesz wysyłać zapytań dotyczących pól podrzędnych w polach mapy. Jeśli liczba kolumn nadal przekracza 10 000, operacja eksportu nie wygeneruje BigQuery schematu grupy kolekcji i nie będzie można załadować jej danych do BigQuery.

Eksportowanie formatu i plików metadanych

Dane wyjściowe eksportu zarządzanego są zapisywane w formacie logu LevelDB.

Pliki metadanych

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

Pliki metadanych to bufory protokołów, które możesz dekodować za pomocą protockompilatora protokołów. Możesz na przykład zdekodować plik metadanych, aby określić grupy kolekcji, które zawierają pliki eksportu:

protoc --decode_raw < export0.export_metadata

Migracja agenta usługi

Cloud Firestore używa agenta usługi Cloud Firestore do autoryzowania operacji importu i eksportu zamiast konta usługi App Engine. Agent usługi i konto usługi używają tych konwencji nazewnictwa:

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

Cloud Firestore wcześniej używał App Enginedomyślnego konta usługiCloud Firestore zamiast agenta usługi. Jeśli Twoja baza danych nadal używa konta usługi App Engine do importowania lub eksportowania danych, zalecamy wykonanie instrukcji w tej sekcji, aby przejść na korzystanie z agenta usługi Cloud Firestore.

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

Agent usługi Cloud Firestore jest preferowany, ponieważ jest przeznaczony specjalnie dla Cloud Firestore. Konto usługi App Engine jest udostępniane przez więcej niż jedną usługę.

.

Wyświetlanie konta autoryzacji

Na stronie Import/eksport w konsoli Google Cloud możesz sprawdzić, którego konta używają operacje importowania i eksportowania do autoryzowania żądań. Możesz też sprawdzić, czy Twoja baza danych korzysta już z agenta usługi Cloud Firestore.

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.
  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Obok etykiety Zadania importu/eksportu są uruchamiane jako wyświetli się konto autoryzacji.

Jeśli Twój projekt nie korzysta z agenta usługi Cloud Firestore, możesz przejść na agenta usługi Cloud Firestore, korzystając z jednej z tych metod:

Pierwsza z tych technik jest preferowana, ponieważ ogranicza zakres efektu do jednego projektu Cloud Firestore. Druga technika nie jest zalecana, ponieważ nie przenosi uprawnień do istniejącego kosza Cloud Storage. Zapewnia jednak zgodność z wymaganiami dotyczącymi bezpieczeństwa na poziomie organizacji.

Migracja przez sprawdzenie i aktualizację uprawnień do zasobnika Cloud Storage

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

  1. Zaktualizuj uprawnienia zasobnika Cloud Storage. Szczegółowe informacje znajdziesz w następnej sekcji.
  2. Potwierdź migrację do Cloud Firestore agenta usługi.

Uprawnienia agenta usługi do zasobnika

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

W przypadku przepływów pracy związanych z importowaniem i eksportowaniem w ramach tego samego projektu nie trzeba zmieniać uprawnień. Agent usługi Cloud Firestore ma domyślnie dostęp do zasobników w tym samym projekcie.

Zaktualizuj uprawnienia do zasobników Cloud Storage z innych projektów, aby przyznać dostęp agentowi usługi service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com. Przypisz 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ć tylko uprawnienia do odczytu lub tylko uprawnienia do zapisu, użyj roli niestandardowej.

Proces migracji opisany w sekcji poniżej pomoże Ci zidentyfikować Cloud Storage zasobniki, które mogą wymagać aktualizacji uprawnień.

Przenoszenie projektu do agenta usługi Firestore

Aby przeprowadzić migrację z konta usługi App Engine na agenta usługi Cloud Firestore, wykonaj te czynności: Po zakończeniu migracji nie można jej cofnąć.

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.
  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Jeśli Twój projekt nie został jeszcze przeniesiony na konto usługi Cloud Firestore, zobaczysz baner z opisem migracji i przycisk Sprawdź stan zasobnika. Następny krok pomoże Ci wykryć i naprawić potencjalne błędy uprawnień.

    Kliknij Sprawdź stan zasobnika.

    Pojawi się menu z opcją dokończenia migracji i listą Cloud Storage zasobników. Załadowanie listy może potrwać kilka minut.

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

  5. Zanotuj nazwę podmiotu zabezpieczeń agenta usługi Cloud Firestore w projekcie. Nazwa agenta usługi pojawi się pod etykietą Agent usługi, któremu chcesz przyznać dostęp.
  6. W przypadku każdego zasobnika na liście, którego będziesz używać w przyszłości do operacji importu lub eksportu, wykonaj te czynności:

    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 zabezpieczeń wpisz nazwę agenta usługi Cloud Firestore.
    4. W polu Wybierz rolę wybierz Agenci usług > Agent usługi Firestore.
    5. Kliknij Zapisz.
    6. Wróć na kartę ze stroną Cloud Firestore Import/eksport.
    7. Powtórz te kroki w przypadku pozostałych zasobników na liście. Sprawdź wszystkie strony listy.
  7. Kliknij Migracja do agenta usługi Firestore. Jeśli nadal masz kosze z nieudanymi sprawdzeniami uprawnień, musisz potwierdzić migrację, klikając Migruj.

    Gdy migracja się zakończy, otrzymasz alert. Rozpoczętej migracji nie będzie można cofnąć.

Wyświetlanie stanu migracji

Aby sprawdzić stan migracji projektu:

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz z listy baz danych odpowiednią bazę danych.
  3. W menu nawigacyjnym kliknij Importowanie/eksportowanie.

  4. Znajdź podmiot obok etykiety Zadania importu/eksportu są uruchamiane jako.

    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 zasobnika. Aby przeprowadzić migrację, zapoznaj się z artykułem Migracja do agenta usługi Firestore.

Dodawanie ograniczenia dotyczącego zasad obowiązujących w całej organizacji

  • W zasadach organizacji ustaw to ograniczenie:

    Wymagaj agenta usługi Firestore do importowania/eksportowania (firestore.requireP4SAforImportExport).

    To ograniczenie wymaga, aby operacje importowania i eksportowania korzystały z Cloud Firestoreagenta usługi do autoryzowania żądań. Aby ustawić to ograniczenie, zapoznaj się z artykułem Tworzenie zasad organizacji i zarządzanie nimi .

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

Jeśli ograniczenie powoduje błędy uprawnień w przypadku 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ń do koszyka możesz ponownie włączyć ograniczenie.Cloud Storage