Verileri dışa ve içe aktarma

Verilerin yanlışlıkla silinmesini önlemek ve verileri çevrimdışı işleme amacıyla dışa aktarmak için Cloud Firestore tarafından yönetilen dışa aktarma ve içe aktarma hizmetini kullanabilirsiniz. Tüm belgeleri veya yalnızca belirli koleksiyonları dışa aktarabilirsiniz. Benzer şekilde, bir dışa aktarma işlemindeki tüm verileri veya yalnızca belirli koleksiyonları içe aktarabilirsiniz. Bir Cloud Firestore veritabanından dışa aktarılan veriler başka bir Cloud Firestore veritabanına aktarılabilir. Cloud Firestore dışa aktarımlarını BigQuery'ye de yükleyebilirsiniz .

Bu sayfada, yönetilen dışa aktarma ve içe aktarma hizmeti ve Cloud Storage kullanılarak Cloud Firestore belgelerinin nasıl dışa ve içe aktarılacağı açıklanmaktadır. Cloud Firestore tarafından yönetilen dışa aktarma ve içe aktarma hizmeti, gcloud komut satırı aracı ve Cloud Firestore API ( REST , RPC ) aracılığıyla kullanılabilir.

Sen başlamadan önce

Yönetilen dışa ve içe aktarma hizmetini kullanabilmeniz için aşağıdaki görevleri tamamlamanız gerekir:

  1. Google Cloud projeniz için faturalandırmayı etkinleştirin. Dışa aktarma ve içe aktarma işlevini yalnızca faturalandırmanın etkin olduğu Google Cloud projeleri kullanabilir.
  2. Projeniz için Cloud Firestore veritabanı konumunuza yakın bir konumda bir Cloud Storage paketi oluşturun. İhracat ve ithalat işlemleri için Talep Eden Ödemeler grubunu kullanamazsınız.
  3. 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 aktarma ve içe aktarma işlemleri ve Cloud Storage'a erişim için gerekli izinleri verir:

Servis aracısı izinleri

Dışa aktarma ve içe aktarma işlemleri, Cloud Storage işlemlerini yetkilendirmek için bir Cloud Firestore hizmet aracısını 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 bkz. Hizmet aracıları .

Cloud Firestore hizmet aracısı, bir dışa aktarma veya içe aktarma işleminde kullanılan Cloud Storage paketine erişim gerektirir. Cloud Storage grubunuz Cloud Firestore veritabanınızla aynı projedeyse Cloud Firestore hizmet aracısı varsayılan olarak pakete erişebilir .

Cloud Storage paketi başka bir projedeyse Cloud Firestore hizmet aracısına Cloud Storage paketine erişim izni vermelisiniz.

Hizmet aracısına rol atama

Aşağıdaki rollerden birini atamak için gsutil komut satırı aracını kullanabilirsiniz. Örneğin, Depolama Yöneticisi rolünü Cloud Firestore hizmet aracısına atamak için aşağıdakileri ç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 , Cloud Firestore hizmet aracınızı adlandırmak için kullanılan proje numaranızla değiştirin. Servis aracısı adını görüntülemek için bkz . Servis aracısı adını görüntüleme .

Alternatif olarak, bu rolü GCP Konsolunu kullanarak atayabilirsiniz .

Servis aracısının adını görüntüle

İçe aktarma ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için kullandığı hesabı, Google Cloud Platform Konsolu'ndaki İç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.

  1. Farklı çalıştırılan İçe/Dışa Aktarma işleri etiketinin yanındaki yetkilendirme hesabını görüntüleyin.

Hizmet aracısının, dışa aktarma veya içe aktarma işleminde kullanılacak Cloud Storage paketi için Storage Admin rolüne ihtiyacı vardır.

Projeniz için gcloud kurun

İçe ve dışa aktarma işlemlerini Google Cloud Platform Konsolu veya gcloud komut satırı aracı aracılığıyla başlatabilirsiniz. gcloud kullanmak için komut satırı aracını kurun ve projenize aşağıdaki yollardan biriyle bağlanın:

Verileri dışa aktar

