صادرات و واردات داده ها

می‌توانید از سرویس صادرات و واردات مدیریت‌شده Cloud Firestore برای بازیابی از حذف تصادفی داده‌ها و صادرات داده‌ها برای پردازش آفلاین استفاده کنید. شما می توانید تمام اسناد یا فقط مجموعه های خاص را صادر کنید. به همین ترتیب، می توانید تمام داده ها را از یک صادرات یا فقط مجموعه های خاص وارد کنید. داده های صادر شده از یک پایگاه داده Cloud Firestore را می توان به پایگاه داده Cloud Firestore دیگر وارد کرد. همچنین می‌توانید صادرات Cloud Firestore را در BigQuery بارگیری کنید .

این صفحه نحوه صادرات و وارد کردن اسناد Cloud Firestore را با استفاده از خدمات صادرات و واردات مدیریت شده و Cloud Storage شرح می دهد. سرویس صادرات و واردات مدیریت شده Cloud Firestore از طریق ابزار خط فرمان gcloud و Cloud Firestore API ( REST ، RPC ) در دسترس است.

قبل از اینکه شروع کنی

قبل از اینکه بتوانید از سرویس صادرات و واردات مدیریت شده استفاده کنید، باید کارهای زیر را انجام دهید:

  1. صورتحساب پروژه Google Cloud خود را فعال کنید. فقط پروژه های Google Cloud با فعال بودن صورتحساب می توانند از عملکرد صادرات و واردات استفاده کنند.
  2. یک سطل Cloud Storage برای پروژه خود در مکانی نزدیک به مکان پایگاه داده Cloud Firestore خود ایجاد کنید. شما نمی توانید از سطل Requester Pays برای عملیات صادرات و واردات استفاده کنید.
  3. اطمینان حاصل کنید که حساب شما دارای مجوزهای لازم برای Cloud Firestore و Cloud Storage است. اگر شما مالک پروژه هستید، حساب شما دارای مجوزهای لازم است. در غیر این صورت، نقش‌های زیر مجوزهای لازم را برای عملیات صادرات و واردات و دسترسی به Cloud Storage می‌دهند:

مجوزهای عامل خدمات

عملیات صادرات و واردات از یک عامل خدمات Cloud Firestore برای مجاز کردن عملیات Cloud Storage استفاده می کند. عامل خدمات Cloud Firestore از قرارداد نامگذاری زیر استفاده می کند:

عامل خدمات Cloud Firestore
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

برای اطلاعات بیشتر در مورد نمایندگی های خدمات، به نمایندگی های خدمات مراجعه کنید.

عامل خدمات Cloud Firestore نیاز به دسترسی به سطل Cloud Storage مورد استفاده در عملیات صادرات یا واردات دارد. اگر سطل Cloud Storage شما در پروژه ای مشابه با پایگاه داده Cloud Firestore شما قرار دارد، در این صورت عامل سرویس Cloud Firestore می تواند به طور پیش فرض به سطل دسترسی داشته باشد .

اگر سطل Cloud Storage در پروژه دیگری است، باید به عامل سرویس Cloud Firestore دسترسی به سطل Cloud Storage بدهید.

نقش ها را به عامل خدمات اختصاص دهید

می توانید از ابزار خط فرمان gsutil برای اختصاص یکی از نقش های زیر استفاده کنید. به عنوان مثال، برای اختصاص نقش مدیریت ذخیره‌سازی به عامل سرویس Cloud Firestore، موارد زیر را اجرا کنید:

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

شماره پروژه خود را جایگزین PROJECT_NUMBER کنید، که برای نام‌گذاری عامل سرویس Cloud Firestore شما استفاده می‌شود. برای مشاهده نام عامل سرویس، مشاهده نام عامل سرویس را ببینید.

همچنین، می‌توانید این نقش را با استفاده از کنسول GCP اختصاص دهید .

مشاهده نام عامل خدمات

