تصدير واستيراد البيانات

يمكنك استخدام خدمة التصدير والاستيراد المُدارة من 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 Firestore الخاصة بك . لا يمكنك استخدام حاوية "الطلب يدفع" لعمليات التصدير والاستيراد.
  3. تأكد من أن حسابك لديه الأذونات اللازمة لـ Cloud Firestore وCloud Storage. إذا كنت مالك المشروع، فإن حسابك لديه الأذونات المطلوبة. بخلاف ذلك، تمنح الأدوار التالية الأذونات اللازمة لعمليات التصدير والاستيراد وللوصول إلى Cloud Storage:

أذونات وكيل الخدمة

تستخدم عمليات التصدير والاستيراد وكيل خدمة Cloud Firestore لتخويل عمليات التخزين السحابي. يستخدم وكيل خدمة Cloud Firestore اصطلاح التسمية التالي:

وكيل خدمة Cloud Firestore
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

لمعرفة المزيد حول وكلاء الخدمة، راجع وكلاء الخدمة .

يتطلب وكيل خدمة Cloud Firestore الوصول إلى مجموعة Cloud Storage المستخدمة في عملية التصدير أو الاستيراد. إذا كانت حاوية Cloud Storage موجودة في نفس المشروع مثل قاعدة بيانات Cloud Firestore، فيمكن لوكيل خدمة Cloud Firestore الوصول إلى الحاوية افتراضيًا .

إذا كانت حاوية التخزين السحابي موجودة في مشروع آخر، فيجب عليك منح وكيل خدمة Cloud Firestore حق الوصول إلى حاوية التخزين السحابي.

تعيين الأدوار لوكيل الخدمة

يمكنك استخدام أداة سطر الأوامر 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 Console أو أداة سطر أوامر gcloud . لاستخدام gcloud ، قم بإعداد أداة سطر الأوامر واتصل بمشروعك بإحدى الطرق التالية:

تصدير البيانات

تقوم عملية التصدير بنسخ المستندات الموجودة في قاعدة البيانات الخاصة بك إلى مجموعة من الملفات في مجموعة التخزين السحابي. لاحظ أن التصدير ليس لقطة قاعدة بيانات دقيقة تم التقاطها في وقت بدء التصدير. قد تتضمن عملية التصدير التغييرات التي تم إجراؤها أثناء تشغيل العملية.

تصدير كافة المستندات

جوجل السحابية وحدة التحكم

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. انقر فوق تصدير .

  5. انقر فوق خيار تصدير قاعدة البيانات بأكملها .

  6. أسفل اختيار الوجهة ، أدخل اسم حاوية التخزين السحابي أو استخدم الزر "استعراض" لتحديد الحاوية.

  7. انقر فوق تصدير .

تعود وحدة التحكم إلى صفحة الاستيراد/التصدير . إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. عند الفشل، تعرض الصفحة رسالة خطأ.

com.gcloud

استخدم أمر firestore export لتصدير جميع المستندات الموجودة في قاعدة البيانات الخاصة بك، مع استبدال [BUCKET_NAME] باسم مجموعة التخزين السحابي الخاصة بك. أضف علامة --async لمنع أداة gcloud من انتظار اكتمال العملية.

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

استبدل ما يلي:

  • BUCKET_NAME : قم بتنظيم عمليات التصدير الخاصة بك عن طريق إضافة بادئة ملف بعد اسم الحاوية، على سبيل المثال، BUCKET_NAME/my-exports-folder/export-name . إذا لم تقم بتوفير بادئة ملف، فستقوم خدمة التصدير المُدارة بإنشاء بادئة بناءً على الطابع الزمني الحالي.

  • DATABASE : اسم قاعدة البيانات التي تريد تصدير المستندات منها. بالنسبة لقاعدة البيانات الافتراضية، استخدم --database='(default)' .

بمجرد بدء عملية التصدير، فإن إغلاق الجهاز لا يلغي العملية، راجع إلغاء العملية .

تصدير مجموعات محددة

