בדף הזה מוסבר איך להגדיר הגבלות על מיקום המשאבים כדי שהנתונים שמאוחסנים ב-Managed Airflow יישארו במיקומים שאתם מציינים.
איך פועלות הגבלות על מיקום
ההגבלות על מיקום ב-Managed Airflow נקבעות על סמך המדיניות הארגונית שחלה על הפרויקט שבו נוצרת סביבת Managed Airflow. המדיניות הזו מוקצית בפרויקט או עוברת בירושה מהארגון.
אם מפעילים הגבלות על מיקומים, אי אפשר ליצור סביבה באזור שהמדיניות אוסרת עליו. אם אזור מופיע ברשימת הדחייה או לא מופיע ברשימת ההיתרים, אי אפשר ליצור סביבות באזור הזה.
כדי לאפשר יצירת סביבות, המדיניות צריכה לאפשר את כל האזור ולא אזור ספציפי בתוך האזור הזה. לדוגמה, כדי ליצור סביבות Managed Airflow באזור europe-west3, המדיניות צריכה לאפשר את האזור הזה.
Managed Airflow בודק את ההגבלות על המיקום ב:
- יצירת סביבה.
- שדרוג הסביבה, אם נוצרים משאבים נוספים במהלך הפעולה.
- עדכון סביבה, לסביבות ישנות יותר שלא אוכפות הגבלות על מיקום של תלות ב-Managed Airflow.
בנוסף לבדיקת ההגבלות לפי מיקום, Managed Airflow מבצע את הפעולות הבאות:
- מאחסן תמונות Airflow בהתאמה אישית של משתמשים במאגרי Artifact Registry אזוריים. לדוגמה, תמונות כאלה נוצרות כשמתקינים תמונות PyPI מותאמות אישית בסביבה שלכם.
- אם המדיניות אוסרת באופן מפורש על שימוש ב
USאזורים מרובים, השימוש ב-Cloud Build מושבת. במקרה כזה, תמונות Airflow בהתאמה אישית של המשתמש נוצרות באשכול של הסביבה.
התקנת תלות של Python בסביבת IP פרטי עם הגבלות על מיקום המשאבים
אם הגדרתם הגבלות על מיקום המשאבים בפרויקט, לא תוכלו להשתמש ב-Cloud Build כדי להתקין חבילות Python. כתוצאה מכך, הגישה הישירה למאגרים באינטרנט הציבורי מושבתת.
כדי להתקין תלות ב-Python בסביבת כתובת IP פרטית כשהגבלות המיקום לא מאפשרות את US אזורים מרובים, אפשר להשתמש באחת מהאפשרויות הבאות:
להשתמש במאגר PyPI פרטי שמתארח ברשת ה-VPC.
משתמשים בשרת proxy ברשת ה-VPC כדי להתחבר למאגר PyPI באינטרנט הציבורי. מציינים את כתובת השרת הפרוקסי בקובץ
/config/pip/pip.confבקטגוריה של Cloud Storage.אם מדיניות האבטחה שלכם מאפשרת גישה לרשת ה-VPC מכתובות IP חיצוניות, אתם יכולים להגדיר Cloud NAT.
כדי להתקין את התלויות של Python כספריות מקומיות, מאחסנים אותן בתיקייה
dagsבקטגוריה של Cloud Storage. אם עץ התלות גדול, יכול להיות שזו לא תהיה אפשרות טובה.
הגבלת המיקומים של יומני Managed Airflow
אם יומני הרישום של Managed Airflow מכילים נתונים רגישים, יכול להיות שתרצו להפנות אותם לקטגוריה אזורית של Cloud Storage. כדי לעשות את זה, אפשר להשתמש בsink ביומן. אחרי שמפנים יומנים לקטגוריה של Cloud Storage, היומנים לא נשלחים ל-Cloud Logging.
gcloud
יוצרים קטגוריה חדשה של Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATIONמחליפים את:
-
LOCATIONעם האזור שבו הסביבה ממוקמת. -
BUCKET_NAMEבשם הקטגוריה. לדוגמה,composer-logs-us-central1-example-environment.
-
יוצרים יעד חדש ליומן.
gcloud logging sinks create \ composer-log-sink-ENVIRONMENT_NAME \ storage.googleapis.com/BUCKET_NAME \ --log-filter "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
BUCKET_NAMEבשם הקטגוריה. -
LOCATIONעם האזור שבו הסביבה ממוקמת.
-
הפלט של הפקודה הקודמת מכיל את מספר חשבון השירות. מקצים לחשבון השירות הזה את התפקיד Storage Object Creator:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NUMBER@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com" \ --role='roles/storage.objectCreator' \ --condition=Noneמחליפים את:
-
PROJECT_IDבמזהה הפרויקט (Project ID). -
SA_NUMBERעם מספר חשבון השירות שסופק על ידי הפקודהgcloud logging sinks createבשלב הקודם.
-
להחריג את היומנים של הסביבה מ-Logging.
gcloud logging sinks update _Default \ --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\ "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת.
-