Yanlışlıkla silinen verileri kurtarmak ve verileri çevrimdışı işleme için dışa aktarmak üzere Cloud Firestore yönetilen dışa ve içe aktarma hizmetini kullanabilirsiniz. Tüm dokümanları veya yalnızca belirli koleksiyon gruplarını dışa aktarabilirsiniz. Benzer şekilde, bir dışa aktarma işlemindeki tüm verileri veya yalnızca belirli koleksiyon gruplarını içe aktarabilirsiniz. Bir Cloud Firestore veritabanından dışa aktarılan veriler başka bir Cloud Firestore veritabanına aktarılabilir. Dışa aktarılan Cloud Firestore dosyalarını BigQuery'e de yükleyebilirsiniz.
Bu sayfada, yönetilen dışa ve içe aktarma hizmeti ile Cloud Storage kullanılarak Cloud Firestore belgelerinin nasıl dışa ve içe aktarılacağı açıklanmaktadır. Cloud Firestore yönetilen dışa ve içe aktarma hizmeti, gcloud komut satırı aracı ve Cloud Firestore API (REST, RPC) aracılığıyla kullanılabilir.
Başlamadan önce
Yönetilen dışa ve içe aktarma hizmetini kullanabilmek için aşağıdaki görevleri tamamlamanız gerekir:
- Google Cloud projeniz için faturalandırmayı etkinleştirin. Yalnızca faturalandırmanın etkin olduğu Google Cloud projeler, dışa ve içe aktarma işlevini kullanabilir.
- Cloud Storage veritabanı konumunuza yakın bir konumda projeniz için bir Cloud Firestore paketi oluşturun. Dışa ve içe aktarma işlemleri için Masrafları İstek Sahibi Öder türünde bir paket veya Rapid paketi kullanamazsınız.
-
Hesabınızın Cloud Firestore ve Cloud Storage için gerekli izinlere sahip olduğundan emin olun. Proje sahibiyseniz hesabınız gerekli izinlere sahiptir. Aksi takdirde, aşağıdaki roller dışa ve içe aktarma işlemleri ile Cloud Storage erişimi için gerekli izinleri verir:
- Cloud Firestore rolleri:
Owner,Cloud Datastore OwnerveyaCloud Datastore Import Export Admin Cloud Storage rolleri:
OwnerveyaStorage Admin
- Cloud Firestore rolleri:
Hizmet aracısı izinleri
Dışa ve içe aktarma işlemleri, Cloud Storage işlemlerini yetkilendirmek için bir Cloud Firestore hizmet aracısı kullanır. Cloud Firestore hizmet aracısı, aşağıdaki adlandırma kuralını kullanır:
- Cloud Firestore hizmet aracısı
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Hizmet aracıları hakkında daha fazla bilgi edinmek için Hizmet aracıları başlıklı makaleyi inceleyin.
Cloud Firestore hizmet aracısının, dışa veya içe aktarma işleminde kullanılan Cloud Storage paketine erişmesi gerekir. Cloud Storage paketiniz, Cloud Firestore veritabanınızla aynı projede yer alıyorsa Cloud Firestore hizmet aracısı, pakete varsayılan olarak erişebilir.
Cloud Storage paketi başka bir projedeyse Cloud Firestore hizmet aracısına Cloud Storage paketine erişim izni vermeniz gerekir.
Hizmet aracısına rol atama
Aşağıdaki rollerden birini atamak için gsutil komut satırı aracını kullanabilirsiniz. Örneğin, Cloud Firestore hizmet aracısına Depolama Alanı Yöneticisi rolünü atamak için aşağıdaki komutu çalıştırın:
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \ gs://[BUCKET_NAME]
PROJECT_NUMBER yerine, Cloud Firestore hizmet aracınızı adlandırmak için kullanılan proje numaranızı yazın. Hizmet aracısı adını görüntülemek için Hizmet aracısı adını görüntüleme başlıklı makaleyi inceleyin.
Alternatif olarak, bu rolü Google Cloud konsolunu kullanarak atayabilirsiniz.
Hizmet aracısı adını görüntüleme
İçe ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için kullandığı hesabı Google Cloud Console'daki İçe/Dışa Aktarma sayfasından görüntüleyebilirsiniz. Ayrıca veritabanınızın Cloud Firestore hizmet aracısını mı yoksa eski App Engine hizmet hesabını mı kullandığını da görüntüleyebilirsiniz.
- İçe/dışa aktarma işleri şu hesapla çalıştırılır etiketinin yanındaki yetkilendirme hesabını görüntüleyin.
Hizmet aracısının, dışa veya içe aktarma işlemi için kullanılacak Cloud Storage paketi için Storage Admin rolüne sahip olması gerekir.
Projeniz için gcloud hizmetini ayarlama
İçe ve dışa aktarma işlemlerini Google Cloud Console veya gcloud komut satırı aracı üzerinden başlatabilirsiniz. gcloud hizmetini kullanmak için komut satırı aracını ayarlayın ve projenize aşağıdaki yöntemlerden biriyle bağlanın:
Cloud Shell kullanarak Google Cloud Console'dan
gcloudhizmetine erişin.gcloudaracının doğru proje için yapılandırıldığından emin olun:gcloud config set project [PROJECT_ID]
Verileri dışa aktarın
Dışa aktarma işlemi, veritabanınızdaki belgeleri bir Cloud Storage paketindeki dosya grubuna kopyalar. Dışa aktarma işleminin, dışa aktarma başlangıç zamanında alınan tam bir veritabanı anlık görüntüsü olmadığını unutmayın. Dışa aktarma işlemi, işlem devam ederken yapılan değişiklikleri içerebilir.
Tüm dokümanları dışa aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
Dışa aktar'ı tıklayın.
Tüm veritabanını dışa aktar seçeneğini tıklayın.
Hedef seçin bölümünde bir Cloud Storage paketinin adını girin veya paket seçmek için Göz at düğmesini kullanın.
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlarsa sayfa, son içe ve dışa aktarma işlemleri sayfasına bir giriş ekler. İşlem başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Veritabanınızdaki tüm belgeleri dışa aktarmak için firestore export komutunu kullanın. [BUCKET_NAME] ifadesini Cloud Storage paketinizin adıyla değiştirin. gcloud aracının işlemin tamamlanmasını beklemesini önlemek için --async işaretini ekleyin.
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
Aşağıdakini değiştirin:
BUCKET_NAME: Paket adından sonra bir dosya öneki ekleyerek dışa aktarma işlemlerinizi düzenleyin (ör.BUCKET_NAME/my-exports-folder/export-name). Dosya öneki sağlamazsanız yönetilen dışa aktarma hizmeti, geçerli zaman damgasına göre bir önek oluşturur.DATABASE: Belgeleri dışa aktarmak istediğiniz veritabanının adı. Varsayılan veritabanı için--database='(default)'kullanın.
Dışa aktarma işlemini başlattıktan sonra terminali kapatmak işlemi iptal etmez. İşlemi iptal etme bölümüne bakın.
Belirli koleksiyon gruplarını dışa aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
Dışa aktar'ı tıklayın.
Bir veya daha fazla koleksiyon grubunu dışa aktar seçeneğini tıklayın. Bir veya daha fazla koleksiyon grubu seçmek için menüyü kullanın.
Hedef seçin bölümünde bir Cloud Storage paketinin adını girin veya paket seçmek için Göz at düğmesini kullanın.
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlarsa sayfa, son içe ve dışa aktarma işlemleri sayfasına bir giriş ekler. İşlem başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids işaretini kullanın. İşlem, yalnızca belirtilen kimliklere sahip koleksiyon gruplarını dışa aktarır. Koleksiyon grubu, nihai koleksiyon kimliği koleksiyon grubu kimliği olan tüm koleksiyonları ve alt koleksiyonları içerir.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
Örneğin, foo veritabanında ratings, reviews veya outlets gibi birden fazla alt koleksiyon içeren bir restaurants koleksiyonu tasarlayabilirsiniz. reviews koleksiyon grubunu dışa aktarmak için açıkça listelenmesi gerekir:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=reviews \ --database='cymbal'
Bunun yerine restaurants belirtilirse reviews alt koleksiyonundaki dokümanlar dışa aktarılmaz.
Belirli bir zamana geri yükleme zaman damgasından dışa aktarma
Veritabanınızı PITR verilerinden Cloud Storage konumuna aktarabilirsiniz.
Zaman damgasının son yedi gün içinde tam dakika zaman damgası olduğu ancak earliestVersionTime tarihinden önce olmadığı PITR verilerini dışa aktarabilirsiniz. Belirtilen zaman damgasında veri yoksa dışa aktarma işlemi başarısız olur.
PITR dışa aktarma işlemi, tüm belgeleri ve belirli koleksiyon gruplarını dışa aktarma dahil olmak üzere tüm filtreleri destekler.
PITR verilerini dışa aktarmadan önce aşağıdaki noktaları göz önünde bulundurun:
- Zaman damgasını RFC 3339 biçiminde belirtin. Örneğin,
2023-05-26T10:20:00.00Z. - Belirttiğiniz zaman damgasının, son yedi gün içinde tam dakika zaman damgası olduğundan ancak
earliestVersionTimetarihinden önce olmadığından emin olun. Belirtilen zaman damgasında veri yoksa hata oluşur. - Başarısız olan belirli bir zamana geri yükleme dışa aktarma işlemleri için ücret alınmaz.
Konsol
-
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları'na gidin - Veritabanları listesinden bir veritabanı seçin.
- Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
- Dışa aktar'ı tıklayın.
- Dışa aktarma kaynağını, veritabanının tamamını veya yalnızca belirli koleksiyon gruplarını dışa aktaracak şekilde yapılandırın.
Dışa aktarılacak veritabanınızın durumunu seçin bölümünde Daha önceki bir noktadan dışa aktar'ı seçin.
Dışa aktarma için kullanılacak bir anlık görüntü zamanı seçin
- Hedef bölümünde bir Cloud Storage paketinin adını girin veya bir paket seçmek için Göz at düğmesini kullanın.
-
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlarsa sayfa, son içe ve dışa aktarma işlemleri sayfasına bir giriş ekler. İşlem başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
gcloud firestore export komutunu kullanarak veritabanınızı PITR verilerinden Cloud Storage tarihine aktarabilirsiniz.
snapshot-time parametresini bir kurtarma zaman damgasına ayarlayarak veritabanını dışa aktarın. Veritabanını paketinize aktarmak için aşağıdaki komutu çalıştırın.
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
PITR_TIMESTAMP, dakika ayrıntı düzeyinde bir PITR zaman damgasıdır (ör. 2023-05-26T10:20:00.00Z).
Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids işaretini ekleyin.
Verileri içe aktarma
Cloud Storage hizmetinde dışa aktarma dosyalarınız olduğunda bu dosyalardaki dokümanları projenize veya başka bir projeye geri aktarabilirsiniz. İçe aktarma işlemleriyle ilgili aşağıdaki noktalara dikkat edin:
Verileri içe aktardığınızda, gerekli dizinler veritabanınızın mevcut dizin tanımları kullanılarak güncellenir. Dışa aktarma işlemi dizin tanımlarını içermez.
İçe aktarma işlemi yeni doküman kimlikleri atamaz. İçe aktarma işlemlerinde, dışa aktarma sırasında yakalanan kimlikler kullanılır. Bir doküman içe aktarılırken kimlik çakışmalarını önlemek için kimliği ayrılır. Aynı kimliğe sahip bir doküman zaten varsa içe aktarma işlemi mevcut dokümanın üzerine yazılır.
Veritabanınızdaki bir doküman içe aktarma işleminden etkilenmiyorsa içe aktarma işleminden sonra veritabanınızda kalır.
İçe aktarma işlemleri Cloud Functions'ı tetiklemez. Anlık görüntü dinleyicileri, içe aktarma işlemleriyle ilgili güncellemeleri alır.
Dışa aktarma işleminin orijinal çıkış dosyalarında bulunmayan yeni Cloud Firestore dokümanları eklememeli veya içe aktarmadan önce GCS dosyalarındaki mevcut dokümanları kaldırmamalısınız. Aksi takdirde içe aktarma işlemi başarısız olur.
.overall_export_metadatadosya adı, üst klasörünün adıyla eşleşmelidir:gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadataDışa aktarma işleminin çıkış dosyalarını taşır veya kopyalarsanız PARENT_FOLDER_NAME ve
.overall_export_metadatadosya adını aynı tutun.
Dışa aktarılan tüm dokümanları içe aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
İçe Aktar'ı tıklayın.
Dosya adı alanına, tamamlanmış bir dışa aktarma işlemindeki
.overall_export_metadatadosyasının adını girin. Dosyayı seçmek için Göz at düğmesini kullanabilirsiniz.İçe Aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlarsa sayfa, son içe ve dışa aktarma işlemleri sayfasına bir giriş ekler. İşlem başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Önceki bir dışa aktarma işleminden dokümanları içe aktarmak için firestore import komutunu kullanın.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
Aşağıdakini değiştirin:
BUCKET_NAME/EXPORT_PREFIX: Dışa aktarma dosyalarınızın konumu.DATABASE: Veritabanının adı. Varsayılan veritabanı için--database='(default)'kullanın.
Örneğin:
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
Dışa aktarma dosyalarınızın konumunu Google Cloud Console'daki Cloud Storage tarayıcısında onaylayabilirsiniz:
Cloud Storage tarayıcısını açın
Bir içe aktarma işlemi başlattıktan sonra terminali kapatmak işlemi iptal etmez. İşlemi iptal etme bölümüne bakın.
Belirli koleksiyon gruplarını içe aktarma
Google Cloud Console
Konsolda belirli koleksiyon gruplarını seçemezsiniz. Bunun yerine gcloud kullanın.
gcloud
Bir dışa aktarma dosyası grubundan belirli koleksiyon gruplarını içe aktarmak için --collection-ids işaretini kullanın. İşlem, yalnızca belirtilen kimliklere sahip koleksiyon gruplarını içe aktarır. Koleksiyon grubu, nihai koleksiyon kimliği koleksiyon grubu kimliği olan tüm koleksiyonları ve alt koleksiyonları içerir. --database işaretini kullanarak veritabanı adını belirtin. Varsayılan veritabanı için --database='(default)' kullanın.
Yalnızca belirli koleksiyon gruplarının dışa aktarılması, belirli koleksiyon gruplarının içe aktarılmasını destekler. Tüm dokümanların dışa aktarılmasından belirli koleksiyon gruplarını içe aktaramazsınız.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
PITR dışa aktarma işlemini içe aktarma
Dışa aktarılan veritabanınızı içe aktarmak için Tüm dokümanları içe aktarma bölümündeki adımları uygulayın. Veritabanınızda zaten mevcut olan belgelerin üzerine yazılır.
Dışa ve içe aktarma işlemlerini yönetme
Bir dışa veya içe aktarma işlemi başlattıktan sonra Cloud Firestore, işleme benzersiz bir ad atar. İşlemi silmek, iptal etmek veya durumunu kontrol etmek için işlem adını kullanabilirsiniz.
İşlem adlarının önüne projects/[PROJECT_ID]/databases/(default)/operations/ eklenir. Örneğin:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Ancak describe, cancel ve delete komutları için işlem adı belirtirken ön eki kullanmayabilirsiniz.
Tüm dışa ve içe aktarma işlemlerini listeleme
Google Cloud Console
Google Cloud Console'un İçe/Dışa Aktarma sayfasında son içe ve dışa aktarma işlemlerinin listesini görüntüleyebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
gcloud
Çalışan ve yakın zamanda tamamlanan tüm dışa ve içe aktarma işlemlerini görmek için operations list komutunu kullanın:
gcloud firestore operations list
Faaliyet durumunu kontrol etme
Google Cloud Console
Son dışa veya içe aktarma işleminin durumunu Google Cloud Console'un İçe/Dışa Aktar sayfasında görüntüleyebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
gcloud
Dışa veya içe aktarma işleminin durumunu göstermek için operations describe komutunu kullanın.
gcloud firestore operations describe [OPERATION_NAME]
Tamamlanma süresini tahmin etme
Uzun süreli bir işlemin durumuna yönelik istek, workEstimated ve workCompleted metriklerini döndürür. Bu metriklerin her biri hem bayt sayısı hem de varlık sayısı olarak döndürülür:
workEstimated, bir işlemin işleyeceği tahmini toplam bayt ve doküman sayısını gösterir. Cloud Firestore, tahmin yapamazsa bu metriği atlayabilir.workCompleted, şu ana kadar işlenen bayt ve doküman sayısını gösterir. İşlem tamamlandıktan sonra değer, gerçekte işlenen toplam bayt ve doküman sayısını gösterir. Bu sayı,workEstimateddeğerinden daha büyük olabilir.
Yaklaşık ilerleme tahmini için workCompleted değerini workEstimated değerine bölün. Bu tahmin, gecikmeli istatistik toplamaya bağlı olduğundan doğru olmayabilir.
İşlemleri iptal etme
Google Cloud Console
Devam eden bir içe veya dışa aktarma işlemini Google Cloud Console'un İçe/Dışa Aktarma sayfasından iptal edebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın. Son içe ve dışa aktarmalar tablosunda, çalışmakta olan işlemlerin Tamamlandı sütununda bir İptal düğmesi bulunur. İşlemi durdurmak için İptal düğmesini tıklayın. Düğme, İptal ediliyor mesajına ve ardından işlem tamamen durduğunda İptal edildi mesajına dönüşür.