جوجل السحابية وحدة التحكم

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. انقر فوق تصدير .

  5. انقر فوق خيار تصدير مجموعة تجميع واحدة أو أكثر . استخدم القائمة المنسدلة لتحديد مجموعة تجميع واحدة أو أكثر.

  6. أسفل اختيار الوجهة ، أدخل اسم حاوية التخزين السحابي أو استخدم الزر "استعراض" لتحديد الحاوية.

  7. انقر فوق تصدير .

تعود وحدة التحكم إلى صفحة الاستيراد/التصدير . إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. عند الفشل، تعرض الصفحة رسالة خطأ.

com.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

يمكنك تصدير قاعدة بياناتك إلى Cloud Storage من بيانات PITR باستخدام أمر gcloud firestore export . يمكنك تصدير بيانات PITR حيث يكون الطابع الزمني عبارة عن طابع زمني لدقيقة كاملة خلال الأيام السبعة الماضية، ولكن ليس قبل أقدم إصدار من earliestVersionTime . إذا لم تعد البيانات موجودة في الطابع الزمني المحدد، فستفشل عملية التصدير.

تدعم عملية تصدير PITR جميع المرشحات، بما في ذلك تصدير جميع المستندات وتصدير مجموعات محددة.

  1. قم بتصدير قاعدة البيانات، مع تحديد معلمة snapshot-time إلى الطابع الزمني للاسترداد المطلوب.

    com.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 الفاشل.

بيانات الاستيراد

بمجرد تصدير الملفات في Cloud Storage، يمكنك استيراد المستندات الموجودة في تلك الملفات مرة أخرى إلى مشروعك أو إلى مشروع آخر. لاحظ النقاط التالية حول عمليات الاستيراد:

  • عند استيراد البيانات، يتم تحديث الفهارس المطلوبة باستخدام تعريفات الفهرس الحالية لقاعدة البيانات الخاصة بك. لا يحتوي التصدير على تعريفات الفهرس.

  • لا تقوم عمليات الاستيراد بتعيين معرفات مستندات جديدة. تستخدم الواردات المعرفات التي تم التقاطها في وقت التصدير. أثناء استيراد مستند، يتم حجز معرفه لمنع تضارب المعرفات. إذا كان هناك مستند بنفس المعرف موجود بالفعل، فستحل عملية الاستيراد محل المستند الموجود.

  • إذا لم يتأثر مستند في قاعدة البيانات الخاصة بك بالاستيراد، فسيظل في قاعدة البيانات الخاصة بك بعد الاستيراد.

  • لا تؤدي عمليات الاستيراد إلى تشغيل وظائف السحابة. يتلقى مستمعو اللقطات تحديثات تتعلق بعمليات الاستيراد.

  • يجب أن يتطابق اسم الملف .overall_export_metadata مع اسم المجلد الأصلي الخاص به:

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

    إذا قمت بنقل ملفات الإخراج الخاصة بعملية تصدير أو نسخها، فاحتفظ باسم الملف PARENT_FOLDER_NAME و .overall_export_metadata كما هو.

استيراد كافة المستندات من التصدير

جوجل السحابية وحدة التحكم

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. انقر فوق استيراد .

  5. في الحقل اسم الملف ، أدخل اسم الملف لملف .overall_export_metadata من عملية تصدير مكتملة. يمكنك استخدام الزر "استعراض" لمساعدتك في تحديد الملف.

  6. انقر فوق استيراد .

تعود وحدة التحكم إلى صفحة الاستيراد/التصدير . إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. عند الفشل، تعرض الصفحة رسالة خطأ.

com.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 Console:

افتح متصفح التخزين السحابي

بمجرد بدء عملية الاستيراد، فإن إغلاق الجهاز لا يلغي العملية، راجع إلغاء العملية .

استيراد مجموعات محددة

جوجل السحابية وحدة التحكم

لا يمكنك تحديد مجموعات معينة في وحدة التحكم. استخدم gcloud بدلاً من ذلك.

com.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 Platform.

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

com.gcloud

استخدم أمر operations list لرؤية جميع عمليات التصدير والاستيراد الجارية والمكتملة مؤخرًا:

gcloud firestore operations list

التحقق من حالة التشغيل

جوجل السحابية وحدة التحكم

يمكنك عرض حالة عملية التصدير أو الاستيراد الأخيرة في صفحة الاستيراد/التصدير في وحدة تحكم Google Cloud Platform.

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

