עבודה עם פורמטים אחרים של ארטיפקטים

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

כדי להכיר את האחסון של פריטי Artifact גנריים ב-Artifact Registry, אפשר לנסות את המדריך למתחילים.

פריטי Artifact גנריים הם קבצים בכל פורמט, כולל, בין היתר:

  • קבצים דחוסים, כמו קובצי tar וקובצי zip
  • קבצי הגדרות, כמו קובצי YAML ו-TOML
  • קובצי טקסט וקובצי PDF
  • קבצים בינאריים
  • ארכיונים
  • קובצי מדיה

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

לפני שמתחילים

  1. יצירת מאגר של פורמטים גנריים
  2. מוודאים שיש לכם את ההרשאות הנדרשות למאגר.
  3. (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לניהול ארטיפקטים גנריים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במאגר:

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

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

העלאת ארטיפקטים גנריים

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

כדי להעלות ארטיפקטים גנריים למאגר, מריצים את הפקודה הבאה:

gcloud

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • PROJECT: מזהה הפרויקט ב- Google Cloud. אם מזהה הפרויקט מכיל נקודתיים (:), אפשר לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • LOCATION: המיקום האזורי או הרב-אזורי של המאגר.
  • REPOSITORY: השם של המאגר שבו מאוחסן הארטיפקט.
  • SOURCE: המיקום והשם של הקובץ שמעלים.
  • PACKAGE: שם החבילה של הקובץ שאתם מעלים.
  • VERSION: גרסת הקובץ שמעלים.
  • מריצים את הפקודה הבאה:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud artifacts generic upload \
        --project=PROJECT \
        --source=SOURCE \
        --package=PACKAGE \
        --version=VERSION \
        --location=LOCATION \
        --repository=REPOSITORY

    ‏Windows (PowerShell)

    gcloud artifacts generic upload `
        --project=PROJECT `
        --source=SOURCE `
        --package=PACKAGE `
        --version=VERSION `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows‏ (cmd.exe)

    gcloud artifacts generic upload ^
        --project=PROJECT ^
        --source=SOURCE ^
        --package=PACKAGE ^
        --version=VERSION ^
        --location=LOCATION ^
        --repository=REPOSITORY
    יש דגלים נוספים שאפשר להשתמש בהם כשמעלים ארטיפקטים:
    • --destination-path=PATH כדי להעלות לתיקייה ספציפית בחבילה ובגרסה. הוא גם ייצור תיקיות שלא קיימות.
    • --source-directory=SOURCE_DIR כדי להחליף את הדגל --source ולהעלות ספרייה במקום קובץ יחיד.
    • --skip-existing כשמשתמשים בדגל --source-directory כדי לדלג על קבצים שכבר קיימים. אחרת, הפקודה תיכשל כשמנסים להעלות קובץ שכבר קיים.

    API

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT הוא Google Cloud מזהה הפרויקט. אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
    • LOCATION הוא המיקום האזורי או הרב-אזורי של המאגר.
    • REPOSITORY הוא שם המאגר שבו מאוחסן הארטיפקט.
    • SOURCE הוא המיקום והשם של הקובץ שמעלים.
    • PACKAGE הוא שם החבילה של הקובץ שאתם מעלים.
    • VERSION היא הגרסה של הקובץ שאתם מעלים.
    • NAME הוא השם החדש של הקובץ במאגר.

    ה-method של ה-HTTP וכתובת ה-URL:

      POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    ‏Curl (Linux,‏ macOS או Cloud Shell)

    כדי לשלוח את הבקשה, מריצים את הפקודה הבאה:

      curl -v \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
          -F "blob=@SOURCE" \
          https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    הצגת רשימה של פריטי מידע שנוצרו בתהליך פ

    console

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

    1. פותחים את הדף Repositories במסוף Google Cloud .

      פתיחת הדף Repositories

    2. ברשימת המאגרים, בוחרים את המאגר.

    3. לוחצים על שם החבילה.

    4. כדי לראות את הקבצים שאפשר להוריד לכל גרסאות החבילה, לוחצים על הכרטיסייה Files (קבצים).

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

    gcloud

    אפשר לראות רשימה של ארטיפקטים במאגר באמצעות הפקודה gcloud artifacts files list.

    לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

    מריצים את הפקודה הבאה:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud artifacts files list \
        --project=PROJECT \
        --location=LOCATION \
        --repository=REPOSITORY

    ‏Windows (PowerShell)

    gcloud artifacts files list `
        --project=PROJECT `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows‏ (cmd.exe)

    gcloud artifacts files list ^
        --project=PROJECT ^
        --location=LOCATION ^
        --repository=REPOSITORY
    התגובה כוללת את פרטי הקובץ בפורמט PACKAGE:VERSION:NAME.
    FILE: my-package:1.0.0:hello.yaml
    CREATE_TIME: 2023-03-09T20:55:07
    UPDATE_TIME: 2023-03-09T20:55:07
    SIZE (MB): 0.000
    OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
    

    אפשר גם למיין לפי גרסה וחבילה על ידי הוספה של אחד או שני הדגלים הבאים:

    • --package=PACKAGE כדי להציג רק קבצים מחבילה ספציפית.
    • --version=VERSION כדי להציג רק קבצים מגרסה ספציפית.

    הורדת פריטי מידע גנריים שנוצרים בתהליך פיתוח (Artifact)

    כדי להוריד ארטיפקטים כלליים מהמאגר, מריצים את הפקודה הבאה:

    gcloud

    לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

    • DESTINATION: הנתיב לתיקיית היעד במערכת הקבצים המקומית. תיקיית היעד צריכה להתקיים, אחרת הפקודה תיכשל.
    • LOCATION: המיקום האזורי או הרב-אזורי של המאגר.
    • REPOSITORY: השם של המאגר שבו מאוחסן הארטיפקט.
    • PACKAGE: החבילה של הקובץ להורדה.
    • VERSION: גרסת הקובץ להורדה.
    • NAME (אופציונלי): שם הקובץ להורדה. אם לא מציינים את הדגל הזה, הפקודה תוריד את כל הקבצים של החבילה והגרסה שצוינו, ותיצור את הספריות הנדרשות ביעד.

    מריצים את הפקודה הבאה:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud artifacts generic download \
        --destination=DESTINATION \
        --location=LOCATION \
        --repository=REPOSITORY \
        --package=PACKAGE \
        --version=VERSION \
        --name=NAME

    ‏Windows (PowerShell)

    gcloud artifacts generic download `
        --destination=DESTINATION `
        --location=LOCATION `
        --repository=REPOSITORY `
        --package=PACKAGE `
        --version=VERSION `
        --name=NAME

    Windows‏ (cmd.exe)

    gcloud artifacts generic download ^
        --destination=DESTINATION ^
        --location=LOCATION ^
        --repository=REPOSITORY ^
        --package=PACKAGE ^
        --version=VERSION ^
        --name=NAME

    API

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT: מזהה הפרויקט ב- Google Cloud. אם מזהה הפרויקט מכיל נקודתיים (:), אפשר לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
    • LOCATION: המיקום האזורי או הרב-אזורי של המאגר.
    • REPOSITORY: השם של המאגר שבו מאוחסן הארטיפקט.
    • DESTINATION: הנתיב לתיקיית היעד במערכת הקבצים המקומית. תיקיית היעד צריכה להתקיים כבר, אחרת הפקודה תיכשל.
    • FILE: שם הקובץ בקידוד כתובת ה-URL. כדי למצוא את הערך הזה, מריצים את הפקודה gcloud artifacts files list ומעתיקים את הערך של FILE. צריך להמיר אותו לפורמט של קידוד כתובות URL עבור הפקודה הזו – לדוגמה, path/to/file.jar צריך להיות מוזן כ-path%2Fto%2Ffile.jar.

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    ההורדה אמורה להתחיל באופן מיידי.

    מחיקת פריטים גנריים שנוצרו בתהליך פיתוח (Artifact)

    כדי למחוק ארטיפקטים כלליים מהמאגר, מריצים את הפקודה gcloud artifacts files delete. הפקודה הזו זמינה רק במאגרי מידע בפורמט כללי.

    לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

    • FILE: שם הקובץ המלא. כדי למצוא את הערך הזה, מריצים את הפקודה gcloud artifacts files list ומעתיקים את הערך של FILE.
    • LOCATION: המיקום האזורי או הרב-אזורי של המאגר.
    • REPOSITORY: השם של המאגר שבו מאוחסן הארטיפקט.

    מריצים את הפקודה הבאה:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud artifacts files delete \
        FILE \
        --location=LOCATION \
        --repository=REPOSITORY

    ‏Windows (PowerShell)

    gcloud artifacts files delete `
        FILE `
        --location=LOCATION `
        --repository=REPOSITORY

    Windows‏ (cmd.exe)

    gcloud artifacts files delete ^
        FILE ^
        --location=LOCATION ^
        --repository=REPOSITORY

    המאמרים הבאים