Dışa aktarma işlemi, veritabanınızdaki belgeleri Cloud Storage paketindeki bir dizi dosyaya 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şlem çalışırken yapılan değişiklikleri içerebilir.

Tüm belgeleri dışa aktar

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. Dışa Aktar'ı tıklayın.

  5. Tüm veritabanını dışa aktar seçeneğine tıklayın.

  6. Hedef Seçin altında, bir Cloud Storage paketinin adını girin veya bir paket seçmek için Gözat düğmesini kullanın.

  7. Dışa Aktar'ı tıklayın.

Konsol İçe/Dışa Aktarma sayfasına geri döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe aktarma ve dışa aktarmalar sayfasına bir giriş ekler. Başarısızlık durumunda sayfada bir hata mesajı görüntülenir.

gcloud

Veritabanınızdaki tüm belgeleri dışa aktarmak için firestore export komutunu kullanın ve [BUCKET_NAME] kısmını Cloud Storage paketinizin adıyla değiştirin. gcloud aracının işlemin tamamlanmasını beklemesini önlemek için --async bayrağını ekleyin.

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

Aşağıdakileri değiştirin:

  • BUCKET_NAME : paket adından sonra bir dosya öneki ekleyerek dışa aktarmalarınızı düzenleyin; örneğin, BUCKET_NAME/my-exports-folder/export-name . Bir 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ışarı aktarmak istediğiniz veritabanının adı. Varsayılan veritabanı için --database='(default)' kullanın.

Bir dışa aktarma işlemi başlattığınızda terminalin kapatılması işlemi iptal etmez, bkz . işlemin iptal edilmesi .

Belirli koleksiyonları dışa aktar

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. Dışa Aktar'ı tıklayın.

  5. Bir veya daha fazla koleksiyon grubunu dışa aktar seçeneğine tıklayın. Bir veya daha fazla koleksiyon grubunu seçmek için açılır menüyü kullanın.

  6. Hedef Seçin altında, bir Cloud Storage paketinin adını girin veya bir paket seçmek için Gözat düğmesini kullanın.

  7. Dışa Aktar'ı tıklayın.

Konsol İçe/Dışa Aktarma sayfasına geri döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe aktarma ve dışa aktarmalar sayfasına bir giriş ekler. Başarısızlık durumunda sayfada bir hata mesajı görüntülenir.

gcloud

Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids bayrağını kullanın. İşlem yalnızca verilen koleksiyon kimliklerine sahip koleksiyon gruplarını dışa aktarır. Koleksiyon grubu, belirtilen koleksiyon kimliğine sahip tüm koleksiyonları ve alt koleksiyonları (herhangi bir yoldaki) içerir.

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

Örneğin, foo veritabanındaki bir restaurants koleksiyonunu, ratings , reviews veya outlets gibi birden çok alt koleksiyonu içerecek şekilde tasarlayabilirsiniz. Belirli koleksiyon restaurants ve reviews dışa aktarmak için komutunuz aşağıdaki gibi görünür:

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

PITR zaman damgasından dışa aktarma

gcloud firestore export komutunu kullanarak veritabanınızı PITR verilerinden Cloud Storage'a aktarabilirsiniz. Zaman damgasının son yedi gün içindeki tam dakikalık bir zaman damgası olduğu ancak earliestVersionTime değerinden daha erken olmadığı PITR verilerini dışa aktarabilirsiniz. Veriler belirtilen zaman damgasında artık mevcut değilse dışarı aktarma işlemi başarısız olur.

PITR dışa aktarma işlemi, tüm belgelerin dışa aktarılması ve belirli koleksiyonların dışa aktarılması da dahil olmak üzere tüm filtreleri destekler.

  1. Anlık snapshot-time parametresini istenen kurtarma zaman damgasına belirterek veritabanını dışa aktarın.

    gcloud

    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] \
        --collection-ids=[COLLECTION_IDS] \
        --namespace-ids=[NAMESPACE_IDS]
    

    Nerede,

    • PITR_TIMESTAMP - dakika ayrıntı düzeyinde bir PITR zaman damgası, örneğin 2023-05-26T10:20:00.00Z .

    PITR verilerini dışa aktarmadan önce aşağıdaki noktalara dikkat edin:

    • Zaman damgasını RFC 3339 biçiminde belirtin. Örneğin, 2020-09-01T23:59:30.234233Z .
    • Belirttiğiniz zaman damgasının son yedi gün içindeki tam dakikalık bir zaman damgası olduğundan, ancak earliestVersionTime değerinden daha erken olmadığından emin olun. Veriler belirtilen zaman damgasında artık mevcut değilse bir hata oluşturulur.
    • Başarısız bir PITR dışa aktarımı için sizden ücret alınmaz.