com.gcloud

استخدم الأمر operations describe لإظهار حالة عملية التصدير أو الاستيراد.

gcloud firestore operations describe [OPERATION_NAME]

تقدير وقت الانتهاء

يؤدي طلب حالة العملية طويلة الأمد إلى إرجاع المقاييس workEstimated و workCompleted . يتم إرجاع كل من هذه المقاييس بعدد البايتات وعدد الكيانات:

  • يعرض workEstimated العدد الإجمالي المقدر للبايتات والمستندات التي ستعالجها العملية. قد يحذف Cloud Firestore هذا المقياس إذا لم يتمكن من إجراء تقدير.

  • يعرض workCompleted عدد البايتات والمستندات التي تمت معالجتها حتى الآن. بعد اكتمال العملية، تُظهر القيمة إجمالي عدد البايتات والمستندات التي تمت معالجتها بالفعل، والتي قد تكون أكبر من قيمة workEstimated .

قم بتقسيم workCompleted على workEstimated للحصول على تقدير تقدم تقريبي. قد يكون هذا التقدير غير دقيق لأنه يعتمد على تأخر جمع الإحصائيات.

إلغاء العملية

جوجل السحابية وحدة التحكم

يمكنك إلغاء عملية تصدير أو استيراد قيد التشغيل في صفحة الاستيراد/التصدير في وحدة تحكم Google Cloud Platform.

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

في جدول عمليات الاستيراد والتصدير الأخيرة ، تتضمن العمليات الجارية حاليًا زر إلغاء في العمود مكتمل . انقر فوق الزر "إلغاء الأمر" لإيقاف العملية. يتغير الزر إلى رسالة إلغاء ثم إلى إلغاء عندما تتوقف العملية تمامًا.

com.gcloud

استخدم أمر operations cancel لإيقاف عملية قيد التقدم:

gcloud firestore operations cancel [OPERATION_NAME]

لا يؤدي إلغاء عملية قيد التشغيل إلى التراجع عن العملية. ستؤدي عملية التصدير الملغاة إلى ترك المستندات التي تم تصديرها بالفعل في Cloud Storage، وستؤدي عملية الاستيراد الملغاة إلى ترك التحديثات التي تم إجراؤها بالفعل على قاعدة بياناتك سارية. لا يمكنك استيراد تصدير مكتمل جزئيًا.

حذف عملية

استخدم أمر gcloud firestore operations delete لإزالة عملية من قائمة العمليات الأخيرة. لن يحذف هذا الأمر ملفات التصدير من Cloud Storage.

gcloud firestore operations delete [OPERATION_NAME]

الفواتير والتسعير لعمليات التصدير والاستيراد

يتعين عليك تمكين الفوترة لمشروع Google Cloud الخاص بك قبل استخدام خدمة التصدير والاستيراد المُدارة.

يتم فرض رسوم على عمليات التصدير والاستيراد مقابل قراءة المستندات وكتابتها بالأسعار المدرجة في تسعير Cloud Firestore . تتضمن عمليات التصدير عملية قراءة واحدة لكل مستند تم تصديره. تتضمن عمليات الاستيراد عملية كتابة واحدة لكل مستند مستورد.

يتم احتساب ملفات الإخراج المخزنة في Cloud Storage ضمن تكاليف تخزين بيانات Cloud Storage .

لا يتم احتساب تكاليف عمليات التصدير والاستيراد ضمن حد الإنفاق الخاص بك. لن تؤدي عمليات التصدير أو الاستيراد إلى تشغيل تنبيهات ميزانية Google Cloud إلا بعد اكتمالها. وبالمثل، يتم تطبيق عمليات القراءة والكتابة التي يتم إجراؤها أثناء عملية التصدير أو الاستيراد على حصتك اليومية بعد اكتمال العملية. لن تؤثر عمليات التصدير والاستيراد على الاستخدام الموضح في قسم الاستخدام بوحدة التحكم.

عرض تكاليف التصدير والاستيراد

تطبق عمليات التصدير والاستيراد التصنيف goog-firestoremanaged:exportimport على العمليات المفوترة. في صفحة تقارير الفوترة السحابية ، يمكنك استخدام هذه التسمية لعرض التكاليف المتعلقة بعمليات الاستيراد والتصدير:

قم بالوصول إلى التصنيف goog-firestoremanaged من قائمة المرشحات.

تصدير إلى 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 مسبقًا حساب الخدمة الافتراضي لـ App Engine بدلاً من وكيل خدمة Cloud Firestore. إذا كانت قاعدة بياناتك لا تزال تستخدم حساب خدمة App Engine لاستيراد البيانات أو تصديرها، فنوصيك باتباع الإرشادات الواردة في هذا القسم للانتقال إلى استخدام وكيل خدمة Cloud Firestore.

حساب خدمة محرك التطبيقات
PROJECT_ID @appspot.gserviceaccount.com

يُفضل وكيل خدمة Cloud Firestore لأنه خاص بـ Cloud Firestore. تتم مشاركة حساب خدمة App Engine بواسطة أكثر من خدمة.

عرض حساب الترخيص

يمكنك عرض الحساب الذي تستخدمه عمليات الاستيراد والتصدير الخاصة بك لتخويل الطلبات من صفحة الاستيراد/التصدير في وحدة تحكم Google Cloud Platform. يمكنك أيضًا معرفة ما إذا كانت قاعدة البيانات الخاصة بك تستخدم بالفعل وكيل خدمة Cloud Firestore.

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. اعرض حساب الترخيص بجوار تشغيل وظائف الاستيراد/التصدير كتسمية.

إذا كان مشروعك لا يستخدم وكيل خدمة Cloud Firestore، فيمكنك الترحيل إلى وكيل خدمة Cloud Firestore باستخدام أي من التقنيات التالية:

يُفضل استخدام أول هذه التقنيات لأنه يقوم بترجمة نطاق التأثير إلى مشروع Cloud Firestore واحد. الأسلوب الثاني غير مفضل لأنه لا يقوم بترحيل أذونات حاوية التخزين السحابي الموجودة. ومع ذلك، فهو يوفر الامتثال الأمني ​​على مستوى المؤسسة.

قم بالترحيل عن طريق التحقق من أذونات مجموعة Cloud Storage وتحديثها

تتكون عملية الترحيل من خطوتين:

  1. قم بتحديث أذونات مجموعة التخزين السحابي. انظر القسم التالي للحصول على التفاصيل.
  2. قم بتأكيد الترحيل إلى وكيل خدمة Cloud Firestore.

أذونات مجموعة وكيل الخدمة

بالنسبة لأي عمليات تصدير أو استيراد تستخدم حاوية Cloud Storage في مشروع آخر ، يجب عليك منح أذونات وكيل خدمة Cloud Firestore لتلك الحاوية. على سبيل المثال، تحتاج العمليات التي تنقل البيانات إلى مشروع آخر إلى الوصول إلى مجموعة البيانات في ذلك المشروع الآخر. وبخلاف ذلك، ستفشل هذه العمليات بعد الترحيل إلى وكيل خدمة Cloud Firestore.

لا تتطلب عمليات الاستيراد والتصدير التي تظل ضمن نفس المشروع إجراء تغييرات على الأذونات. يمكن لوكيل خدمة Cloud Firestore الوصول إلى المجموعات الموجودة في نفس المشروع بشكل افتراضي.

قم بتحديث أذونات مجموعات Cloud Storage من المشاريع الأخرى لمنح الوصول إلى service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com وكيل الخدمة. امنح وكيل الخدمة دور Firestore Service Agent .

يمنح دور Firestore Service Agent أذونات القراءة والكتابة لحاوية التخزين السحابي. إذا كنت تريد منح أذونات القراءة فقط أو الكتابة فقط، فاستخدم دورًا مخصصًا .

تساعدك عملية الترحيل الموضحة في القسم التالي على تحديد مجموعات Cloud Storage التي قد تتطلب تحديثات الأذونات.

ترحيل مشروع إلى وكيل خدمة Firestore

