בדף הזה מוסבר איך לאחסן ארטיפקטים עם גרסאות שלא ניתן לשנות, שלא עומדים בדרישות של פורמט חבילה ספציפי, במאגרי פורמטים גנריים של Artifact Registry.
כדי להכיר את האחסון של פריטי Artifact גנריים ב-Artifact Registry, אפשר לנסות את המדריך למתחילים.
פריטי Artifact גנריים הם קבצים בכל פורמט, כולל, בין היתר:
- קבצים דחוסים, כמו קובצי tar וקובצי zip
- קבצי הגדרות, כמו קובצי YAML ו-TOML
- קובצי טקסט וקובצי PDF
- קבצים בינאריים
- ארכיונים
- קובצי מדיה
שלא כמו בפורמטים אחרים, אי אפשר להשתמש בארטיפקטים שמאוחסנים במאגרי פורמטים גנריים ב-Docker, במנהלי חבילות או בלקוחות אחרים של צד שלישי.
לפני שמתחילים
- יצירת מאגר של פורמטים גנריים
- מוודאים שיש לכם את ההרשאות הנדרשות למאגר.
- (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול ארטיפקטים גנריים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במאגר:
-
הצגת ארטיפקטים:
קורא של Artifact Registry (
roles/artifactregistry.reader) -
הורדת ארטיפקטים:
Artifact Registry Reader (
roles/artifactregistry.reader) -
העלאת ארטיפקטים למאגר:
Artifact Registry Writer (
roles/artifactregistry.writer) -
מחיקת ארטיפקטים:
מנהל מאגר של Artifact Registry (
roles/artifactregistry.repoAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
העלאת ארטיפקטים גנריים
אפשר להעלות פריטים גנריים בנפרד לפי קובץ או בכמות גדולה לפי ספרייה. כשמעלים אפליקציה, צריך לציין שם חבילה ומספר גרסה. אפשר גם לציין את הנתיב במבנה קובץ היעד כדי להעלות אותם אליו. אם לא מציינים נתיב יעד, ברירת המחדל היא שהארטיפקטים מועלים לרמה הבסיסית.
כדי להעלות ארטיפקטים גנריים למאגר, מריצים את הפקודה הבאה:
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 .
פותחים את הדף Repositories במסוף Google Cloud .
ברשימת המאגרים, בוחרים את המאגר.
לוחצים על שם החבילה.
כדי לראות את הקבצים שאפשר להוריד לכל גרסאות החבילה, לוחצים על הכרטיסייה Files (קבצים).
כדי לראות קבצים שאפשר להוריד לגרסה ספציפית של החבילה, לוחצים על שם הגרסה ואז על הכרטיסייה קבצים.
gcloud
אפשר לראות רשימה של ארטיפקטים במאגר באמצעות הפקודה gcloud artifacts files list.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
PROJECT: מזהה הפרויקט ב- Google Cloud. אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין. -
LOCATION: המיקום האזורי או הרב-אזורי של המאגר. -
REPOSITORY: השם של המאגר שבו מאוחסן הארטיפקט.
מריצים את הפקודה הבאה:
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
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