ייצוא וייבוא של נתונים

ניתן להשתמש בשירות הייצוא והייבוא המנוהל של 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. אי אפשר להשתמש הקטגוריה 'מגיש הבקשה משלם' לפעולות ייצוא וייבוא.
  3. חשוב לוודא שלחשבון יש את ההרשאות הדרושות כדי: 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 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 כדי צריך להקצות אחד מהתפקידים הבאים. לדוגמה, כדי להקצות את התפקיד Storage Admin מריצים את הפקודה הבאה: 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. כדי להציג את שם סוכן השירות, ראו הצגת שם סוכן השירות.

לחלופין, אפשר להקצות את התפקיד הזה באמצעות מסוף Google Cloud.

הצגת השם של סוכן השירות

אפשר לראות את החשבון שבו משתמשות פעולות הייבוא והייצוא כדי לאשר בקשות מהדף ייבוא/ייצוא במסוף Google Cloud. אפשר גם לראות אם מסד הנתונים משתמש בפונקציה Cloud Firestore סוכן השירות או חשבון השירות הקודם של App Engine.

  1. מציגים את חשבון ההרשאה ליד תווית ייבוא/ייצוא של משימות פועלות בתור.

לסוכן השירות נדרש התפקיד Storage Admin בשביל Cloud Storage של הקטגוריה שישמשו לפעולת הייצוא או הייבוא.

הגדרת gcloud לפרויקט

תוכלו להתחיל פעולות ייבוא וייצוא דרך מסוף Google Cloud או כלי שורת הפקודה gcloud. כדי להשתמש ב-gcloud, צריך להגדיר את כלי שורת הפקודה ולהתחבר לפרויקט באחת מהדרכים הבאות:

ייצוא נתונים

פעולת ייצוא מעתיקה מסמכים במסד הנתונים שלך לקבוצת קבצים קטגוריה אחת (Cloud Storage). שימו לב שייצוא הוא לא תמונת מצב מדויקת של מסד הנתונים בזמן ההתחלה של הייצוא. ייצוא עשוי לכלול שינויים שבוצעו במהלך הפעילות פעל.

ייצוא כל המסמכים

Google Cloud Console

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. לוחצים על ייצוא.

  5. לוחצים על האפשרות ייצוא כל מסד הנתונים.

  6. בקטע בחירת יעד, מזינים שם של קטגוריה Cloud Storage. או משתמשים בלחצן Browse כדי לבחור קטגוריה.

  7. לוחצים על ייצוא.

המסוף חוזר לדף ייבוא/ייצוא. אם הפעולה תתחיל בהצלחה, הדף מוסיף רשומה לדף הייבוא והייצוא האחרונים. במקרה של כשל, בדף תוצג הודעת שגיאה.

gcloud

משתמשים בפקודה firestore export כדי לייצא את כל הנתונים את המסמכים במסד הנתונים שלך, ומחליפים את [BUCKET_NAME] בשם של קטגוריה Cloud Storage. מוסיפים את הדגל --async כדי למנוע מהכלי gcloud ממתין לסיום הפעולה.

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

מחליפים את מה שכתוב בשדות הבאים:

  • BUCKET_NAME: ארגון הייצוא על ידי הוספת קידומת לקובץ אחרי שם הקטגוריה, לדוגמה BUCKET_NAME/my-exports-folder/export-name. אם המיקום לא מציינים תחילית של קובץ, שירות הייצוא המנוהל יוצר חותמת זמן על סמך חותמת הזמן הנוכחית.

  • DATABASE: שם מסד הנתונים שממנו רוצים לייצא את המסמכים. למסד הנתונים שמוגדר כברירת מחדל, משתמשים ב---database='(default)'.

אחרי שמתחילים פעולת ייצוא, סגירת המסוף לא מבטלת את הפעולה. אפשר לעיין במאמר ביטול פעולה.

ייצוא אוספים ספציפיים

Google Cloud Console

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. לוחצים על ייצוא.

  5. לוחצים על האפשרות ייצוא של קבוצת אוספים אחת או יותר. שימוש בתפריט הנפתח כדי לבחור קבוצת אוספים אחת או יותר.

  6. בקטע בחירת יעד, מזינים שם של קטגוריה Cloud Storage. או משתמשים בלחצן Browse כדי לבחור קטגוריה.

  7. לוחצים על ייצוא.