Verileri içe aktar

Cloud Storage'da dosyalarınızı dışa aktardıktan sonra bu dosyalardaki belgeleri 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 geçerli dizin tanımları kullanılarak güncellenir. Dışa aktarma, dizin tanımları içermez.

  • İçe aktarma işlemleri yeni belge kimlikleri atamaz. İçe aktarma işlemleri, dışa aktarma sırasında yakalanan kimlikleri kullanır. Bir belge içe aktarılırken, kimlik çakışmalarını önlemek için belgenin kimliği ayrılır. Aynı kimliğe sahip bir belge zaten mevcutsa içe aktarma işlemi mevcut belgenin üzerine yazılır.

  • Veritabanınızdaki bir belge içe aktarma işleminden etkilenmiyorsa, içe aktarma sonrasında veritabanınızda kalacaktır.

  • İçe aktarma işlemleri Cloud Functions'ı tetiklemez. Anlık görüntü dinleyicileri içe aktarma işlemleriyle ilgili güncellemeleri alır.

  • .overall_export_metadata dosya 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_metadata

    Bir dışa aktarmanın çıktı dosyalarını taşırsanız veya kopyalarsanız PARENT_FOLDER_NAME ve .overall_export_metadata dosya adını aynı tutun.

Bir dışa aktarma işleminden tüm belgeleri içe aktarın

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. İçe Aktar'ı tıklayın.

  5. Dosya adı alanına, tamamlanmış bir dışa aktarma işlemindeki .overall_export_metadata dosyasının dosya adını girin. Dosyayı seçmenize yardımcı olması için Gözat düğmesini kullanabilirsiniz.

  6. İçe Aktar'ı tıklayın.

Konsol İçe/Dışa Aktarma sayfasına geri döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe aktarma ve dışa aktarmalar sayfasına bir giriş ekler. Başarısızlık durumunda sayfada bir hata mesajı görüntülenir.

gcloud

Önceki bir dışa aktarma işleminden belgeleri içe aktarmak için firestore import komutunu kullanın.

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

Aşağıdakileri 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 Platform Konsolu'ndaki Cloud Storage tarayıcısında doğrulayabilirsiniz:

Cloud Storage tarayıcısını açın

Bir içe aktarma işlemi başlattığınızda terminali kapatmak işlemi iptal etmez, bkz . işlemin iptal edilmesi .

Belirli koleksiyonları içe aktar

Google Bulut Konsolu

Konsolda belirli koleksiyonları seçemezsiniz. Bunun yerine gcloud kullanın.

gcloud

Belirli koleksiyon gruplarını bir dizi dışa aktarma dosyasından içe aktarmak için --collection-ids bayrağını kullanın. İşlem yalnızca verilen koleksiyon kimliklerine sahip koleksiyon gruplarını içe aktarır. Koleksiyon grubu, belirtilen koleksiyon kimliğine sahip tüm koleksiyonları ve alt koleksiyonları (herhangi bir yoldaki) içerir. --database bayrağını kullanarak veritabanı adını belirtin. Varsayılan veritabanı için --database='(default)' kullanın.

Yalnızca belirli koleksiyon gruplarının dışa aktarımı, belirli koleksiyon gruplarının içe aktarılmasını destekler. Tüm belgelerin dışa aktarımından belirli koleksiyonları içe aktaramazsınız.

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

PITR dışa aktarımını içe aktarma

Dışa aktarılan veritabanınızı içe aktarmak için Tüm belgeleri içe aktarma bölümündeki adımları kullanın. Veritabanınızda zaten herhangi bir belge varsa, üzerine yazılacaktır.

İhracat ve ithalat operasyonlarını yönetmek