می‌توانید حسابی را که عملیات واردات و صادرات شما برای تأیید درخواست‌ها از صفحه واردات/صادرات در کنسول Google Cloud Platform استفاده می‌کند، مشاهده کنید. همچنین می توانید مشاهده کنید که آیا پایگاه داده شما از عامل سرویس Cloud Firestore استفاده می کند یا از حساب سرویس App Engine قدیمی.

  1. حساب مجوز را در کنار کارهای واردات/صادرات اجرا شده به عنوان برچسب مشاهده کنید.

عامل سرویس به نقش Storage Admin برای سطل فضای ذخیره سازی ابری نیاز دارد تا برای عملیات صادرات یا واردات استفاده شود.

gcloud برای پروژه خود راه اندازی کنید

می‌توانید عملیات واردات و صادرات را از طریق کنسول Google Cloud Platform یا ابزار خط فرمان gcloud آغاز کنید. برای استفاده از gcloud ، ابزار خط فرمان را راه اندازی کرده و به یکی از روش های زیر به پروژه خود متصل شوید:

صادرات داده ها

عملیات صادرات اسناد موجود در پایگاه داده شما را به مجموعه ای از فایل ها در یک سطل ذخیره سازی ابری کپی می کند. توجه داشته باشید که صادرات یک عکس فوری پایگاه داده دقیق نیست که در زمان شروع صادرات گرفته شده است. صادرات ممکن است شامل تغییراتی باشد که در حین اجرای عملیات انجام شده است.

صادرات تمام اسناد

Google Cloud Console

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. روی صادرات کلیک کنید.

  5. روی گزینه Export whole database کلیک کنید.

  6. در زیر مقصد را انتخاب کنید ، نام یک سطل فضای ذخیره‌سازی ابری را وارد کنید یا از دکمه مرور برای انتخاب یک سطل استفاده کنید.

  7. روی صادرات کلیک کنید.

کنسول به صفحه Import/Export باز می گردد. اگر عملیات با موفقیت شروع شود، صفحه ورودی به صفحه واردات و صادرات اخیر اضافه می کند. در صورت خرابی، صفحه یک پیغام خطا نمایش می دهد.

gcloud

از فرمان firestore export برای صادر کردن تمام اسناد موجود در پایگاه داده خود استفاده کنید و نام سطل فضای ذخیره سازی ابری خود را جایگزین [BUCKET_NAME] کنید. برای جلوگیری از منتظر ماندن ابزار gcloud برای تکمیل عملیات، پرچم --async را اضافه کنید.

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

موارد زیر را جایگزین کنید:

  • BUCKET_NAME : با افزودن یک پیشوند فایل پس از نام سطل، صادرات خود را سازماندهی کنید، به عنوان مثال، BUCKET_NAME/my-exports-folder/export-name . اگر پیشوند فایلی ارائه نکنید، سرویس صادرات مدیریت شده یک پیشوند را براساس مهر زمانی فعلی ایجاد می کند.

  • DATABASE : نام پایگاه داده ای که می خواهید اسناد را از آن صادر کنید. برای پایگاه داده پیش فرض، از --database='(default)' استفاده کنید.

هنگامی که عملیات صادرات را شروع می کنید، بستن پایانه عملیات را لغو نمی کند، به لغو عملیات رجوع کنید.

صادرات مجموعه های خاص

Google Cloud Console

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. روی صادرات کلیک کنید.

  5. روی گزینه Export one or more collection group کلیک کنید. از منوی کشویی برای انتخاب یک یا چند گروه مجموعه استفاده کنید.

  6. در زیر مقصد را انتخاب کنید ، نام یک سطل فضای ذخیره‌سازی ابری را وارد کنید یا از دکمه مرور برای انتخاب یک سطل استفاده کنید.

  7. روی صادرات کلیک کنید.

کنسول به صفحه Import/Export باز می گردد. اگر عملیات با موفقیت شروع شود، صفحه ورودی به صفحه واردات و صادرات اخیر اضافه می کند. در صورت خرابی، صفحه یک پیغام خطا نمایش می دهد.