המסוף חוזר לדף ייבוא/ייצוא. אם הפעולה תתחיל בהצלחה, הדף מוסיף רשומה לדף הייבוא והייצוא האחרונים. במקרה של כשל, בדף תוצג הודעת שגיאה.

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 לחותמת הזמן הרצויה לשחזור.

    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 אם הנתונים כבר לא קיימים בטווח שצוין timestamp, נוצרת שגיאה.
    • לא נחייב אתכם על ייצוא PITR שנכשל.

ייבוא נתונים

אחרי שיוצאים קבצים ב-Cloud Storage, אפשר לייבא מסמכים מהקבצים האלה בחזרה לפרויקט או לפרויקט אחר. חשוב לזכור את הנקודות הבאות לגבי פעולות ייבוא:

  • כשאתם מייבאים נתונים, האינדקסים הנדרשים מתעדכנים לפי הגדרות האינדקס הנוכחיות של מסד הנתונים. הייצוא לא מכיל הגדרות של אינדקסים.

  • בתהליך הייבוא לא מוקצה מזהה מסמכים חדשים. הייבוא ייעשה שימוש במזהים שתועדו בכתובת זמן הייצוא. מתבצע ייבוא של המסמך, והמזהה שלו נשמר כדי למנוע התנגשויות בין המזהים. אם כבר קיים מסמך עם אותו מזהה, הייבוא יחליף את המסמך הקיים.

  • אם מסמך במסד הנתונים שלכם לא מושפע מייבוא, הוא יישאר במסד הנתונים אחרי הייבוא.

  • פעולות ייבוא לא מפעילות את Cloud Functions. מאזינים ל-Snapshot מקבלים עדכונים לגבי פעולות ייבוא.

  • השם של הקובץ .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. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. לוחצים על ייבוא.

  5. בשדה שם קובץ, מזינים את שם הקובץ של קובץ .overall_export_metadata מפעולת ייצוא שהושלמה. אפשר אפשר להשתמש בלחצן עיון כדי לבחור את הקובץ.

  6. לוחצים על ייבוא.

המסוף חוזר לדף 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:

לפתוח את דפדפן 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.

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

gcloud

צריך להשתמש בפקודה operations list כדי לראות את כל האפליקציות שפועלות וגם פעולות ייצוא וייבוא שהושלמו לאחרונה:

gcloud firestore operations list

בדיקת סטטוס הפעולה

Google Cloud Console

אפשר לראות את הסטטוס של פעולות ייצוא או ייבוא מהזמן האחרון בדף הדף ייבוא/ייצוא במסוף Google Cloud.

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

gcloud

משתמשים בפקודה operations describe כדי להציג את סטטוס הייצוא. או פעולת ייבוא.

gcloud firestore operations describe [OPERATION_NAME]

הערכת זמן ההשלמה

בקשה לסטטוס של פעולה ממושכת מחזירה את המדדים workEstimated ו-workCompleted. כל אחד מהמדדים האלה מוחזר גם במספר הבייטים וגם במספר הישויות:

  • workEstimated מציג את המספר המשוער הכולל של הבייטים והמסמכים שתהליך עיבוד יטפל בהם. Cloud Firestore עשוי להשמיט את המדד הזה אם אין אפשרות לתת הערכה.

  • workCompleted מציג את מספר הבייטים והמסמכים שעובדו עד עכשיו. בסיום הפעולה, הערך מציג את המספר הכולל של בייטים ומסמכים שעובדו בפועל, שעשויים להיות גדולים יותר של workEstimated.

צריך לחלק את workCompleted ב-workEstimated כדי לקבל אומדן התקדמות כללי. הזה ההערכה עשויה להיות לא מדויקת, כי היא תלויה בנתונים סטטיסטיים מאוחרים האוסף 'עדכונים'.

ביטול פעולה

Google Cloud Console

אפשר לבטל פעולת ייצוא או ייבוא פעילה הדף ייבוא/ייצוא במסוף Google Cloud.

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.

  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

בטבלה ייבוא וייצוא אחרונים, פועלים כרגע הפעולות כוללות לחצן ביטול בעמודה הושלם. לוחצים על ביטול כדי להפסיק את הפעולה. הלחצן ישתנה לביטול ולאחר מכן לאפשרות מבוטל כשהפעולה מפסיקה לחלוטין.

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 תווית לפעולות שמחויבות. בדף הדוחות של החיוב ב-Cloud. ניתן להשתמש בתווית זו כדי להציג עלויות שקשורות לפעולות ייבוא וייצוא:

ניתן לגשת לתווית goog-firestoremanaged מתפריט המסננים.

ייצוא אל BigQuery

אפשר לטעון נתונים מייצוא של Cloud Firestore אל BigQuery, אבל רק אם ציינתם מסנן collection-ids. צפייה המערכת טוענת נתונים מייבוא של Cloud Firestore אירועי ייצוא.

מגבלת עמודות אחת (BigQuery)

ב-BigQuery יש מגבלה של 10,000 עמודות לכל טבלה. Cloud Firestore פעולות ייצוא יוצרות טבלה של BigQuery של כל קבוצת אוספים. בסכימה הזו, כל שם שדה ייחודי בתוך קבוצת אוספים הופך לעמודה בסכימה.

אם הסכימה BigQuery של קבוצת אוספים כוללת יותר מ-10,000 עמודות, הערך של פעולת ייצוא אחת (Cloud Firestore) מנסה להישאר מתחת למגבלת העמודות על ידי התייחסות לשדות במפה כבייטים. אם ההמרה הזו מתחת ל-10,000 עמודות, אפשר לטעון את הנתונים לתוך BigQuery, אבל אי אפשר לשלוח שאילתה על שדות המשנה בשדות המפה. אם מספר העמודות עדיין חורג מ-10,000, פעולת הייצוא לא צריך ליצור סכימה של 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.

חשבון השירות App Engine
PROJECT_ID@appspot.gserviceaccount.com

עדיף להשתמש בסוכן השירות Cloud Firestore כי הוא ספציפי אל Cloud Firestore. חשבון השירות App Engine משותף ביותר משירות אחד.

צפייה בחשבון ההרשאה

בדף Import/Export במסוף Google Cloud תוכלו לראות איזה חשבון משמש את פעולות הייבוא והייצוא כדי לאשר בקשות. אפשר גם תצוגה אם מסד הנתונים שלך כבר משתמש בפונקציה Cloud Firestore סוכן שירות.

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. מציגים את חשבון ההרשאה ליד התווית ייבוא/ייצוא של משימות פועלות בתור.

אם לא משתמשים בפרויקט בסוכן השירות של Cloud Firestore, יכול לעבור לסוכן השירות של Cloud Firestore באמצעות אחד או יותר הטכניקות הבאות:

השיטה הראשונה עדיפה כי היא מבצעת התאמה לשוק המקומי את ההשפעה על פרויקט Cloud Firestore אחד. השיטה השנייה מונעת מועדפת כי היא לא מעבירה קטגוריה קיימת של Cloud Storage הרשאות. עם זאת, הוא מציע תאימות אבטחה בארגון ברמה.

העברה על ידי בדיקה ועדכון של ההרשאות של Cloud Storage בקטגוריה

תהליך ההעברה כולל שני שלבים:

  1. עדכון ההרשאות בקטגוריה Cloud Storage. אפשר לעיין בקטע הבא לגבי פרטים.
  2. יש לאשר את ההעברה לסוכן השירות של Cloud Firestore.

הרשאות בקטגוריה של סוכן השירות

לכל פעולות ייצוא או ייבוא שמשתמשות בקטגוריה Cloud Storage פרויקט אחר, עליך להעניק לסוכן השירות Cloud Firestore ההרשאות לקטגוריה הזו. לדוגמה, פעולות שמעבירות נתונים לפרויקט האחר צריכה להיות גישה לקטגוריה באותו פרויקט אחר. אחרת, הקריטריונים הפעולות נכשלות אחרי המעבר לשירות Cloud Firestore נציג של Google.

לא צריך לייבא ולייצא תהליכי עבודה שנשארים באותו פרויקט שינויים בהרשאות. לסוכן השירות של Cloud Firestore יש גישה באותו פרויקט כברירת מחדל.

עדכון ההרשאות לקטגוריות Cloud Storage מפרויקטים אחרים כדי לתת גישה אל service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com סוכן שירות. נותנים לסוכן השירות את התפקיד Firestore Service Agent.

התפקיד Firestore Service Agent מעניק הרשאות קריאה וכתיבה למשתמש קטגוריה Cloud Storage. אם צריך להעניק הרשאה לקריאה או לכתיבה בלבד הרשאות, צריך להשתמש בתפקיד בהתאמה אישית.