Bir dışa aktarma veya içe aktarma işlemi başlattıktan sonra Cloud Firestore, işleme benzersiz bir ad atar. İşlemi silmek, iptal etmek veya durum kontrolünü yapmak 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 bir işlem adı belirlerken öneki dışarıda bırakabilirsiniz.

Tüm ihracat ve ithalat işlemlerini listeleyin

Google Bulut Konsolu

En son dışa aktarma ve içe aktarma işlemlerinin listesini Google Cloud Platform Konsolunun İçe Aktarma/Dışa Aktarma sayfasında görüntüleyebilirsiniz.

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

gcloud

Çalışan ve yakın zamanda tamamlanan tüm dışa aktarma ve içe aktarma işlemlerini görmek için operations list komutunu kullanın:

gcloud firestore operations list

Çalışma durumunu kontrol edin

Google Bulut Konsolu

Yakın zamanda yapılan bir dışa aktarma veya içe aktarma işleminin durumunu Google Cloud Platform Console'un İçe Aktarma/Dışa Aktarma sayfasında görüntüleyebilirsiniz.

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

gcloud

Bir dışa aktarma 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 edin

Uzun süredir devam eden bir işlemin durumuna yönelik bir istek, workEstimated ve workCompleted metriklerini döndürür. Bu metriklerin her biri, hem bayt sayısı hem de varlık sayısı cinsinden döndürülür:

  • workEstimated bir işlemin işleyeceği tahmini toplam bayt ve belge sayısını gösterir. Cloud Firestore bir tahminde bulunamazsa bu ölçümü atlayabilir.

  • workCompleted o ana kadar işlenen bayt ve belge sayısını gösterir. İşlem tamamlandıktan sonra değer, gerçekte işlenen toplam bayt ve belge sayısını gösterir; bu, workEstimated değerinden daha büyük olabilir.

İşi böl workEstimated göre workCompleted kaba bir ilerleme tahmini için tahmin edilir. Bu tahmin, istatistiklerin toplanmasının gecikmesine bağlı olduğundan hatalı olabilir.

Bir işlemi iptal etme

Google Bulut Konsolu

Devam eden bir dışa aktarma veya içe aktarma işlemini Google Cloud Platform Konsolunun İçe Aktarma/Dışa Aktarma sayfasında iptal edebilirsiniz.

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

Son içe aktarmalar ve dışa aktarmalar tablosunda, şu anda yürütülen işlemler Tamamlandı sütununda bir İptal düğmesi içerir. İşlemi durdurmak için İptal düğmesine tıklayın. İşlem tamamen durduğunda düğme İptal ediliyor mesajına ve ardından İ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]

Çalışan bir işlemin iptal edilmesi işlemi geri almaz. İptal edilen bir dışa aktarma işlemi, belgeleri Cloud Storage'da zaten dışa aktarılmış halde bırakır ve iptal edilen bir içe aktarma işlemi, veritabanınızda önceden yapılmış olan güncellemeleri olduğu gibi bırakır. Kısmen tamamlanmış bir dışa aktarımı içe aktaramazsınız.

Bir işlemi silme

Bir işlemi son işlemler listesinden kaldırmak için gcloud firestore operations delete komutunu kullanın. Bu komut, dışa aktarma dosyalarını Cloud Storage'dan silmez.

gcloud firestore operations delete [OPERATION_NAME]

İhracat ve ithalat işlemleri için faturalandırma ve fiyatlandırma

Yönetilen dışa aktarma ve içe aktarma hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.

Dışa aktarma ve içe aktarma işlemleri, belge okuma ve yazma işlemleri için Cloud Firestore fiyatlandırmasında listelenen ücretler üzerinden ücretlendirilir. Dışa aktarma işlemleri, dışa aktarılan belge başına bir okuma işlemi gerektirir. İçe aktarma işlemleri, içe aktarılan belge başına bir yazma işlemi gerektirir.

Cloud Storage'da depolanan çıkış dosyaları , Cloud Storage veri depolama maliyetlerinize dahil edilir.