gcloud

برای صادرات گروه‌های مجموعه خاص، از پرچم --collection-ids استفاده کنید. این عملیات فقط گروه های مجموعه را با شناسه های مجموعه داده شده صادر می کند. گروه مجموعه شامل تمام مجموعه ها و زیر مجموعه ها (در هر مسیر) با شناسه مجموعه مشخص شده است.

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

به عنوان مثال، می‌توانید مجموعه‌ای restaurants را در پایگاه داده foo طراحی کنید تا مجموعه‌های فرعی متعددی مانند ratings ، reviews یا outlets را شامل شود. برای صادر کردن restaurants و reviews مجموعه خاص، دستور شما به صورت زیر است:

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

صادرات از یک مهر زمانی PITR

با استفاده از دستور gcloud firestore export می توانید پایگاه داده خود را از داده های PITR به فضای ذخیره سازی ابری صادر کنید. می‌توانید داده‌های PITR را در جایی صادر کنید که مُهر زمانی یک مُهر زمانی کامل در هفت روز گذشته باشد، اما نه زودتر از earliestVersionTime . اگر داده ها دیگر در مهر زمانی مشخص شده وجود نداشته باشند، عملیات صادرات با شکست مواجه می شود.

عملیات صادرات PITR از همه فیلترها، از جمله صادرات همه اسناد و صادرات مجموعه های خاص، پشتیبانی می کند.

  1. پایگاه داده را با مشخص کردن پارامتر snapshot-time به زمان بازیابی مورد نظر صادر کنید.

    gcloud

    دستور زیر را اجرا کنید تا پایگاه داده به سطل خود صادر کنید.

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

    جایی که،

    • PITR_TIMESTAMP - یک مهر زمانی PITR در جزئیات دقیقه، به عنوان مثال، 2023-05-26T10:20:00.00Z .

    قبل از صدور داده های PITR به نکات زیر توجه کنید:

    • مهر زمانی را در قالب RFC 3339 مشخص کنید. به عنوان مثال، 2020-09-01T23:59:30.234233Z .
    • مطمئن شوید که مهر زمانی که مشخص می‌کنید یک مهر زمانی کامل در هفت روز گذشته باشد، اما نه زودتر از earliestVersionTime . اگر داده ها دیگر در مهر زمانی مشخص شده وجود نداشته باشند، یک خطا ایجاد می شود.
    • برای صادرات ناموفق PITR هزینه ای از شما دریافت نمی شود.

داده ها را وارد کنید

هنگامی که فایل‌های صادراتی را در فضای ذخیره‌سازی ابری دارید، می‌توانید اسناد موجود در آن فایل‌ها را دوباره به پروژه خود یا پروژه دیگری وارد کنید. در مورد عملیات واردات به نکات زیر توجه کنید:

  • هنگامی که داده ها را وارد می کنید، نمایه های مورد نیاز با استفاده از تعاریف شاخص فعلی پایگاه داده شما به روز می شوند. صادرات شامل تعاریف شاخص نیست.

  • واردات شناسه های سند جدید را اختصاص نمی دهد. واردات از شناسه هایی استفاده می کند که در زمان صادرات ثبت شده است. همانطور که یک سند در حال وارد شدن است، شناسه آن برای جلوگیری از برخورد شناسه رزرو شده است. اگر سندی با همان شناسه از قبل وجود داشته باشد، واردات سند موجود را بازنویسی می‌کند.

  • اگر سندی در پایگاه داده شما تحت تأثیر واردات قرار نگیرد، پس از وارد کردن در پایگاه داده شما باقی خواهد ماند.

  • عملیات وارد کردن، عملکردهای ابری را فعال نمی کند. شنوندگان اسنپ شات به روز رسانی های مربوط به عملیات واردات را دریافت می کنند.

  • نام فایل .overall_export_metadata باید با نام پوشه والد آن مطابقت داشته باشد:

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

    اگر فایل‌های خروجی یک صادرات را منتقل یا کپی می‌کنید، نام فایل PARENT_FOLDER_NAME و .overall_export_metadata را یکسان نگه دارید.

