אימות והפעלה

כדי לשלוח בקשות ל-Earth Engine באמצעות ספריית לקוח, צריך לבצע אימות ולהשתמש בפרטי הכניסה שנוצרו כדי להפעיל את הלקוח של Earth Engine.

עורך הקוד של Earth Engine ו-JavaScript

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

אם אתם משתמשים ב-JavaScript API (מחוץ לעורך הקוד), השתמשו באחד מעזרי האימות ב-ee.data (לדוגמה, ee.data.authenticateViaPopup()) ואחריו ב-ee.initialize(), כמו שמוצג בדוגמה הזו.

‫Python ושורת הפקודה

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

    ee.Authenticate()
    ee.Initialize(project='my-project')

הפקודה הזו תבחר את מצב האימות הכי מתאים לסביבה שלכם, ותבקש מכם לאשר את הגישה לסקריפטים. אם כבר קיימים פרטי כניסה, המערכת משתמשת בהם באופן אוטומטי. כדי ליצור פרטי כניסה חדשים, צריך להריץ את הפקודה ee.Authenticate(force=True).

בשלב האתחול, המערכת מאמתת שקיימים פרטי כניסה תקינים, שנוצרו מ-ee.Authenticate() או שקיימים מראש כפרטי הכניסה שמוגדרים כברירת מחדל ב-Google. לאחר מכן, היא מאתחלת את ספריית הלקוח של Python באמצעות שיטות שנתמכות על ידי שרת הבק-אנד. תצטרכו לספק פרויקט שבבעלותכם או שיש לכם הרשאות להשתמש בו. כדי לרשום את הפרויקט ולהפעיל את Earth Engine API, עיינו במאמר הגדרת פרויקט ב-Cloud. הפרויקט הזה ישמש להפעלת כל הפעולות של Earth Engine.

בשורת הפקודה, הקריאה המקבילה היא earthengine authenticate. אם תוקף פרטי הכניסה פג או שהם לא תקינים, יכול להיות שתצטרכו להריץ את earthengine authenticate --force. הפעלות של שורת הפקודה יאותחלו בכל קריאה, ואפשר להשתמש בארגומנט --project כדי להגדיר את הפרויקט.

אפשר גם להגדיר פרויקט לכל הקריאות העתידיות על ידי הפעלת earthengine set_project {my-project}. שורת הפקודה ו-ee.Initialize() ישתמשו בפרויקט הזה בכל פעם שלא מצוין פרויקט באופן ישיר. אם משתמשים באימות באמצעות gcloud (ראו בהמשך), הפרויקט שמוגדר על ידי gcloud auth application-default set-quota-project {my-project} ישמש כמקרה סופי.

פרטי האימות

המטרה של תהליכי האימות ב-Earth Engine היא לקבל "אסימון" אבטחה מהחשבון שאליו נכנסתם, שאפשר לאחסן כדי לתת לסקריפטים שלכם הרשאה לגשת לנתונים שלכם. מטעמי אבטחה, מערכת האימות של Google תעביר טוקנים כאלה רק למערכות שאפשר לאבטח – ראו הערות טכניות בהמשך.

בגלל הרגישות של סוגי המערכות שמעורבות בתהליך, יש כמה דרכים להמשיך בהתאם למצב הספציפי שלכם. רוב האפשרויות נשלטות על ידי הפרמטר auth_mode: בתור ee.Authenticate(auth_mode=...) או earthengine authenticate --auth_mode=... בשורת הפקודה.

שימו לב שאם פרטי הכניסה של Google כבר קיימים בסביבה שלכם, יכול להיות שלא תצטרכו להפעיל את ee.Authenticate() בכלל. במכונות וירטואליות של Google Cloud, ב-App Engine ובסביבות אחרות יש "פרטי כניסה סביבתיים" שאפשר להשתמש בהם, וגם gcloud auth application-default login יוצר אותם.