תהליך ההעברה שמתואר בקטע הבא עוזר לך לזהות את Cloud Storage של קטגוריות שיכול להיות שצריך לעדכן את ההרשאות שלהן.

העברת פרויקט לסוכן שירות של Firestore

כדי לעבור מחשבון השירות App Engine אל סוכן השירות של Cloud Firestore. אחרי שהיא תושלם, אי אפשר לבטל את ההעברה.

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. אם הפרויקט עדיין לא הועבר לשירות Cloud Firestore מופיע באנר שמתאר את ההעברה לחצן Check Bucket Status. השלב הבא עוזר לך לזהות לתקן שגיאות הרשאה אפשריות.

    לוחצים על Check Bucket Status.

    יופיע תפריט עם האפשרות להשלים את ההעברה רשימה של Cloud Storage קטגוריות. יכול להיות שיעברו כמה דקות עד כדי לסיים את הטעינה.

    הרשימה הזו כוללת קטגוריות שבהן נעשה שימוש לאחרונה בפעולות ייבוא וייצוא, אבל כרגע אין להן הרשאות קריאה וכתיבה בסוכנות השירות Cloud Firestore.

  5. מומלץ לרשום את השם של חשבון המשתמש ב-Cloud Firestore של הפרויקט סוכן שירות. השם של סוכן השירות מופיע מתחת לקטע התווית סוכן השירות שתיתן לו גישה.
  6. עבור כל קטגוריה ברשימה: שישמשו לפעולות ייבוא או ייצוא עתידיות, יש למלא את שלבים:

    1. בשורה של הקטגוריה הזו בטבלה, לוחצים על תיקון. דף ההרשאות של הקטגוריה ייפתח בכרטיסייה חדשה.

    2. לוחצים על הוספה.
    3. בשדה New principals, מזינים את השם של סוכן שירות Cloud Firestore.
    4. בשדה Select a role, בוחרים סוכני שירות > סוכן שירות של Firestore.
    5. לוחצים על שמירה.
    6. חוזרים לכרטיסייה עם דף הייבוא/הייצוא של Cloud Firestore.
    7. חוזרים על השלבים האלה לקטגוריות האחרות ברשימה. חשוב לצפות בכל הדפים ברשימה.
  7. לוחצים על Migrate to Firestore Service Agent (העברה ל-Firestore Service Agent). אם עדיין קיימות קטגוריות עם בדיקות הרשאות שנכשלו, צריכים לאשר את ההעברה בלחיצה על Migrate (העברה).

    נודיע לכם כשההעברה תסתיים. ההעברה לא יכולה להיות הפעולה בוטלה.

הצגת סטטוס ההעברה

כדי לאמת את סטטוס ההעברה של הפרויקט:

  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
  3. בתפריט הניווט, לוחצים על ייבוא/ייצוא.

  4. מחפשים את חשבון המשתמש לצד התווית Import/Export jobs run as.

    אם חשבון המשתמש הוא service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, הפרויקט שלכם כבר הועבר אל Cloud Firestore סוכן שירות. לא ניתן לבטל את ההעברה.

    אם הפרויקט לא הועבר, יופיע באנר בחלק העליון של הדף באמצעות לחצן Check Bucket Status. צפייה מעבר לסוכן השירות של Firestore כדי להשלים את ההעברה.

הוספת אילוץ מדיניות ברמת הארגון

  • מגדירים את האילוץ הבא במדיניות של הארגון:

    נדרש סוכן שירות של Firestore לצורך ייבוא/ייצוא (firestore.requireP4SAforImportExport).

    האילוץ הזה מחייב לבצע פעולות ייבוא וייצוא כדי להשתמש סוכן שירות אחד (Cloud Firestore) כדי לאשר בקשות. כדי להגדיר את האילוץ הזה: יצירה וניהול של מדיניות הארגון .

החלת האילוץ הזה של מדיניות הארגון לא מעניקה באופן אוטומטי את ההרשאות המתאימות בקטגוריית Cloud Storage סוכן שירות של Cloud Firestore.

אם האילוץ יוצר שגיאות הרשאות לתהליכי עבודה של ייבוא או ייצוא, אפשר להשבית אותו כדי לחזור להשתמש בחשבון השירות המוגדר כברירת מחדל. אחרי בדיקה ועדכון של קטגוריה אחת (Cloud Storage) , תוכלו להפעיל את האילוץ שוב.