İhracat ve ithalat işlemlerinin maliyetleri harcama limitinize dahil edilmez. Dışa aktarma veya içe aktarma işlemleri, tamamlanana kadar Google Cloud bütçe uyarılarınızı tetiklemez. Benzer şekilde, dışa aktarma veya içe aktarma işlemi sırasında gerçekleştirilen okuma ve yazma işlemleri, işlem tamamlandıktan sonra günlük kotanıza uygulanır. Dışa ve içe aktarma işlemleri, konsolun kullanım bölümünde gösterilen kullanımı etkilemeyecektir.

İhracat ve ithalat maliyetlerini görüntüleme

Dışa aktarma ve içe aktarma işlemleri, faturalanan işlemlere goog-firestoremanaged:exportimport etiketini uygular. Bulut Faturalandırma raporları sayfasında , içe ve dışa aktarma işlemleriyle ilgili maliyetleri görüntülemek için bu etiketi kullanabilirsiniz:

Filtreler menüsünden goog-firestoremanaged etiketine erişin.

BigQuery'ye aktar

Bir Cloud Firestore dışa aktarımından BigQuery'ye veri yükleyebilirsiniz, ancak bunu yalnızca bir collection-ids filtresi belirtmiş olmanız gerekir. Bkz. Cloud Firestore dışa aktarmalarından veri yükleme .

BigQuery sütun sınırı

BigQuery, tablo başına 10.000 sütunluk bir 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 haline gelir.

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 getirirse verileri BigQuery'ye yükleyebilirsiniz ancak harita alanları içindeki 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 bir BigQuery şeması oluşturmaz ve bu şemanın verilerini BigQuery'ye yükleyemezsiniz.

Format ve meta veri dosyalarını dışa aktarma

Yönetilen bir dışa aktarmanın çıktısı 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ın kodunu protoc protokol derleyicisiyle çö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ı geçişi

Cloud Firestore, içe ve dışa aktarma işlemlerini yetkilendirmek için App Engine hizmet hesabını kullanmak yerine bir 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çiş yapmak için bu bölümdeki talimatları izlemenizi öneririz.

App Engine hizmet hesabı
PROJECT_ID @appspot.gserviceaccount.com

Cloud Firestore hizmet aracısı, Cloud Firestore'a özel olduğundan tercih edilir. App Engine hizmet hesabı birden fazla hizmet tarafından paylaşılıyor.

Yetkilendirme hesabını görüntüle

Google Cloud Platform Console'daki İçe/Dışa Aktarma sayfasından içe ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için hangi hesabı kullandığını görüntüleyebilirsiniz. Ayrıca veritabanınızın zaten Cloud Firestore hizmet aracısını kullanıp kullanmadığını da görüntüleyebilirsiniz.

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.
  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. Farklı çalıştırılan İçe/Dışa Aktarma işleri etiketinin yanındaki yetkilendirme hesabını görüntüleyin.

Projeniz Cloud Firestore hizmet aracısını kullanmıyorsa aşağıdaki tekniklerden birini kullanarak Cloud Firestore hizmet aracısına geçiş yapabilirsiniz:

Bu tekniklerden ilki tercih edilir çünkü etki kapsamını tek bir Cloud Firestore projesine yerelleştirir. İkinci teknik, mevcut Cloud Storage paket izinlerini taşımadığı için tercih edilmiyor. Ancak kuruluş düzeyinde güvenlik uyumluluğu sunar.

Cloud Storage paketi izinlerini kontrol edip güncelleyerek geçiş yapın

Geçiş sürecinin iki adımı vardır:

  1. Cloud Storage paketi izinlerini güncelleyin. Ayrıntılar için aşağıdaki bölüme bakın.
  2. Cloud Firestore hizmet aracısına geçişi onaylayın.

Hizmet aracısı paketi izinleri

Başka bir projede Cloud Storage paketini kullanan herhangi bir dışa aktarma veya içe aktarma işlemi için, o paket için Cloud Firestore hizmet aracısı izinlerini vermeniz gerekir. Örneğin, verileri başka bir projeye taşıyan operasyonların, söz konusu diğer projedeki bir pakete erişmesi gerekir. Aksi takdirde bu işlemler Cloud Firestore hizmet aracısına geçiş sonrasında 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 sağlamak 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 bir 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.