עם זאת, מומלץ להוסיף את ee.Authenticate() בתחילת כל הסקריפטים כדי להבטיח תאימות מקסימלית. בלי הפרמטר auth_mode, הוא אמור לפעול ברוב המצבים, אבל אם מצב ברירת המחדל לא פועל, צריך לפעול לפי הפרטים שבהמשך. מצב ברירת המחדל נבחר באופן הבא:

  • ‫colab אם מריצים ב-notebook של Google Colab
  • ‫notebook אם מריצים ב-notebooks אחרים של Jupyter שלא שייכים ל-Colab
  • ‫localhost אם מזוהה דפדפן אינטרנט ולא מותקן קובץ בינארי של gcloud
  • ‫gcloud, אחרת. במצב הזה צריך להתקין את gcloud.

מדריך וטבלה להתמצאות מהירה

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

  • בסביבה המקומית.
    • "מקומי" פירושו שאתם מריצים קוד במעטפת Python או ב-notebook של Python במכונה שלפניכם – או ליתר דיוק, באותה מכונה שבה פועל דפדפן האינטרנט שלכם. זה כולל מצבים של שולחן עבודה מרוחק שבהם גם Python וגם הדפדפן נמצאים באותו מחשב (מרוחק).
    • השימוש ב-auth_mode=localhost הוא הכי קל, והוא ייבחר כברירת מחדל אם gcloud לא מותקן, אבל הסקריפט יעבוד רק בסביבות מקומיות.
    • גם auth_mode=gcloud וגם auth_mode=notebook זמינים.
  • סביבה מרוחקת.
    • "מרחוק" פירושו שהדפדפן נמצא במכונה אחת (מקומית) אבל הקוד פועל במקום אחר, כמו תחנת עבודה מרוחקת או מחברת מבוססת-אינטרנט.
    • אם אתם משתמשים ב-Colab, השתמשו ב-auth_mode=colab. אם אתם צריכים להגדיר את scopes כדי לקרוא לממשקי API אחרים, השתמשו ב-gcloud.
    • אם אפשר להתקין את gcloud גם במכונה המרוחקת וגם במכונה המקומית, משתמשים ב-auth_mode=gcloud.
    • אם אתם יכולים להשתמש בפרויקט אימות (ראו בהמשך), השתמשו ב-auth_mode=notebook.
    • אם אתם לא יכולים להשתמש בפרויקט, להתקין את gcloud, להשתמש ב-Colab או להשתמש בדפדפן באותו מחשב:
    • לפנות לאדמין (שוב) כדי ליצור פרויקטים. לדוגמה:
      • מבקשים מהאדמין להגדיר פרויקט (כבעלים, כעורכים או כעורכי הגדרות אישיות של OAuth).
      • אפשר גם לבקש מהאדמין לתת לכם הרשאות ליצירת פרויקט.

בטבלה הזו מוצגים שילובי התכונות שנתמכים בכל מצב.

למשרה מקומית או מרחוק? נדרש פרויקט היקפי הרשאות שניתן להגדיר צריך CLI מקומי Project Owner
localhost local Y כן לא לא
colab שלט רחוק Y לא לא לא
gcloud שניהם Y כן לא לא
notebook שניהם Y כן לא Y

פרטי כניסה לחשבונות שירות ול-Compute Engine

‫ee.Initialize() ישתמש בפרטי הכניסה של Earth Engine (שמאוחסנים על ידי ee.Authenticate() ב-~/.config/earthengine/credentials) או יאחזר את פרטי הכניסה מ-google.auth.default(), אבל אם צריך, אפשר להעביר ארגומנט credentials= כדי להשתמש בפרטי כניסה ממקום אחר, תוך עקיפת ברירות המחדל האלה.

אם אתם מאמתים קוד Python שיפעל ללא השגחה, יכול להיות שתרצו לבצע אימות באמצעות חשבון שירות במקום חשבון משתמש. במסמכים האלה מוסבר איך להשתמש בחשבונות שירות עם Earth Engine. שיטות אחרות כוללות את authenticate_service_account במודול האימות של Colab, ואת השיטות שמתוארות במדריך של Cloud לאימות כחשבון שירות.

אם הקוד פועל במכונה וירטואלית של Compute Engine, נוצר חשבון שירות שמוגדר כברירת מחדל לסביבה, שבו ee.Initialize() ישתמש כברירת מחדל. אם הפרויקט בענן שדרכו הופעלה ה-VM לא רשום לשימוש ב-Earth Engine (מסחרי או לשימוש לא מסחרי), יכול להיות שתצטרכו לרשום את חשבון השירות לשימוש ב-Earth Engine.