تمام اسناد را از یک صادرات وارد کنید

Google Cloud Console

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده ها بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. روی Import کلیک کنید.

  5. در قسمت Filename ، نام فایل یک فایل .overall_export_metadata را از یک عملیات صادرات تکمیل شده وارد کنید. می توانید از دکمه Browse برای انتخاب فایل استفاده کنید.

  6. روی Import کلیک کنید.

کنسول به صفحه Import/Export باز می گردد. اگر عملیات با موفقیت شروع شود، صفحه ورودی به صفحه واردات و صادرات اخیر اضافه می کند. در صورت خرابی، صفحه یک پیغام خطا نمایش می دهد.

gcloud

از دستور firestore import برای وارد کردن اسناد از عملیات صادرات قبلی استفاده کنید.

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

موارد زیر را جایگزین کنید:

  • BUCKET_NAME/EXPORT_PREFIX : مکان فایل های صادراتی شما.

  • DATABASE : نام پایگاه داده. برای پایگاه داده پیش فرض، از --database='(default)' استفاده کنید.

مثلا:

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

می‌توانید مکان فایل‌های صادراتی خود را در مرورگر Cloud Storage در کنسول Google Cloud Platform تأیید کنید:

مرورگر Cloud Storage را باز کنید

هنگامی که عملیات واردات را شروع می کنید، بستن پایانه عملیات را لغو نمی کند، به لغو عملیات مراجعه کنید.

واردات مجموعه های خاص

Google Cloud Console

شما نمی توانید مجموعه های خاصی را در کنسول انتخاب کنید. به جای آن gcloud استفاده کنید.

gcloud

برای وارد کردن گروه های مجموعه خاص از مجموعه ای از فایل های صادراتی، از پرچم --collection-ids استفاده کنید. این عملیات فقط گروه های مجموعه را با شناسه های مجموعه داده شده وارد می کند. گروه مجموعه شامل تمام مجموعه ها و زیر مجموعه ها (در هر مسیر) با شناسه مجموعه مشخص شده است. نام پایگاه داده را با استفاده از پرچم --database مشخص کنید. برای پایگاه داده پیش فرض، از --database='(default)' استفاده کنید.

فقط صادرات گروه‌های مجموعه خاص از واردات گروه‌های مجموعه خاص پشتیبانی می‌کند. شما نمی توانید مجموعه های خاصی را از صادرات همه اسناد وارد کنید.

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

صادرات PITR را وارد کنید

از مراحل وارد کردن همه اسناد برای وارد کردن پایگاه داده صادر شده خود استفاده کنید. اگر سندی از قبل در پایگاه داده شما وجود داشته باشد، بازنویسی می شود.

مدیریت عملیات صادرات و واردات

پس از شروع یک عملیات صادرات یا واردات، Cloud Firestore یک نام منحصر به فرد را به عملیات اختصاص می دهد. می توانید از نام عملیات برای حذف، لغو یا بررسی وضعیت استفاده کنید.

نام عملیات با projects/[PROJECT_ID]/databases/(default)/operations/ است، برای مثال:

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

با این حال، هنگام تعیین نام عملیات برای دستورات describe ، cancel و delete ، می توانید پیشوند را کنار بگذارید.

لیست کلیه عملیات صادرات و واردات

Google Cloud Console

می‌توانید فهرستی از عملیات‌های صادرات و واردات اخیر را در صفحه واردات/صادرات کنسول Google Cloud Platform مشاهده کنید.

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

gcloud

از دستور operations list برای مشاهده تمام عملیات صادرات و واردات در حال اجرا و اخیراً تکمیل شده استفاده کنید:

gcloud firestore operations list

