Na tej stronie dowiesz się, jak korzystać z funkcji zarządzanego importowania i eksportowania na potrzeby przeniesienia danych Cloud Firestore z innego projektu. Jest to przydatne podczas konfigurowania środowiska programistycznego lub w ramach trwałej migracji aplikacji do innego projektu. Przykład na tej stronie pokazuje, jak wyeksportować dane z w projekcie źródłowym, a następnie zaimportujesz te dane do projektu docelowego. Przenoszę dane między projektami należy wykonać te czynności:
- Utwórz zasobnik Cloud Storage, w którym będą przechowywane dane z projektu źródłowego.
- Wyeksportuj dane z projektu źródłowego do zasobnika.
- Przyznaj projektowi docelowemu uprawnienia do odczytu z zasobnika.
- Zaimportuj dane z zasobnika do projektu docelowego.
Zanim zaczniesz
Aby móc korzystać z usługi zarządzanego eksportu i importu, musisz wykonać następujące zadania:
- Włącz płatności za projekt źródłowy oraz w projekcie docelowym. Tylko Google Cloud w projektach z włączonymi płatnościami można używać funkcji eksportowania i importowania.
-
Sprawdź, czy Twoje konto ma wymaganą licencję Cloud IAM uprawnień w projekcie źródłowym, w projekcie docelowym. Jeśli jesteś właścicielem obu projektów, Twoje konto ma wymagane uprawnień. W przeciwnym razie te role Cloud IAM przyznać Cloud Firestore niezbędne uprawnienia operacji eksportu i importu:
Owner
,Cloud Datastore Owner
lubCloud Datastore Import Export Admin
Właściciel projektu może przypisać jedną z tych ról, postępując zgodnie z kroki Przyznaj dostęp.
-
Skonfiguruj narzędzie wiersza poleceń
gcloud
i połącz się z projektem na jeden z tych sposobów:-
Uzyskaj dostęp do usługi
gcloud
w konsoli Google Cloud za pomocą Cloud Shell.Sprawdź, czy usługa
gcloud
jest skonfigurowana dla odpowiedniego projektu:gcloud config set project [SOURCE_PROJECT_ID]
-
-
Skonfiguruj indeksy w nowym projekcie. Indeksy złożone powinny pasować między projektem źródłowym a docelowym. Należy skonfigurować indeksy , aby uniknąć konieczności wielokrotnego przetwarzania każdego dokumentu.
Eksportuj dane z projektu źródłowego
Utwórz zasobnik Cloud Storage, aby wyeksportować swoje dane Eksport plików Cloud Firestore i rozpoczynanie operacji eksportu.
Tworzenie zasobnika Cloud Storage
Utwórz Zasobnik Cloud Storage w tej samej lokalizacji co Cloud Firestore w bazie danych. Aby wyświetlić lokalizację bazy danych, zobacz ustawienia lokalizacji projektu. Nie możesz używać zasobnika Żądający płaci na potrzeby operacji eksportu i importu.
Jeśli zasobnika Cloud Storage nie ma w
projektu źródłowego, musisz podać
dostępu domyślnego konta usługi do zasobnika. Każdy projekt Google Cloud
ma automatycznie utworzone domyślne konto usługi o nazwie PROJECT_ID@appspot.gserviceaccount.com
. Cloud Firestore
operacje eksportu używają tego domyślnego konta usługi do autoryzacji Cloud Storage
operacji zasobnika. Aby użyć funkcji
domyślnemu kontu usługi dostęp do zasobnika źródłowego, przyznaj mu
Storage Admin
rolę użytkownika.
Możesz przypisać tę rolę użytkownikom
Narzędzie gsutil
dostępne w Cloud Shell:
gsutil iam ch serviceAccount:[service-PROJECT_NUMBER]@gcp-sa-firestore.iam.gserviceaccount.com :roles/storage.admin\ gs://[BUCKET_NAME]@
Możesz też przypisać tę rolę w konsoli Google Cloud.
Wyłącz operacje zapisu (opcjonalnie)
Jeśli podczas eksportowania aplikacja nadal zapisuje dane w bazie danych może nie udać się zapisać wszystkich tych zapisów w plikach eksportu. Do eksportuj dane ze stałego stanu, wyłącz zapisy do bazy danych przez aktualizację reguły zabezpieczeń i wstrzymanie operacji związanych z pakietem Admin SDK.
Aktualizowanie reguł zabezpieczeń
W Cloud Firestore Karta Reguły w konsoli, zaktualizuj reguły zabezpieczeń projektu źródłowego, aby odrzucać wszystkie pisze. Przykład:
// Deny write access to all users under any conditions service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow write: if false; } // Reads do not affect export operations // Add your read rules here } }
Blokuj zapisy z pakietów Admin SDK
Reguły zabezpieczeń nie zatrzymują zapisów pochodzących z serwera z podwyższonymi uprawnieniami środowisk utworzonych za pomocą administratora Firebase. Pakiet SDK lub Google Cloud Klient serwera Biblioteka. Zatrzymaj operacje zapisu na serwerach administracyjnych do wyłączenie lub zaktualizowanie serwerów.
Rozpoczynanie operacji eksportu
Do eksportowania użyj polecenia gcloud firestore export
z projektu źródłowego. Możesz wyeksportować wszystkie dane lub tylko
określonych kolekcji. Zastąp [SOURCE_BUCKET]
nazwą swojego
Zasobnik Cloud Storage:
- Eksportuj wszystkie dane
-
gcloud firestore export gs://[SOURCE_BUCKET] --async
- Eksportowanie określonych kolekcji
-
gcloud firestore export gs://[SOURCE_BUCKET] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] --async
Zanotuj parametr outputURIPrefix
operacji eksportu, ponieważ będziesz go używać
o tym później. Domyślnie Cloud Firestore dodaje do eksportu prefiks
według sygnatury czasowej:
outputUriPrefix: gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418
Podczas eksportowania możesz użyć polecenia firestore operations list
aby sprawdzić postęp operacji:
gcloud firestore operations list
Importowanie danych do projektu docelowego
Następnie przyznaj projektowi docelowemu dostęp do Twojego plików danych Cloud Firestore i rozpocznij operację importu.
Przyznaj projektowi docelowemu dostęp do plików danych
Przed rozpoczęciem operacji importowania musisz sprawdź, czy projekt docelowy ma dostęp do Cloud Firestore plików danych.
Przenoszenie plików danych do zasobnika lokalnego
Jeśli lokalizacja zasobnika źródłowego różni się od lokalizacji Lokalizacja w Cloud Firestore projektu docelowego; musisz przenieść plików danych do zasobnika Cloud Storage w tym samym jako projekt docelowy.
Aby przenieść pliki danych do innego zasobnika Cloud Storage, wykonaj te czynności
w artykule Przenoszenie zasobników i zmienianie ich nazw.
W przypadku wszystkich poniższych kroków używaj tego nowego zasobnika jako [SOURCE_BUCKET]
.
Przyznaj kontu usługi projektu dostęp do zasobnika źródłowego
Jeśli w projekcie docelowym nie ma zasobnika źródłowego, musisz nadać
domyślne konto usługi projektu docelowego do zasobnika źródłowego.
domyślne konto usługi ma nazwę
[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com
Do
przyznaj domyślnemu kontu usługi dostęp do zasobnika źródłowego, przyznaj mu
odpowiednich uprawnień dostępu do zasobnika.
Niezbędne role możesz przypisać
Narzędzie gsutil
dostępne w Cloud Shell:
gsutil iam ch serviceAccount:[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com:legacyBucketReader,legacyObjectReader \ gs://[SOURCE_BUCKET]
Możesz też przypisać tę rolę w konsoli Google Cloud.
Rozpoczynanie operacji importu
Przed rozpoczęciem operacji importowania upewnij się, że usługa gcloud
jest skonfigurowana
dla odpowiedniego projektu:
gcloud config set project [DESTINATION_PROJECT_ID]
Aby zaimportować dane do usługi, użyj polecenia gcloud firestore import
zasobnik źródłowy do projektu docelowego:
gcloud firestore import gs://[SOURCE_BUCKET]/[EXPORT_PREFIX] --async
Gdzie [EXPORT_PREFIX]
pasuje do prefiksu w operacji eksportu
outputUriPrefix
Przykład:
gcloud firestore import gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418 --async
Podczas eksportowania możesz użyć polecenia firestore operations list
aby sprawdzić postęp operacji:
gcloud firestore operations list