פרטים על המצבים

auth_mode=colab. הפונקציה ee.Authenticate() תיצור או תשיג את פרטי הכניסה שנתמכים כברירת מחדל ב-Colab, על ידי הפעלת colab.auth.authenticate_user() במקרה הצורך. פרטי הכניסה תמיד משתמשים בהיקף cloud-platform, ואפשר להשתמש בהם גם כדי לשלוח קריאות לממשקי Cloud API אחרים.

auth_mode=gcloud. הפעולה הזו מקצה את האימות לכלי gcloud, והיא זהה להרצת gcloud auth application-default login עם היקפי ההרשאות שמוגדרים כברירת מחדל ב-Earth Engine‏ (earthengine, ‏ cloud-platform ו-drive) או עם היקפי ההרשאות בארגומנט scopes. מצב gcloud פועל גם במקרים מקומיים וגם במקרים מרוחקים.

הוראות מפורטות למצב gcloud (מקרים מקומיים ומרוחקים)

  1. מוודאים ש-gcloud מותקן במחשב המקומי.
    • בטרמינל, מריצים את הפקודה gcloud help. אם gcloud לא מותקן, פועלים לפי ההוראות האלה כדי להתקין את gcloud.
  2. טרמינל של מכונה מקומית
    • בטרמינל, מריצים את הפקודה earthengine authenticate.
    • פלט הפקודה יציין שנעשה שימוש ב-gcloud כדי לאחזר את פרטי הכניסה.
    • ייפתח חלון בדפדפן עם דף לבחירת חשבון. אם הדפדפן לא נפתח באופן אוטומטי, לוחצים על כתובת ה-URL.
  3. דפדפן: בחירת חשבון
    • בוחרים את החשבון שרוצים להשתמש בו לאימות.
  4. דפדפן: מסך הסכמה
    • מציינים אם רוצים להעניק את היקפי ההרשאות המבוקשים ולוחצים על "אישור".
  5. דפדפן: מסך אישור
    • בדפדפן יוצג דף שמאשר שאתם מאומתים, ובפקודה earthengine authenticate בחלון הטרמינל ידווח "Successfully saved authorization token".
    • במקרים נדירים, דף האינטרנט יספק לכם קוד להדבקה בחזרה בסביבת Python.
  6. ממשיכים בהפעלה.

auth_mode=localhost. זהו תהליך דמוי gcloud למקרים שבהם gcloud לא מותקן. הוא מבצע את אותם שלבים כמו gcloud, אבל פועל רק במקרה המקומי. אפשר לציין מספר יציאה אופציונלי לאינטרנט, למשל localhost:8086, או להשתמש ב-localhost:0 כדי לבחור יציאה באופן אוטומטי. יציאת ברירת המחדל היא 8085.

auth_mode=notebook. זהו מצב לשימוש כללי שנועד לפעול במצבים מרוחקים שבהם שורות פקודה מקומיות לא זמינות. היא תעביר אתכם לדף Notebook Authenticator, שבו תצטרכו לבחור או ליצור "פרויקט אימות" – פרטים נוספים ומדריך לפתרון בעיות מופיעים בהמשך. הפרויקט שמועבר אל ee.Initialize() לא חייב להיות זהה לזה – אפשר להשתמש באותו פרויקט לאימות כשעובדים בפרויקטים שונים ב-notebooks שונים. מומלץ להעביר פרויקט באופן מפורש אל ee.Initialize(), אבל כברירת מחדל ייעשה שימוש בפרויקט האימות.