وضعیت عملکرد را بررسی کنید

Google Cloud Console

می‌توانید وضعیت یک عملیات صادرات یا واردات اخیر را در صفحه واردات/صادرات کنسول Google Cloud Platform مشاهده کنید.

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

gcloud

برای نشان دادن وضعیت یک عملیات صادرات یا واردات از دستور operations describe استفاده کنید.

gcloud firestore operations describe [OPERATION_NAME]

زمان تکمیل را تخمین بزنید

درخواست برای وضعیت یک عملیات طولانی مدت، معیارهای workEstimated و workCompleted را برمی گرداند. هر یک از این معیارها هم در تعداد بایت و هم تعداد موجودیت ها برگردانده می شود:

  • workEstimated تعداد کل تخمینی بایت ها و اسنادی را که یک عملیات پردازش می کند را نشان می دهد. اگر Cloud Firestore نتواند تخمین بزند، ممکن است این معیار را حذف کند.

  • workCompleted تعداد بایت ها و اسناد پردازش شده را نشان می دهد. پس از اتمام عملیات، مقدار تعداد کل بایت‌ها و اسنادی را نشان می‌دهد که واقعاً پردازش شده‌اند، که ممکن است بزرگتر از مقدار workEstimated باشد.

تقسیم workCompleted بر workEstimated برای تخمین پیشرفت تقریبی. این تخمین ممکن است نادرست باشد، زیرا به تأخیر در جمع آوری آمار بستگی دارد.

یک عملیات را لغو کنید

Google Cloud Console

می‌توانید یک عملیات صادرات یا واردات در حال اجرا را در صفحه واردات/صادرات کنسول Google Cloud Platform لغو کنید.

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.

  3. در منوی پیمایش، روی Import/Export کلیک کنید.

در جدول واردات و صادرات اخیر ، عملیات در حال اجرا شامل یک دکمه لغو در ستون تکمیل شده است. روی دکمه Cancel کلیک کنید تا عملیات متوقف شود. دکمه به یک پیام لغو و سپس با توقف کامل عملیات به لغو تغییر می کند.

gcloud

از دستور operations cancel برای توقف عملیات در حال انجام استفاده کنید:

gcloud firestore operations cancel [OPERATION_NAME]

لغو یک عملیات در حال اجرا، عملیات را لغو نمی کند. عملیات صادرات لغو شده، اسنادی را که قبلاً در فضای ذخیره‌سازی ابری صادر شده است، باقی می‌گذارد و عملیات واردات لغو شده، به‌روزرسانی‌هایی را که قبلاً در پایگاه داده شما انجام شده است، باقی می‌گذارد. شما نمی توانید یک صادرات نیمه تکمیل شده را وارد کنید.

یک عملیات را حذف کنید

برای حذف یک عملیات از لیست عملیات اخیر، از دستور gcloud firestore operations delete استفاده کنید. این دستور فایل های صادراتی را از فضای ذخیره سازی ابری حذف نمی کند.

gcloud firestore operations delete [OPERATION_NAME]

صورتحساب و قیمت گذاری برای عملیات صادرات و واردات

قبل از استفاده از خدمات صادرات و واردات مدیریت شده، باید صورتحساب پروژه Google Cloud خود را فعال کنید.

عملیات صادرات و واردات برای خواندن و نوشتن اسناد با نرخ های ذکر شده در قیمت گذاری Cloud Firestore محاسبه می شود. عملیات صادرات به ازای هر سند صادر شده، یک عملیات خواندن دارد. عملیات واردات به ازای هر سند وارد شده یک عملیات نوشتن دارد.

فایل های خروجی ذخیره شده در Cloud Storage جزء هزینه های ذخیره سازی داده Cloud Storage شما محسوب می شود.