gcloud
Devam eden bir işlemi durdurmak için operations cancel komutunu kullanın:
gcloud firestore operations cancel [OPERATION_NAME]
Devam eden bir işlemi iptal etmek, işlemi geri almaz. İptal edilen bir dışa aktarma işlemi, daha önce Cloud Storage konumuna aktarılan dokümanları bırakır ve iptal edilen bir içe aktarma işlemi, veritabanınızda daha önce yapılan güncellemeleri olduğu gibi bırakır. Kısmen tamamlanmış bir dışa aktarma işlemini içe aktaramazsınız.
İşlemleri silme
Son işlemler listesinden bir işlemi kaldırmak için gcloud firestore operations delete komutunu kullanın. Bu komut, dışa aktarma dosyalarını Cloud Storage üzerinden silmez.
gcloud firestore operations delete [OPERATION_NAME]
Dışa ve içe aktarma işlemleri için faturalandırma ve fiyatlandırma
Yönetilen dışa ve içe aktarma hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.
Dışa ve içe aktarma işlemlerinde, belge okuma ve yazma işlemleri için Cloud Firestore fiyatlandırması bölümünde listelenen ücretler üzerinden ödeme alınır. Dışa aktarma işlemleri, dışa aktarılan belge başına bir okuma işlemi gerçekleştirir. İçe aktarma işlemleri, içe aktarılan her doküman için bir yazma işlemi gerçekleştirir.
Cloud Storage içinde depolanan çıkış dosyaları, Cloud Storage veri depolama maliyetlerinize dahil edilir.
Dışa veya içe aktarma işlemleri tamamlanana kadar Google Cloud bütçe uyarılarınızı tetiklemez. Dışa ve içe aktarma işlemleri, konsolun kullanım bölümünde gösterilen kullanımı etkilemez.
Dışa ve içe aktarma maliyetlerini görüntüleme
Dışa ve içe aktarma işlemleri, faturalandırılan işlemlere goog-firestoremanaged:exportimport etiketini uygular. Cloud Billing fatura raporları sayfasında, içe ve dışa aktarma işlemleriyle ilgili maliyetleri görüntülemek için bu etiketi kullanabilirsiniz:

BigQuery'ye aktarın
Cloud Firestore dışa aktarma işlemindeki verileri BigQuery hizmetine yükleyebilirsiniz ancak bunun için collection-ids filtresi belirtmeniz gerekir. Cloud Firestore dışa aktarma işlemlerinden veri yükleme başlıklı makaleyi inceleyin.
BigQuery sütun sınırı
BigQuery,tablo başına 10.000 sütun sınırı uygular. Cloud Firestore dışa aktarma işlemleri, her koleksiyon grubu için bir BigQuery tablo şeması oluşturur. Bu şemada, bir koleksiyon grubundaki her benzersiz alan adı bir şema sütunu olur. Bir koleksiyon grubunun BigQuery şeması 10.000 sütunu aşarsa Cloud Firestore dışa aktarma işlemi, harita alanlarını bayt olarak değerlendirerek sütun sınırının altında kalmaya çalışır. Bu dönüşüm, sütun sayısını 10.000'in altına düşürürse verileri BigQuery içine yükleyebilirsiniz ancak harita alanlarındaki alt alanları sorgulayamazsınız. Sütun sayısı hâlâ 10.000'i aşıyorsa dışa aktarma işlemi, koleksiyon grubu için BigQuery şeması oluşturmaz ve verilerini BigQuery'e yükleyemezsiniz.
Dışa aktarma biçimi ve meta veri dosyaları
Yönetilen dışa aktarma işleminin çıkışı, LevelDB günlük biçimini kullanır.
Meta veri dosyaları
Dışa aktarma işlemi, belirttiğiniz her koleksiyon grubu için bir meta veri dosyası oluşturur. Meta veri dosyaları genellikle ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata olarak adlandırılır.
Meta veri dosyaları protokol arabellekleridir ve bunları protoc protokol derleyicisi ile çözebilirsiniz.
Örneğin, dışa aktarma dosyalarının içerdiği koleksiyon gruplarını belirlemek için bir meta veri dosyasının kodunu çözebilirsiniz:
protoc --decode_raw < export0.export_metadata
Hizmet aracısı taşıma
Cloud Firestore, içe ve dışa aktarma işlemlerini yetkilendirmek için App Engine hizmet hesabı yerine Cloud Firestore hizmet aracısını kullanır. Hizmet aracısı ve hizmet hesabı aşağıdaki adlandırma kurallarını kullanır:
- Cloud Firestore hizmet aracısı
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Cloud Firestore, daha önce Cloud Firestore hizmet aracısı yerine App Engine varsayılan hizmet hesabını kullanıyordu. Veritabanınız, verileri içe veya dışa aktarmak için hâlâ App Engine hizmet hesabını kullanıyorsa Cloud Firestore hizmet aracısını kullanmaya geçmek için bu bölümdeki talimatları uygulamanızı öneririz.
- App Engine hizmet hesabı
PROJECT_ID@appspot.gserviceaccount.com
Cloud Firestore hizmet aracısı, Cloud Firestore'e özel olduğu için tercih edilir. App Engine hizmet hesabı birden fazla hizmet tarafından paylaşılıyor.
Yetkilendirme hesabını görüntüleme
İçe ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için hangi hesabı kullandığını Google Cloud Console'daki İçe/Dışa Aktarma sayfasından görüntüleyebilirsiniz. Veritabanınızın Cloud Firestore hizmet aracısını kullanıp kullanmadığını da görüntüleyebilirsiniz.
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
- İçe/dışa aktarma işleri şu hesapla çalıştırılır etiketinin yanındaki yetkilendirme hesabını görüntüleyin.
Projeniz Cloud Firestore hizmet aracısını kullanmıyorsa aşağıdaki yöntemlerden birini kullanarak Cloud Firestore hizmet aracısına geçiş yapabilirsiniz:
- Cloud Storage paketi izinlerini kontrol edip güncelleyerek projeleri taşıma (önerilir).
- Kuruluştaki tüm projeleri etkileyen kuruluş genelinde bir politika kısıtlaması ekleyin.
Bu tekniklerden ilki, etki kapsamını tek bir Cloud Firestore projesiyle sınırladığı için tercih edilir. İkinci teknik, mevcut Cloud Storage paketi izinlerini taşımadığı için tercih edilmez. Ancak kuruluş düzeyinde güvenlik uygunluğu sunar.
Cloud Storage paket izinlerini kontrol edip güncelleyerek taşıma
Taşıma işlemi iki adımdan oluşur:
- Cloud Storage paketi izinlerini güncelleyin. Ayrıntılar için aşağıdaki bölüme bakın.
- Cloud Firestore hizmet aracısına geçişi onaylayın.
Hizmet aracısı paketi izinleri
Başka bir projedeki Cloud Storage paketini kullanan tüm içe veya dışa aktarma işlemleri için Cloud Firestore hizmet aracısına bu paketle ilgili izinleri vermeniz gerekir. Örneğin, verileri başka bir projeye taşıyan işlemlerin, diğer projedeki bir pakete erişmesi gerekir. Aksi takdirde, Cloud Firestore hizmet aracısına geçiş yapıldıktan sonra bu işlemler başarısız olur.
Aynı proje içinde kalan içe ve dışa aktarma iş akışları, izinlerde değişiklik yapılmasını gerektirmez. Cloud Firestore hizmet aracısı, varsayılan olarak aynı projedeki paketlere erişebilir.
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com hizmet aracısına erişim vermek için diğer projelerdeki Cloud Storage paketlerinin izinlerini güncelleyin. Hizmet aracısına Firestore Service Agent rolünü verin.
Firestore Service Agent rolü, bir Cloud Storage paketi için okuma ve yazma izinleri verir. Yalnızca okuma veya yalnızca yazma izinleri vermeniz gerekiyorsa özel rol kullanın.
Aşağıdaki bölümde açıklanan taşıma işlemi, izin güncellemeleri gerektirebilecek Cloud Storage paketlerini belirlemenize yardımcı olur.
Projeleri Firestore hizmet aracısına taşıma
App Engine hizmet hesabından Cloud Firestore hizmet aracısına geçiş yapmak için aşağıdaki adımları uygulayın. Taşıma işlemi tamamlandıktan sonra geri alınamaz.
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
-
Projeniz henüz Cloud Firestore hizmet aracısına taşınmadıysa taşıma işlemini açıklayan bir banner ve Paket Durumunu Kontrol Et düğmesi görürsünüz. Sonraki adım, olası izin hatalarını belirleyip düzeltmenize yardımcı olur.
Paket Durumunu Kontrol Et'i tıklayın.
Taşıma işleminizi tamamlamanızı sağlayan bir seçeneğin ve Cloud Storage paketlerinin listesinin yer aldığı bir menü gösterilir. Listenin yüklenmesi birkaç dakika sürebilir.
Bu listede, yakın zamanda içe ve dışa aktarma işlemlerinde kullanılan ancak şu anda Cloud Firestore hizmet aracısına okuma ve yazma izinleri vermeyen paketler yer alır.
- Projenizin Cloud Firestore hizmet aracısının asıl adını not edin. Hizmet aracısı adı, Erişim izni verilecek hizmet aracısı etiketinin altında görünür.
-
Listede gelecekteki içe veya dışa aktarma işlemleri için kullanacağınız tüm paketlerde aşağıdaki adımları tamamlayın:
-
Bu paketin tablo satırında Düzelt'i tıklayın. Bu işlem, ilgili paketin izinler sayfasını yeni bir sekmede açar.
- Ekle'yi tıklayın.
- Yeni ana hesaplar alanına Cloud Firestore hizmet aracınızın adını girin.
- Select a role (Rol seçin) alanında Service Agents > Firestore Service Agent'ı (Hizmet Aracıları > Firestore Hizmet Aracısı) seçin.
- Kaydet'i tıklayın.
- Cloud Firestore İçe/Dışa Aktarma sayfasının bulunduğu sekmeye dönün.
- Listedeki diğer paketler için bu adımları tekrarlayın. Listenin tüm sayfalarını görüntülediğinizden emin olun.
-
-
Migrate to Firestore Service Agent'ı (Firestore Hizmet Aracısı'na taşı) tıklayın. İzin kontrolleri başarısız olan paketleriniz varsa Taşı'yı tıklayarak taşıma işleminizi onaylamanız gerekir.
Taşıma işleminiz tamamlandığında bir uyarı alırsınız. Taşıma işlemi geri alınamaz.
Taşıma durumunu görüntüleme
Projenizin taşıma durumunu doğrulamak için:
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.
-
İçe/dışa aktarma işleri şu şekilde çalıştırılır etiketinin yanındaki sorumluyu bulun.
İşlemci
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.comise projeniz Cloud Firestore hizmet aracısına zaten taşınmıştır. Taşıma işlemi geri alınamaz.Proje taşınmadıysa sayfanın üst kısmında Paket Durumunu Kontrol Et düğmesinin bulunduğu bir banner görünür. Taşıma işlemini tamamlamak için Firestore hizmet aracısına geçiş başlıklı makaleyi inceleyin.
Kuruluş genelinde politika kısıtlaması ekleme
-
Kuruluşunuzun politikasında aşağıdaki kısıtlamayı ayarlayın:
İçe/dışa aktarma için Firestore hizmet aracısı gerektir (
firestore.requireP4SAforImportExport).Bu kısıtlama, içe ve dışa aktarma işlemlerinin istekleri yetkilendirmek için Cloud Firestore hizmet aracısını kullanmasını gerektirir. Bu kısıtlamayı ayarlamak için Kuruluş politikaları oluşturma ve yönetme başlıklı makaleyi inceleyin.
Bu kuruluş politikası kısıtlamasının uygulanması, Cloud Firestore hizmet aracısına uygun Cloud Storage paketi izinlerini otomatik olarak vermez.
Kısıtlama, içe veya dışa aktarma iş akışları için izin hatalarına neden oluyorsa kısıtlamayı devre dışı bırakarak varsayılan hizmet hesabını kullanmaya geri dönebilirsiniz. Cloud Storage paketi izinlerini kontrol edip güncelledikten sonra kısıtlamayı tekrar etkinleştirebilirsiniz.