הוראות מפורטות למצב Notebook

  1. דפדפן: Notebook
    1. בתא קוד של Notebook, מריצים את הקוד הבא כדי להתחיל תהליך אימות באמצעות מצב notebook.
      import ee
      ee.Authenticate()
      לוחצים על הקישור בפלט של התא כדי לפתוח את דף Notebook Authenticator בכרטיסייה חדשה.
  2. דפדפן: Notebook Authenticator
    1. מוודאים שחשבון המשתמש הנכון מופיע ברשימה.
    2. בוחרים פרויקט ב-Google Cloud שישמש לאימות. אם אתם צריכים ליצור פרויקט חדש, מומלץ להשתמש במוסכמה למתן שמות "ee-xyz", כאשר xyz הוא שם המשתמש הרגיל שלכם ב-Earth Engine. (אם אתם לא יכולים לבחור או ליצור פרויקט ב-Cloud, עיינו בקטע פתרון הבעיות שבהמשך).
    3. לוחצים על "יצירת טוקן".
  3. דפדפן: בחירת חשבון
    • יוצג דף לבחירת חשבון. לוחצים על חשבון המשתמש שרוצים לתת לו גישה מה-notebook.
  4. דפדפן: דף אזהרה
    • מוצג דף אזהרה שמציין ש-Google לא יצרה את האפליקציה (כלומר, את הקוד ב-notebook). לוחצים על "המשך" כדי לאשר.
  5. דפדפן: מסך הסכמה
    • מציינים אם רוצים להעניק את היקפי ההרשאות המבוקשים ולוחצים על Continue.
  6. דפדפן: מסך קוד ההרשאה
    • מעתיקים את קוד האימות של ההרשאה.
  7. דפדפן: Notebook
    • עוברים חזרה לכרטיסייה של ה-notebook ומדביקים את קוד האימות בפלט של התא ב-notebook.
    • פלט התא אמור להציג את ההודעה "Successfully saved authorization token."
  8. ממשיכים בהפעלה.

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

פרויקטים של אימות

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

משיקולי אבטחה, "הגדרת לקוח OAuth" בפרויקט האימות היא הגדרה חד-פעמית. אם אתם או משתמשים אחרים הגדרתם לקוח OAuth בפרויקט מסיבות אחרות, אי אפשר להסיר אותו ותופיע הודעת השגיאה "incompatible OAuth2 client configuration". תצטרכו להשתמש בפרויקט אחר לאימות, או להשתמש במצבים colab, ‏ localhost או gcloud שלמעלה.

פרטים על היקפים

הגדרות ברירת המחדל של האימות ב-Earth Engine כוללות את כל ההיקפים הזמינים, כך שאפשר לדלג על הקטע הזה אם הגדרות ברירת המחדל עונות על הדרישות שלכם.

היקפי ההרשאות של Earth Engine: היקף ההרשאות של OAuth 2.0 מגדיר ומגביל את קבוצת המשאבים והפעולות שהאפליקציה יכולה לגשת אליהם בשם המשתמש. כשמשתמשים ב-OAuth כדי לבצע אימות ב-Earth Engine, צריך לבקש אחד או יותר מהיקפי ההרשאות הבאים:

  • ‫https://www.googleapis.com/auth/earthengine: גישת קריאה וכתיבה לנכסים ולמשאבים של Earth Engine. נדרש כדי ליצור, לשנות או למחוק נכסים, לנהל הרשאות לנכסים ולהריץ משימות ייצוא.
  • ‫https://www.googleapis.com/auth/earthengine.readonly: גישה לקריאה בלבד לנכסים ב-Earth Engine.

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

היקפי ההרשאות של Google Cloud ו-Drive: אם השאילתות או הסקריפטים שלכם ב-Earth Engine מפנים לנתונים או לנכסים חיצוניים, פרטי הכניסה שלכם צריכים לכלול גם את היקפי ההרשאות המתאימים לשירותים האלה:

  • ‫Cloud Storage‏ (GCS) (כשקוראים מקטגוריות של Cloud Storage או כותבים אליהן, למשל כשמייצאים פלט של משימות או טוענים קובצי GeoTIFF שעברו אופטימיזציה ל-Cloud‏ (COG)):
    • https://www.googleapis.com/auth/devstorage.full_control
    • https://www.googleapis.com/auth/devstorage.read_write
    • https://www.googleapis.com/auth/devstorage.read_only
  • ‫BigQuery‏ (BQ) (כשקוראים טבלאות או כותבים נתונים לייצוא ל-BigQuery):
    • https://www.googleapis.com/auth/bigquery
  • ‫Google Drive (כשניגשים לנתונים ב-Google Drive או מייצאים אותם):
    • https://www.googleapis.com/auth/drive
    • https://www.googleapis.com/auth/drive.readonly