هزینه های عملیات صادرات و واردات در حد هزینه شما حساب نمی شود. عملیات صادرات یا وارد کردن، هشدارهای بودجه Google Cloud شما را تا پس از تکمیل فعال نمی کند. به طور مشابه، خواندن و نوشتن انجام شده در طول عملیات صادرات یا واردات، پس از تکمیل عملیات، در سهمیه روزانه شما اعمال می شود. عملیات صادرات و واردات بر میزان استفاده نشان داده شده در بخش استفاده از کنسول تأثیری نخواهد داشت.

مشاهده هزینه های صادرات و واردات

عملیات صادرات و واردات، برچسب goog-firestoremanaged:exportimport برای عملیات صورت‌حساب اعمال می‌کند. در صفحه گزارش‌های صورت‌حساب ابری ، می‌توانید از این برچسب برای مشاهده هزینه‌های مربوط به عملیات واردات و صادرات استفاده کنید:

از منوی فیلترها به برچسب مدیریت شده توسط goog firestore دسترسی داشته باشید.

صادرات به BigQuery

می‌توانید داده‌ها را از یک صادرات Cloud Firestore در BigQuery بارگیری کنید، اما فقط در صورتی که فیلتر collection-ids مشخص کرده باشید. به بارگیری داده ها از صادرات Cloud Firestore مراجعه کنید.

محدودیت ستون BigQuery

BigQuery محدودیت 10000 ستون در هر جدول را اعمال می کند. عملیات صادرات Cloud Firestore یک طرح جدول BigQuery برای هر گروه مجموعه ایجاد می کند. در این طرح، هر نام فیلد منحصر به فرد در یک گروه مجموعه، به یک ستون طرحواره تبدیل می شود.

اگر طرح BigQuery یک گروه مجموعه از 10000 ستون فراتر رود، عملیات صادرات Cloud Firestore تلاش می کند تا با در نظر گرفتن فیلدهای نقشه به عنوان بایت، زیر حد ستون باقی بماند. اگر این تبدیل تعداد ستون‌ها را به کمتر از 10000 برساند، می‌توانید داده‌ها را در BigQuery بارگیری کنید، اما نمی‌توانید فیلدهای فرعی را در فیلدهای نقشه جستجو کنید. اگر تعداد ستون‌ها همچنان از 10000 بیشتر باشد، عملیات صادرات طرحی BigQuery برای گروه مجموعه ایجاد نمی‌کند و نمی‌توانید داده‌های آن را در BigQuery بارگیری کنید.

فرمت و فایل های ابرداده را صادر کنید

خروجی یک صادرات مدیریت شده از فرمت گزارش LevelDB استفاده می کند.

فایل های فراداده

عملیات صادرات یک فایل فراداده برای هر گروه مجموعه ای که مشخص می کنید ایجاد می کند. فایل‌های فراداده معمولاً ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata نام دارند.

فایل های ابرداده بافرهای پروتکل هستند و می توانید آنها را با کامپایلر protoc رمزگشایی کنید. به عنوان مثال، می‌توانید یک فایل فراداده را رمزگشایی کنید تا گروه‌های مجموعه‌ای را که فایل‌های صادراتی حاوی آن هستند، تعیین کنید:

protoc --decode_raw < export0.export_metadata

مهاجرت عامل خدمات

Cloud Firestore از یک عامل سرویس Cloud Firestore برای مجوز عملیات واردات و صادرات به جای استفاده از حساب سرویس App Engine استفاده می کند. عامل خدمات و حساب سرویس از قراردادهای نامگذاری زیر استفاده می کنند:

عامل خدمات Cloud Firestore
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

Cloud Firestore قبلاً به‌جای عامل سرویس Cloud Firestore از حساب سرویس پیش‌فرض App Engine استفاده می‌کرد. اگر پایگاه داده شما همچنان از حساب سرویس App Engine برای وارد کردن یا صادر کردن داده ها استفاده می کند، توصیه می کنیم دستورالعمل های این بخش را دنبال کنید تا به استفاده از عامل خدمات Cloud Firestore بروید.

حساب سرویس App Engine
PROJECT_ID @appspot.gserviceaccount.com