Bir projeyi Firestore Hizmet Aracısına geçirme

App Engine hizmet hesabından Cloud Firestore hizmet aracısına geçiş yapmak için aşağıdaki adımları tamamlayın. Taşıma işlemi tamamlandıktan sonra geri alınamaz.

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.
  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. Projeniz henüz Cloud Firestore hizmet aracısına taşınmamışsa, geçişi açıklayan bir başlık ve Paket Durumunu Kontrol Et düğmesini görürsünüz. Bir sonraki adım, olası izin hatalarını belirlemenize ve düzeltmenize yardımcı olur.

    Paket Durumunu Kontrol Et'i tıklayın.

    Taşıma işleminizi tamamlama seçeneğinin ve Cloud Storage paketlerinin listesinin yer aldığı bir menü görünür. Listenin yüklenmesinin tamamlanması birkaç dakika sürebilir.

    Bu liste, 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 paketleri içerir.

  5. Projenizin Cloud Firestore hizmet aracısının asıl adını not edin. Servis aracısı adı, etikete erişim sağlamak için Servis aracısı altında görünür.
  6. Gelecekteki içe veya dışa aktarma işlemleri için kullanacağınız listedeki herhangi bir paket için aşağıdaki adımları tamamlayın:

    1. Bu paketin tablo satırında Düzelt'i tıklayın. Bu, söz konusu paketin izinler sayfasını yeni bir sekmede açar.

    2. Ekle'yi tıklayın.
    3. Yeni sorumlular alanına Cloud Firestore hizmet aracınızın adını girin.
    4. Bir rol seçin alanında, Servis Aracıları > Firestore Servis Aracısı öğesini seçin.
    5. Kaydet'i tıklayın.
    6. Cloud Firestore İçe/Dışa Aktarma sayfasının bulunduğu sekmeye dönün.
    7. Listedeki diğer paketler için bu adımları tekrarlayın. Listenin tüm sayfalarını görüntülediğinizden emin olun.
  7. Firestore Service Agent'a Geçir öğesine tıklayın. Hala izin kontrolleri başarısız olan paketleriniz varsa Taşı'yı tıklayarak taşıma işleminizi onaylamanız gerekir.

    Geçişiniz tamamlandığında bir uyarı sizi bilgilendirir. Taşıma işlemi geri alınamaz.

Taşıma durumunu görüntüle

Projenizin geçiş durumunu doğrulamak için:

  1. Google Cloud Platform Console'da Veritabanları sayfasına gidin.

    Veritabanlarına Git

  2. Veritabanları listesinden gerekli veritabanını seçin.
  3. Gezinme menüsünde İçe/Dışa Aktar'ı tıklayın.

  4. Etiket olarak çalıştırılan İçe/Dışa Aktarma işlerinin yanındaki sorumluyu arayın.

    Asıl sorumlu service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com ise projeniz zaten Cloud Firestore hizmet aracısına 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 başlık görünür. Geçişi tamamlamak için Firestore hizmet aracısına geçiş konusuna bakın.

Kuruluş çapında bir politika kısıtlaması ekleyin

  • Kuruluşunuzun politikasında aşağıdaki kısıtlamayı ayarlayın:

    İçe/dışa aktarma için Firestore Hizmet Aracısı'nı zorunlu kılın ( firestore.requireP4SAforImportExport ).

    Bu kısıtlama, istekleri yetkilendirmek için içe ve dışa aktarma işlemlerinin Cloud Firestore hizmet aracısını kullanmasını gerektirir. Bu kısıtlamayı ayarlamak için bkz. Kuruluş ilkelerini oluşturma ve yönetme .

Bu kuruluş ilkesi kısıtlamasının uygulanması, Cloud Firestore hizmet aracısı için uygun Cloud Storage grubu izinlerini otomatik olarak vermez.

Kısıtlama herhangi bir içe veya dışa aktarma iş akışı için izin hataları oluşturursa, varsayılan hizmet hesabını kullanmaya geri dönmek için bunu devre dışı bırakabilirsiniz. Cloud Storage paketi izinlerini kontrol edip güncelledikten sonra kısıtlamayı tekrar etkinleştirebilirsiniz.