میتوانید از سرویس صادرات و واردات مدیریتشده Cloud Firestore برای بازیابی از حذف تصادفی دادهها و صادرات دادهها برای پردازش آفلاین استفاده کنید. شما می توانید تمام اسناد یا فقط مجموعه های خاص را صادر کنید. به همین ترتیب، می توانید تمام داده ها را از یک صادرات یا فقط مجموعه های خاص وارد کنید. داده های صادر شده از یک پایگاه داده Cloud Firestore را می توان به پایگاه داده Cloud Firestore دیگر وارد کرد. همچنین میتوانید صادرات Cloud Firestore را در BigQuery بارگیری کنید .
این صفحه نحوه صادرات و وارد کردن اسناد Cloud Firestore را با استفاده از خدمات صادرات و واردات مدیریت شده و Cloud Storage شرح می دهد. سرویس صادرات و واردات مدیریت شده Cloud Firestore از طریق ابزار خط فرمان gcloud
و Cloud Firestore API ( REST ، RPC ) در دسترس است.
قبل از اینکه شروع کنی
قبل از اینکه بتوانید از سرویس صادرات و واردات مدیریت شده استفاده کنید، باید کارهای زیر را انجام دهید:
- صورتحساب پروژه Google Cloud خود را فعال کنید. فقط پروژه های Google Cloud با فعال بودن صورتحساب می توانند از عملکرد صادرات و واردات استفاده کنند.
- یک سطل Cloud Storage برای پروژه خود در مکانی نزدیک به مکان پایگاه داده Cloud Firestore خود ایجاد کنید. شما نمی توانید از سطل Requester Pays برای عملیات صادرات و واردات استفاده کنید.
اطمینان حاصل کنید که حساب شما دارای مجوزهای لازم برای Cloud Firestore و Cloud Storage است. اگر شما مالک پروژه هستید، حساب شما دارای مجوزهای لازم است. در غیر این صورت، نقشهای زیر مجوزهای لازم را برای عملیات صادرات و واردات و دسترسی به Cloud Storage میدهند:
- نقشهای Cloud Firestore:
Owner
،Cloud Datastore Owner
یاCloud Datastore Import Export Admin
نقشهای Cloud Storage:
Owner
یاStorage Admin
- نقشهای Cloud Firestore:
مجوزهای عامل خدمات
عملیات صادرات و واردات از یک عامل خدمات 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 قدیمی.
- حساب مجوز را در کنار کارهای واردات/صادرات اجرا شده به عنوان برچسب مشاهده کنید.
عامل سرویس به نقش Storage Admin
برای سطل فضای ذخیره سازی ابری نیاز دارد تا برای عملیات صادرات یا واردات استفاده شود.
gcloud
برای پروژه خود راه اندازی کنید
میتوانید عملیات واردات و صادرات را از طریق کنسول Google Cloud Platform یا ابزار خط فرمان gcloud
آغاز کنید. برای استفاده از gcloud
، ابزار خط فرمان را راه اندازی کرده و به یکی از روش های زیر به پروژه خود متصل شوید:
با استفاده از Cloud Shell از کنسول Google Cloud Platform به
gcloud
دسترسی پیدا کنید.Cloud Shell را راه اندازی کنید
مطمئن شوید که
gcloud
برای پروژه صحیح پیکربندی شده است:gcloud config set project [PROJECT_ID]
صادرات داده ها
عملیات صادرات اسناد موجود در پایگاه داده شما را به مجموعه ای از فایل ها در یک سطل ذخیره سازی ابری کپی می کند. توجه داشته باشید که صادرات یک عکس فوری پایگاه داده دقیق نیست که در زمان شروع صادرات گرفته شده است. صادرات ممکن است شامل تغییراتی باشد که در حین اجرای عملیات انجام شده است.
صادرات تمام اسناد
Google Cloud Console
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
روی صادرات کلیک کنید.
روی گزینه Export whole database کلیک کنید.
در زیر مقصد را انتخاب کنید ، نام یک سطل فضای ذخیرهسازی ابری را وارد کنید یا از دکمه مرور برای انتخاب یک سطل استفاده کنید.
روی صادرات کلیک کنید.
کنسول به صفحه 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
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
روی صادرات کلیک کنید.
روی گزینه Export one or more collection group کلیک کنید. از منوی کشویی برای انتخاب یک یا چند گروه مجموعه استفاده کنید.
در زیر مقصد را انتخاب کنید ، نام یک سطل فضای ذخیرهسازی ابری را وارد کنید یا از دکمه مرور برای انتخاب یک سطل استفاده کنید.
روی صادرات کلیک کنید.
کنسول به صفحه 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'
داده ها را وارد کنید
هنگامی که فایلهای صادراتی را در فضای ذخیرهسازی ابری دارید، میتوانید اسناد موجود در آن فایلها را دوباره به پروژه خود یا پروژه دیگری وارد کنید. در مورد عملیات واردات به نکات زیر توجه کنید:
هنگامی که داده ها را وارد می کنید، نمایه های مورد نیاز با استفاده از تعاریف شاخص فعلی پایگاه داده شما به روز می شوند. صادرات شامل تعاریف شاخص نیست.
واردات شناسه های سند جدید را اختصاص نمی دهد. واردات از شناسه هایی استفاده می کند که در زمان صادرات ثبت شده است. همانطور که یک سند در حال وارد شدن است، شناسه آن برای جلوگیری از برخورد شناسه رزرو شده است. اگر سندی با همان شناسه از قبل وجود داشته باشد، واردات سند موجود را بازنویسی میکند.
اگر سندی در پایگاه داده شما تحت تأثیر واردات قرار نگیرد، پس از وارد کردن در پایگاه داده شما باقی خواهد ماند.
عملیات وارد کردن، عملکردهای ابری را فعال نمی کند. شنوندگان اسنپ شات به روز رسانی های مربوط به عملیات واردات را دریافت می کنند.
نام فایل
.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
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
روی Import کلیک کنید.
در قسمت Filename ، نام فایل یک فایل
.overall_export_metadata
را از یک عملیات صادرات تکمیل شده وارد کنید. می توانید از دکمه Browse برای انتخاب فایل استفاده کنید.روی 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]
مدیریت عملیات صادرات و واردات
پس از شروع یک عملیات صادرات یا واردات، Cloud Firestore یک نام منحصر به فرد را به عملیات اختصاص می دهد. می توانید از نام عملیات برای حذف، لغو یا بررسی وضعیت استفاده کنید.
نام عملیات با projects/[PROJECT_ID]/databases/(default)/operations/
است، برای مثال:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
با این حال، هنگام تعیین نام عملیات برای دستورات describe
، cancel
و delete
، می توانید پیشوند را کنار بگذارید.
لیست کلیه عملیات صادرات و واردات
Google Cloud Console
میتوانید فهرستی از عملیاتهای صادرات و واردات اخیر را در صفحه واردات/صادرات کنسول Google Cloud Platform مشاهده کنید.
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
gcloud
از دستور operations list
برای مشاهده تمام عملیات صادرات و واردات در حال اجرا و اخیراً تکمیل شده استفاده کنید:
gcloud firestore operations list
وضعیت عملکرد را بررسی کنید
Google Cloud Console
میتوانید وضعیت یک عملیات صادرات یا واردات اخیر را در صفحه واردات/صادرات کنسول Google Cloud Platform مشاهده کنید.
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی 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 لغو کنید.
در Google Cloud Platform Console، به صفحه Databases بروید.
پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی 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
برای عملیات صورتحساب اعمال میکند. در صفحه گزارشهای صورتحساب ابری ، میتوانید از این برچسب برای مشاهده هزینههای مربوط به عملیات واردات و صادرات استفاده کنید:
صادرات به 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 استفاده می کند یا خیر.
در Google Cloud Platform Console، به صفحه Databases بروید.
- پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
- حساب مجوز را در کنار کارهای واردات/صادرات اجرا شده به عنوان برچسب مشاهده کنید.
اگر پروژه شما از عامل سرویس Cloud Firestore استفاده نمی کند، می توانید با استفاده از یکی از این تکنیک ها به عامل سرویس Cloud Firestore مهاجرت کنید:
- با بررسی و بهروزرسانی مجوزهای سطل ذخیرهسازی ابری (توصیه میشود) یک پروژه را مهاجرت کنید .
- یک محدودیت خط مشی در سطح سازمان اضافه کنید که بر تمام پروژه های درون سازمان تأثیر می گذارد.
اولین مورد از این تکنیک ها ترجیح داده می شود زیرا دامنه اثر را در یک پروژه Cloud Firestore محلی می کند. تکنیک دوم ترجیح داده نمی شود زیرا مجوزهای موجود در Cloud Storage را منتقل نمی کند. با این حال، انطباق امنیتی را در سطح سازمان ارائه می دهد.
با بررسی و بهروزرسانی مجوزهای Cloud Storage، مهاجرت کنید
فرآیند مهاجرت دو مرحله دارد:
- مجوزهای سطل فضای ذخیره سازی ابری را به روز کنید. برای جزئیات بیشتر به بخش زیر مراجعه کنید.
- انتقال به عامل سرویس Cloud Firestore را تأیید کنید.
مجوزهای سطل عامل خدمات
برای هر عملیات صادرات یا واردات که از یک سطل ذخیره سازی ابری در پروژه دیگری استفاده می کند، باید مجوزهای عامل سرویس Cloud Firestore را برای آن سطل اعطا کنید. به عنوان مثال، عملیاتی که داده ها را به پروژه دیگری منتقل می کند، نیاز به دسترسی به یک سطل در آن پروژه دیگر دارد. در غیر این صورت، این عملیات پس از مهاجرت به عامل سرویس Cloud Firestore با شکست مواجه می شود.
گردشهای کاری واردات و صادرات که در یک پروژه باقی میمانند نیازی به تغییر در مجوزها ندارند. عامل سرویس Cloud Firestore می تواند به طور پیش فرض به سطل های موجود در همان پروژه دسترسی داشته باشد.
برای دسترسی به service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com
مجوزهای سطل های ذخیره سازی Cloud را از پروژه های دیگر به روز کنید. به عامل سرویس، نقش Firestore Service Agent
را اعطا کنید.
نقش Firestore Service Agent
مجوز خواندن و نوشتن را برای یک سطل ذخیرهسازی ابری اعطا میکند. اگر نیاز دارید که مجوز فقط خواندن یا فقط نوشتن بدهید، از یک نقش سفارشی استفاده کنید.
فرآیند انتقال توضیح داده شده در بخش زیر به شما کمک می کند تا سطل های Cloud Storage را شناسایی کنید که ممکن است به به روز رسانی مجوز نیاز داشته باشند.
یک پروژه را به نمایندگی خدمات آتش نشانی منتقل کنید
مراحل زیر را برای انتقال از حساب سرویس App Engine به عامل سرویس Cloud Firestore انجام دهید. پس از تکمیل، انتقال قابل واگرد نیست.
در Google Cloud Platform Console، به صفحه Databases بروید.
- پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
اگر پروژه شما هنوز به عامل سرویس Cloud Firestore منتقل نشده است، بنری را می بینید که انتقال را توصیف می کند و دکمه وضعیت سطل بررسی را نشان می دهد . مرحله بعدی به شما کمک می کند تا خطاهای احتمالی مجوز را شناسایی و رفع کنید.
روی بررسی وضعیت سطل کلیک کنید.
یک منو با گزینه تکمیل مهاجرت و لیستی از سطل های ذخیره سازی ابری ظاهر می شود. ممکن است چند دقیقه طول بکشد تا لیست بارگیری شود.
این لیست شامل سطل هایی است که اخیراً در عملیات واردات و صادرات استفاده شده اند، اما در حال حاضر مجوز خواندن و نوشتن را به عامل خدمات Cloud Firestore نمی دهند.
- به نام اصلی عامل خدمات Cloud Firestore پروژه خود توجه کنید. نام عامل سرویس در زیر عامل سرویس برای دسترسی به برچسب ظاهر می شود.
برای هر سطل موجود در لیست که برای عملیات واردات یا صادرات آتی استفاده خواهید کرد، مراحل زیر را کامل کنید:
در ردیف جدول این سطل، روی Fix کلیک کنید. این صفحه مجوزهای آن سطل را در یک برگه جدید باز می کند.
- روی افزودن کلیک کنید.
- در قسمت New principals ، نام عامل سرویس Cloud Firestore خود را وارد کنید.
- در قسمت Select a role , Service Agents > Firestore Service Agent را انتخاب کنید.
- روی ذخیره کلیک کنید.
- با صفحه Cloud Firestore Import/Export به برگه بازگردید.
- این مراحل را برای سایر سطل های لیست تکرار کنید. مطمئن شوید که تمام صفحات لیست را مشاهده می کنید.
روی مهاجرت به Firestore Service Agent کلیک کنید. اگر هنوز سطلهایی با بررسیهای مجوز ناموفق دارید، باید مهاجرت خود را با کلیک کردن روی مهاجرت تأیید کنید.
هنگامی که مهاجرت شما کامل شد، یک هشدار به شما اطلاع می دهد. مهاجرت قابل واگرد نیست.
مشاهده وضعیت مهاجرت
برای تأیید وضعیت مهاجرت پروژه خود:
در Google Cloud Platform Console، به صفحه Databases بروید.
- پایگاه داده مورد نیاز را از لیست پایگاه های داده انتخاب کنید.
در منوی پیمایش، روی Import/Export کلیک کنید.
در کنار کارهای 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 ، میتوانید محدودیت را دوباره فعال کنید.