عامل خدمات Cloud Firestore ترجیح داده می شود زیرا مخصوص Cloud Firestore است. حساب سرویس App Engine توسط بیش از یک سرویس به اشتراک گذاشته شده است.

مشاهده حساب مجوز

می‌توانید مشاهده کنید که عملیات واردات و صادرات شما از کدام حساب برای تأیید درخواست‌ها از صفحه واردات/صادرات در کنسول Google Cloud Platform استفاده می‌کند. همچنین می توانید مشاهده کنید که آیا پایگاه داده شما قبلاً از عامل سرویس Cloud Firestore استفاده می کند یا خیر.

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده ها بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. حساب مجوز را در کنار کارهای واردات/صادرات اجرا شده به عنوان برچسب مشاهده کنید.

اگر پروژه شما از عامل سرویس Cloud Firestore استفاده نمی کند، می توانید با استفاده از یکی از این تکنیک ها به عامل سرویس Cloud Firestore مهاجرت کنید:

اولین مورد از این تکنیک ها ترجیح داده می شود زیرا دامنه اثر را در یک پروژه Cloud Firestore محلی می کند. تکنیک دوم ترجیح داده نمی شود زیرا مجوزهای موجود در Cloud Storage را منتقل نمی کند. با این حال، انطباق امنیتی را در سطح سازمان ارائه می دهد.

با بررسی و به‌روزرسانی مجوزهای Cloud Storage، مهاجرت کنید

فرآیند مهاجرت دو مرحله دارد:

  1. مجوزهای سطل فضای ذخیره سازی ابری را به روز کنید. برای جزئیات بیشتر به بخش زیر مراجعه کنید.
  2. انتقال به عامل سرویس Cloud Firestore را تأیید کنید.

مجوزهای سطل عامل خدمات

برای هر عملیات صادرات یا واردات که از یک سطل ذخیره سازی ابری در پروژه دیگری استفاده می کند، باید مجوزهای عامل سرویس Cloud Firestore را برای آن سطل اعطا کنید. به عنوان مثال، عملیاتی که داده ها را به پروژه دیگری منتقل می کند، نیاز به دسترسی به یک سطل در آن پروژه دیگر دارد. در غیر این صورت، این عملیات پس از مهاجرت به عامل سرویس Cloud Firestore با شکست مواجه می شود.

گردش‌های کاری واردات و صادرات که در یک پروژه باقی می‌مانند نیازی به تغییر در مجوزها ندارند. عامل سرویس Cloud Firestore می تواند به طور پیش فرض به سطل های موجود در همان پروژه دسترسی داشته باشد.

برای دسترسی به service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com مجوزهای سطل های ذخیره سازی ابری را از پروژه های دیگر به روز کنید. به عامل سرویس، نقش Firestore Service Agent را اعطا کنید.

نقش Firestore Service Agent مجوز خواندن و نوشتن را برای یک سطل ذخیره‌سازی ابری اعطا می‌کند. اگر نیاز دارید که مجوز فقط خواندن یا فقط نوشتن بدهید، از یک نقش سفارشی استفاده کنید.

فرآیند انتقال توضیح داده شده در بخش زیر به شما کمک می کند تا سطل های Cloud Storage را شناسایی کنید که ممکن است به به روز رسانی مجوز نیاز داشته باشند.

یک پروژه را به نمایندگی خدمات آتش نشانی منتقل کنید