أكمل الخطوات التالية للترحيل من حساب خدمة App Engine إلى وكيل خدمة Cloud Firestore. بمجرد اكتمال عملية الترحيل، لا يمكن التراجع عنها.

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. إذا لم يتم ترحيل مشروعك بعد إلى وكيل خدمة Cloud Firestore، فسترى شعارًا يصف عملية الترحيل وزر التحقق من حالة الحزمة . تساعدك الخطوة التالية على تحديد أخطاء الأذونات المحتملة وإصلاحها.

    انقر فوق التحقق من حالة الجرافة .

    تظهر قائمة تحتوي على خيار إكمال الترحيل وقائمة مجموعات التخزين السحابي. قد يستغرق الأمر بضع دقائق حتى تنتهي القائمة من التحميل.

    تتضمن هذه القائمة الحاويات التي تم استخدامها مؤخرًا في عمليات الاستيراد والتصدير، ولكنها لا تمنح حاليًا أذونات القراءة والكتابة لوكيل خدمة Cloud Firestore.

  5. قم بتدوين الاسم الرئيسي لوكيل خدمة Cloud Firestore الخاص بمشروعك. يظهر اسم وكيل الخدمة ضمن وكيل الخدمة لمنح حق الوصول إلى التسمية.
  6. بالنسبة لأي حاوية في القائمة ستستخدمها لعمليات الاستيراد أو التصدير المستقبلية، أكمل الخطوات التالية:

    1. في صف جدول هذه الحاوية، انقر فوق إصلاح . يؤدي هذا إلى فتح صفحة أذونات المجموعة في علامة تبويب جديدة.

    2. انقر فوق إضافة .
    3. في الحقل المبادئ الأساسية الجديدة ، أدخل اسم وكيل خدمة Cloud Firestore الخاص بك.
    4. في الحقل تحديد دور ، حدد وكلاء الخدمة > وكيل خدمة Firestore .
    5. انقر فوق حفظ .
    6. ارجع إلى علامة التبويب باستخدام صفحة استيراد/تصدير Cloud Firestore.
    7. كرر هذه الخطوات مع المجموعات الأخرى في القائمة. تأكد من عرض جميع صفحات القائمة.
  7. انقر فوق الترحيل إلى وكيل خدمة Firestore . إذا كان لا يزال لديك مجموعات بها فشل في التحقق من الأذونات، فستحتاج إلى تأكيد الترحيل عن طريق النقر على ترحيل .

    يُعلمك التنبيه عند اكتمال عملية الترحيل. لا يمكن التراجع عن الهجرة.

عرض حالة الترحيل

للتحقق من حالة ترحيل مشروعك:

  1. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

    اذهب إلى قواعد البيانات

  2. قم باختيار قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
  3. في قائمة التنقل، انقر فوق استيراد/تصدير .

  4. ابحث عن المدير بجوار وظائف الاستيراد/التصدير التي يتم تشغيلها كتسمية.

    إذا كان المبدأ الأساسي هو service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com ، فهذا يعني أن مشروعك قد تم ترحيله بالفعل إلى وكيل خدمة Cloud Firestore. لا يمكن التراجع عن عملية الترحيل.

    إذا لم يتم ترحيل المشروع، فسيظهر شعار في أعلى الصفحة مع زر التحقق من حالة الحزمة . راجع الترحيل إلى وكيل خدمة Firestore لإكمال الترحيل.

إضافة قيد سياسة على مستوى المؤسسة

  • قم بتعيين القيد التالي في سياسة مؤسستك:

    يلزم وكيل خدمة Firestore للاستيراد/التصدير ( firestore.requireP4SAforImportExport ).

    يتطلب هذا القيد عمليات الاستيراد والتصدير لاستخدام وكيل خدمة Cloud Firestore لتخويل الطلبات. لتعيين هذا القيد، راجع إنشاء سياسات المؤسسة وإدارتها .

لا يؤدي تطبيق قيد السياسة التنظيمية هذا تلقائيًا إلى منح أذونات مجموعة Cloud Storage المناسبة لوكيل خدمة Cloud Firestore.

إذا أدى القيد إلى إنشاء أخطاء في الأذونات لأي سير عمل للاستيراد أو التصدير، فيمكنك تعطيله للعودة إلى استخدام حساب الخدمة الافتراضي. بعد التحقق من أذونات حاوية التخزين السحابي وتحديثها ، يمكنك تمكين القيد مرة أخرى.