ב-Google Cloud יש גם היקפי הרשאות רחבים שכוללים את כל שירותי Google Cloud:

  • ‫Cloud Platform (גישה רחבה לשירותי Google Cloud, כולל Earth Engine,‏ Cloud Storage ו-BigQuery. שימו לב ש-Google Drive הוא שירות נפרד של Workspace וההיקפים האלה לא חלים עליו):
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud-platform.read-only

היקפי הרשאות שמוגדרים כברירת מחדל: היקפי ההרשאות שמוגדרים כברירת מחדל גם בכלי לעריכת קוד של Earth Engine וגם בספריות הלקוח (כמו ee.Authenticate()) כוללים את כל היקפי ההרשאות הבאים: earthengine,‏ cloud-platform ו-drive (לפרטים נוספים, ראו למעלה). לכן, צריך להתאים אישית את ההיקף (לדוגמה, באמצעות הפרמטר scopes ב-ee.Authenticate(scopes=[...])) רק אם יש לכם אילוצי אבטחה ספציפיים או כללי מדיניות של הארגון שמחייבים להגביל את ההרשאות.

פתרון בעיות

מה לעשות אם לא הצלחתי ליצור פרויקט בענן?

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

  1. כדי לבדוק אם יש לכם את ההרשאות הנדרשות, נסו ליצור פרויקט ישירות.
  2. כדי לברר מהם התהליכים הזמינים ליצירת פרויקט, פנו לאדמין של הארגון.
  3. יוצרים פרויקט מחשבון שלא שייך לארגון, ומוסיפים את החשבון שמשמש לעבודה כבעלים של הפרויקט. הערה: בחלק מהארגונים יש מדיניות אבטחה שמונעת גישה ללקוחות OAuth מפרויקטים חיצוניים.

שגיאה: "Earth Engine API has not been used in project XXX before or it is disabled"

קודם כל, ודאו שהגדרתם פרויקט ב-ee.Initialize() או בשורת הפקודה (בפרויקטים שמוגדרים כברירת מחדל ב-Cloud וב-Colab, ‏Earth Engine לא מופעל). בשלב השני, מוודאים ש-Earth Engine API מופעל בפרויקט.

שגיאה: "הפרויקט כולל הגדרת לקוח OAuth2 לא תואמת"

לפרויקטים בענן יכולה להיות רק הגדרה אחת של לקוח OAuth2. כדי לבדוק אם לפרויקט בענן יש הגדרת לקוח OAuth2, בודקים את מזהי הלקוח של OAuth 2.0 בדף Credentials. צריך לבחור פרויקט אחר בענן שכבר הוגדרה בו תצורה תואמת על ידי Notebook Authenticator, או לבחור או ליצור פרויקט בענן בלי לקוחות OAuth2. המאמת יגדיר את הפרויקט הזה באופן אוטומטי. לצערנו, מערכת OAuth לא מאפשרת למשתמשים למחוק הגדרות, ולכן צריך להשתמש בפרויקט אחר. הפרויקט הזה לא חייב להיות אותו פרויקט שמשמש לעבודות אחרות ב-Earth Engine. חשוב לדעת שהשגיאה הזו לא מתרחשת במצב Colab.

שגיאה: "gcloud failed.‎ צריך לבדוק אם יש שגיאות למעלה ולהתקין את gcloud במקרה הצורך".

השגיאה הזו יכולה להופיע אם gcloud לא מותקן או לא נמצא ב-PATH. היא יכולה להתרחש גם אם קוראים ל-ee.Authenticate(auth_mode='gcloud') מתוך תא קוד של Notebook. במקום זאת, צריך להשתמש ב-ee.Authenticate(), שמשתמש כברירת מחדל באימות במצב notebook. אם אתם לא מצליחים ליצור פרויקט, נסו את הפתרון שלמעלה.

מה קורה אם אין לי גישה למכונה מקומית כדי להתקין את gcloud?

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

שגיאה 400: redirect_uri_mismatch

השגיאה הזו יכולה להופיע אם אתם מבצעים אימות במכונה מרוחקת בלי גישה לדפדפן אינטרנט. נסו להוסיף את --quiet אם אתם מריצים את earthengine authenticate משורת הפקודה, או את ee.Authenticate(quiet=True) אם אתם משתמשים בלקוח Python. כדי לעשות את זה, תצטרכו לבצע אימות באמצעות gcloud ממחשב שיש לו גישה לדפדפן אינטרנט.