مراحل زیر را برای انتقال از حساب سرویس App Engine به عامل سرویس Cloud Firestore انجام دهید. پس از تکمیل، انتقال قابل واگرد نیست.

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده ها بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. اگر پروژه شما هنوز به عامل سرویس Cloud Firestore منتقل نشده است، بنری را می بینید که انتقال را توصیف می کند و دکمه وضعیت سطل بررسی را نشان می دهد . مرحله بعدی به شما کمک می کند تا خطاهای احتمالی مجوز را شناسایی و رفع کنید.

    روی بررسی وضعیت سطل کلیک کنید.

    یک منو با گزینه تکمیل مهاجرت و لیستی از سطل های ذخیره سازی ابری ظاهر می شود. ممکن است چند دقیقه طول بکشد تا لیست بارگیری شود.

    این لیست شامل سطل هایی است که اخیراً در عملیات واردات و صادرات استفاده شده اند، اما در حال حاضر مجوز خواندن و نوشتن را به عامل خدمات Cloud Firestore نمی دهند.

  5. به نام اصلی عامل خدمات Cloud Firestore پروژه خود توجه کنید. نام عامل سرویس در زیر عامل سرویس برای دسترسی به برچسب ظاهر می شود.
  6. برای هر سطل موجود در لیست که برای عملیات واردات یا صادرات آتی استفاده خواهید کرد، مراحل زیر را کامل کنید:

    1. در ردیف جدول این سطل، روی Fix کلیک کنید. این صفحه مجوزهای آن سطل را در یک برگه جدید باز می کند.

    2. روی افزودن کلیک کنید.
    3. در قسمت New principals ، نام عامل سرویس Cloud Firestore خود را وارد کنید.
    4. در قسمت Select a role , Service Agents > Firestore Service Agent را انتخاب کنید.
    5. روی ذخیره کلیک کنید.
    6. با صفحه Cloud Firestore Import/Export به برگه بازگردید.
    7. این مراحل را برای سایر سطل های لیست تکرار کنید. مطمئن شوید که تمام صفحات لیست را مشاهده می کنید.
  7. روی مهاجرت به Firestore Service Agent کلیک کنید. اگر هنوز سطل‌هایی با بررسی‌های مجوز ناموفق دارید، باید مهاجرت خود را با کلیک کردن روی مهاجرت تأیید کنید.

    هنگامی که مهاجرت شما کامل شد، یک هشدار به شما اطلاع می دهد. مهاجرت قابل واگرد نیست.

مشاهده وضعیت مهاجرت

برای تأیید وضعیت مهاجرت پروژه خود:

  1. در Google Cloud Platform Console، به صفحه Databases بروید.

    به پایگاه داده ها بروید

  2. پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
  3. در منوی پیمایش، روی Import/Export کلیک کنید.

  4. در کنار کارهای Import/Export که به عنوان برچسب اجرا می شوند، به دنبال اصل باشید.

    اگر منبع اصلی service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com باشد، پروژه شما قبلاً به عامل خدمات Cloud Firestore منتقل شده است. مهاجرت قابل واگرد نیست.

    اگر پروژه منتقل نشده باشد، یک بنر در بالای صفحه با دکمه Check Bucket Status ظاهر می شود. برای تکمیل انتقال ، مهاجرت به عامل خدمات Firestore را ببینید.

یک محدودیت خط مشی در سطح سازمان اضافه کنید

  • محدودیت زیر را در خط مشی سازمان خود تنظیم کنید:

    برای واردات/صادرات به نمایندگی خدمات Firestore نیاز دارید ( firestore.requireP4SAforImportExport ).

    این محدودیت نیازمند عملیات واردات و صادرات برای استفاده از عامل سرویس Cloud Firestore برای تأیید درخواست‌ها است. برای تنظیم این محدودیت، به ایجاد و مدیریت خط‌مشی‌های سازمان مراجعه کنید.

اعمال این محدودیت خط مشی سازمانی به طور خودکار مجوزهای سطل ذخیره سازی ابری مناسب را برای عامل خدمات Cloud Firestore اعطا نمی کند.

اگر محدودیت برای هر گردش کار واردات یا صادرات خطاهای مجوز ایجاد کند، می‌توانید برای بازگشت به استفاده از حساب سرویس پیش‌فرض، آن را غیرفعال کنید. پس از بررسی و به‌روزرسانی مجوزهای Cloud Storage ، می‌توانید محدودیت را دوباره فعال کنید.