במסלול פרימיום, חבילות Assured OSS מתארחות במאגר Artifact Registry שנוצר בפרויקט שבשליטתכם. כדי לגשת ישירות לחבילות Python ולהוריד אותן, אתם יכולים להתחבר למאגר של Assured OSS ב-Artifact Registry.
המסמך הזה רלוונטי רק למסלול הפרימיום של Assured OSS. בתוכנית בחינם, עיינו במאמר הורדת חבילות Python באמצעות גישה ישירה למאגר בתוכנית בחינם.
לפני שמתחילים
מבקשים מהאדמין להקצות לכם את התפקיד אדמין של מפתח חשבון שירות (
roles/iam.serviceAccountKeyAdmin) ב-IAM בארגון. אתם צריכים את ההרשאה הזו כדי לקבל את המחרוזת בקידוד base64 של מפתח חשבון השירות. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.מאמתים את הקישוריות ל-Assured OSS של חשבונות השירות המבוקשים.
מתקינים את הגרסה העדכנית של Google Cloud CLI. אם כבר התקנתם את Google Cloud CLI, ודאו שפועלת אצלכם הגרסה העדכנית ביותר באמצעות הפקודה הבאה:
gcloud components update
מגדירים אימות
כדי לבצע אימות למאגר החבילות של Assured OSS Python, אפשר להשתמש באחת מהשיטות הבאות:
- אימות באמצעות אוסף מפתחות של Python
- אימות באמצעות מפתח לחשבון שירות
בקטעים הבאים מוסבר איך להגדיר את שיטות האימות האלה.
אימות באמצעות אוסף מפתחות של Python
כדי להשתמש באוסף המפתחות של Python לאימות ב-Artifact Registry, קראו את המאמרים אימות באמצעות אוסף מפתחות וסדר החיפוש של פרטי הכניסה. מומלץ להשתמש ב-Python keyring לאימות.
כדי להגדיר את אוסף המפתחות של Python לאימות, מבצעים את הפעולות הבאות:
מתקינים את הספרייה
keyring:pip install keyringמתקינים את הקצה העורפי של Artifact Registry:
pip install keyrings.google-artifactregistry-authמציגים את רשימת הקצוות העורפיים כדי לוודא שההתקנה בוצעה:
keyring --list-backendsהרשימה צריכה לכלול את הפרטים הבאים:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
במאמר הגדרת אימות מוסבר איך מגדירים את Application Default Credentials.
השלב הזה מבטיח שכלי העזר לאישורים של Assured OSS יקבל את המפתח שלכם כשהוא יתחבר למאגרים.
אימות באמצעות מפתח לחשבון שירות
בצעו אימות באמצעות מפתח של חשבון שירות כשהאפליקציה דורשת אימות באמצעות שם משתמש וסיסמה.
מחליפים את כתובת ה-URL של מאגר החבילות https://LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple בכתובת ה-URL https://_json_key_base64:$BASE64_KEY@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple.
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבחרתם כשהגדרתם את Assured OSS.
LOCATION: אזור נתמך.
התקנת חבילות
ההוראות הבאות מבוססות על ההנחה שאתם משתמשים ב-PyPI וב-requirements.txt כדי להוריד ולנהל את יחסי התלות שלכם. אם אתם משתמשים בתהליך אחר לניהול יחסי תלות, תצטרכו לבצע שלבים אחרים.
התקנת חבילות ב-Assured OSS
כדי לציין את חבילות Assured OSS Python שרוצים להוריד, יוצרים שני קובצי requirements.txt. אלה קובצי הדוגמה:
requirements-google.txt# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74erequirements-pypi.txt# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
כדי להוריד את החבילות, מריצים את הפקודות הבאות:
כדי להוריד את החבילות הנדרשות שנמצאות ב-Artifact Registry ל-Assured OSS, מריצים את הפקודה הבאה:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:$BASE64_KEY@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-depsכמה נקודות שכדאי לחשוב עליהן:
--require-hashesהוא אופציונלי. אם הם נכללים, ערכי ה-Hash מצוינים לכל החבילות ולכל גרסאות החבילות בקובץrequirements.txt. כדי להבטיח אבטחה ויכולת שחזור, מומלץ להצמיד יחסי תלות עם גיבובי SHA-256 בקובץrequirements.txt.-vהוא אופציונלי. אם מציינים את הדגל, הפקודה מחזירה יותר פלט.- מחליפים את
LOCATIONבאזור נתמך.
כדי להוריד את החבילות הנדרשות שלא נמצאות ב-Artifact Registry ל-Assured OSS, מריצים את הפקודה הבאה:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -vהפקודה הזו גם מורידה את יחסי התלות החסרים של החבילות שהורדתם באמצעות הפקודה הקודמת.
הצגת רשימה של כל חבילות Python שזמינות ב-Assured OSS
כדי להשתמש ב-API כדי לקבל רשימה של כל חבילות Python במאגר Artifact Registry, קראו את המאמר הצגת רשימה של כל חבילות Python שזמינות ב-Assured OSS.
המערכת יוצרת את הקובץ requirements-google.txt
בקטע הזה מוסבר איך ליצור את הקובץ requirements-google.txt שצריך כדי להוריד את חבילות Python. כדי להוריד את ה-hash וליצור את הקובץ requirements-google.txt לסביבה שלכם, אתם יכולים להשתמש באחת משתי האפשרויות הבאות:
משתמשים בסקריפט כדי ליצור קובץ דרישות אחד לכל פריטי המידע שנוצרו בתהליך הפיתוח.
מורידים קובץ דרישות נפרד לכל פריט מידע שנוצר בתהליך הפיתוח.
בקטעים הבאים מוסבר בהרחבה על האפשרויות האלה.
אפשרות 1: שימוש בסקריפט כדי ליצור קובץ דרישות אחד לכל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact)
משתמשים בסקריפט generator.sh כדי ליצור קובץ requirements-google.txt יחיד לכל חבילות Python (יחד עם הגיבובים שלהן) שזמינות עם Assured OSS למערכת ההפעלה Linux. החבילות צריכות לעמוד במגבלות כמו גרסת Python, ארכיטקטורת המכונה ומערכת ההפעלה. אחר כך תוכלו למחוק את גרסאות החבילה שאתם לא צריכים ולהשתמש בקובץ שנוצר.
הסקריפט generator.sh עוזר בשתי דרכים:
- יוצרת את הרשימה העדכנית ביותר של גרסאות חבילות Python שזמינות עם Assured OSS, שאפשר להתקין במערכת.
- יוצר את הקובץ
requirements-google.txtיחד עם כל הגיבובים.
הסקריפט הנדרש וקובץ ה-README.md שלו זמינים בקטגוריה של Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0), ואפשר להוריד אותם באמצעות Google Cloud CLI.
כדי להוריד את הסקריפט ואת קובץ ה-README.md:
כדי לגשת לקטגוריה של Cloud Storage, מאמתים את חשבון השירות באמצעות הפקודה הבאה:
gcloud auth activate-service-account --key-file KEY_FILEמחליפים את
KEY_FILEבנתיב לקובץ שמכיל את פרטי הכניסה של חשבון השירות שסופקו במהלך ההגדרה.מורידים את
generator.shלמכונה באמצעות הפקודה הבאה:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursiveמחליפים את
PATH_TO_LOCAL_STOREבנתיב המקומי שבו רוצים לשמור את הקובץ שהורדתם.מורידים את הקובץ
README.mdבאמצעות הפקודה הבאה:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursiveמחליפים את
PATH_TO_LOCAL_STOREבנתיב המקומי שבו רוצים לשמור את הקובץ שהורדתם. הקובץREADME.mdמכיל הוראות לשימוש בסקריפט.
כדי להריץ את הסקריפט, משתמשים בפקודות הבאות:
כדי ליצור את הקובץ
requirements-google.txt, מריצים את הפקודה הבאה:chmod +x generator.sh ./generator.shכדי לקבל את פרטי החבילה בקובץ CSV, מריצים את הפקודה הבאה:
chmod +x generator.sh ./generator.sh -i
אפשרות 2: הורדת requirements.txt לכל פריט מידע נדרש
אפשר גם להוריד קובץ requirements.txt נפרד (שמכיל את ה-hash) לכל פריט מידע שנוצר ב-Python, ואז לשלב אותם לקובץ requirements.txt אחד.
ערכי ה-hash של פריטי המידע זמינים בקטגוריה של Cloud Storage, ואפשר להוריד אותם באמצעות ה-CLI של gcloud. ערכי ה-Hash של כל חבילה וגרסה נמצאים במיקום של קטגוריה של Cloud Storage gs://cloud-aoss/python/PACKAGE_NAME/VERSION.
כדי להוריד את הקובץ requirements.txt:
כדי לגשת לקטגוריה של Cloud Storage, מאמתים את חשבון השירות באמצעות הפקודה הבאה:
gcloud auth activate-service-account --key-file KEY_FILEמחליפים את
KEY_FILEבנתיב לקובץ שמכיל את פרטי כניסה לחשבון השירות.מורידים את
requirements.txtשל חבילה וגרסה ספציפיות למחשב המקומי באמצעות הפקודה הבאה:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursiveמחליפים את מה שכתוב בשדות הבאים:
-
PACKAGE_NAME: שם החבילה -
VERSION: גרסת החבילה -
PATH_TO_LOCAL_STORE: הנתיב המקומי שאליו רוצים להוריד את הקובץ
פקודה לדוגמה:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach --recursiveקובץ
requirements.txtלדוגמה:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812אפשר לשלב את התוכן של כל קובץ
requirements.txtכזה בקובץrequirements-google.txtאחד.-