השגיאה: "Your application is authenticating by using local Application Default Credentials.‎ ל-API‏ earthengine.googleapis.com נדרש פרויקט מכסה, שלא מוגדר כברירת מחדל".

השגיאה הזו יכולה לקרות כש-Earth Engine לא מצליח לזהות את מזהה הפרויקט. אם האפשרויות לפתרון בעיות ב-Google Cloud לא עובדות, נסו להריץ את earthengine set_project YOUR_PROJECT_ID או את gcloud auth application-default set-quota-project YOUR_PROJECT_ID.

שגיאה: "חסרים היקפי הרשאות נדרשים עבור [Cloud Storage / BigQuery]"

השגיאה הזו מתרחשת כשבקשה של Earth Engine ניגשת למשאבים של Cloud Storage או BigQuery, אבל פרטי הכניסה שמשמשים לאתחול של Earth Engine לא כוללים את ההיקפים הנדרשים לשירות הזה (או את ההיקף cloud-platform, שכולל את כל שירותי Google Cloud). בדרך כלל זה קורה אם התאמתם אישית את הפרמטר scopes במהלך האימות (לדוגמה, סיפקתם רק היקפי הרשאות של Earth Engine ל-ee.Authenticate(scopes=[...])) או אם פרטי הכניסה הקיימים נוצרו בלי היקפי ההרשאות האלה.

יש שתי דרכים לפתור את הבעיה:

  • אימות מחדש עם היקפי הרשאות שמוגדרים כברירת מחדל: פרטי הכניסה שמוגדרים כברירת מחדל ל-Earth Engine כוללים את היקף ההרשאות cloud-platform, שכולל גם את Cloud Storage וגם את BigQuery. מאמתים מחדש באמצעות הגדרות ברירת המחדל:
    • ב-Python:‏ ee.Authenticate(force=True)
    • בשורת הפקודה: earthengine authenticate --force
  • לכלול את ההיקפים הנדרשים: אם הסביבה שלכם דורשת התאמה אישית של ההיקפים, ודאו שהרשימה scopes כוללת את https://www.googleapis.com/auth/cloud-platform או את היקף השירות הספציפי (כמו https://www.googleapis.com/auth/devstorage.full_control או https://www.googleapis.com/auth/devstorage.read_only ל-Cloud Storage, או https://www.googleapis.com/auth/bigquery ל-BigQuery).

לפרטים נוספים על היקפי ההרשאות הזמינים, ראו פרטים על היקפי הרשאות.

הערות טכניות

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

  • בעבר היה מצב paste שנתן לכם אסימון להדביק בכל מקום, אבל הוא נחשב למסוכן מדי וכבר לא זמין.
  • ‫colab: auth.authenticate_user() יבקש מכם לשתף את פרטי הכניסה עם לקוח האימות של Colab, סביבת ה-notebook עצמה. אחר כך אפשר לגשת אליהם דרך google.auth.default() והם משמשים את ee.Initialize().
  • ‫localhost: פרטי הכניסה מועברים מהדפדפן ליציאה במחשב המקומי. במצב כזה, האבטחה מקצה לקצה תלויה בכך שהמכונה המקומית לא נפרצה. לקוח האימות שיוצג הוא Earth Engine Authenticator.
  • ‫gcloud: האפשרות הזו משתמשת בתהליך --launch-browser שמתואר בחומר העזר של gcloud, וב---no-launch-browser אם נמצאים במכונה מרוחקת. לקוח האימות שבו משתמשים הוא Google Auth Library.
  • ‫notebook: אנחנו יוצרים לקוח אימות חדש במיוחד בשביל העבודה שלכם – כתובת האימייל שלכם תופיע בדף ההסכמה. הלקוח הזה מוגדר במצב "פיתוח", שהוא מקרה מיוחד שמאפשר שימוש באסימונים של מצב ההדבקה הישן. אנחנו צריכים להשתמש בפרויקט שלכם בשביל זה, כי אי אפשר לשתף לקוחות כאלה עם מספר גדול של משתמשים.