מידע נוסף מופיע בדף התמחור.
שיטות מומלצות לשמירה על עלויות נמוכות
כשמפעילים את Container Scanning API, כל תמונה חדשה שמעלים נסרקת באופן אוטומטי. כדי להוזיל את העלויות, אפשר לנסות את הפעולות הבאות:
הפעלת סריקה במאגרים בודדים בפרויקט.
מפרידים את תמונות המאגר שרוצים לסרוק לפרויקט אחר.
מגדירים Google Cloud פרויקט חדש ומפעילים בו את Container Scanning API. בפרויקט הזה יחולו חיובים רגילים על Artifact Registry. מעבירים לפרויקט את התמונות שרוצים לסרוק.
מוסיפים את השלבים הבאים לצינור העיבוד של CI/CD:
מוסיפים תג שמתאים לפרויקט Artifact Registry שבו מופעלת סריקת מאגרי תגים.
מעבירים את התמונות לפרויקט.
אומדן עלויות הסריקה
כדי לחשב את העלות המשוערת של התמונות בפרויקט, מעריכים את מספר התמונות שמעלים במסגרת זמן מסוימת ומכפילים את המספר הזה במחיר לכל סריקה. אפשר לעשות זאת על ידי הפעלת סקריפט מעטפת ב-Cloud Shell.
פותחים את Cloud Shell בפרויקט.
לוחצים על סמל Open Editor (פתיחת הכלי לעריכה) ויוצרים קובץ חדש
cost-estimation.shעם התוכן הבא:#!/bin/bash # Replace with price from https://cloud.google.com/artifact-analysis/pricing PRICE='PRICE' # Replace with your project data GC_PROJECT='PROJECT_REPOSITORY' START_DATE='START_DATE' END_DATE='END_DATE' REGION=$(echo $GC_PROJECT | sed -n 's/\/.*//p') if [ -z "$REGION" ]; then printf "'GC_PROJECT' value must be a valid GCR or AR repository (e.g. gcr.io/corp-staging or us-central1-docker.pkg.dev/myproj/myrepo" exit 1 fi IFS=$'\n' FILTER="timestamp.date('%Y-%m-%d', Z)>'$START_DATE' AND timestamp.date('%Y-%m-%d', Z)<'$END_DATE'" images=$( gcloud container images list --repository="$GC_PROJECT" | sed -n "/$REGION/p" | sed 's/NAME: //' ) num_images=$(echo $images | wc -w) printf "Using gcloud to filter $num_images images from $START_DATE to $END_DATE (takes about 1 second per image)\n\n" total_digests=0 for image in $images; do printf "querying $image\n" image_digests=$( gcloud container images list-tags --filter="$FILTER" "$image" 2> >(sed "s/Listed 0 items.//" | sed -n "/.\+/p" >&2) | wc -l) if [[ "$image_digests" -gt 1 ]]; then total_digests=$(( total_digests + $image_digests - 1 )) fi done total_price=$( python -c "print($total_digests * $PRICE)" ) echo '' echo "Number of images: $total_digests" echo "Estimated cost: $total_price"מחליפים את מה שכתוב בשדות הבאים:
-
PRICE: המחיר לסריקה אוטומטית של נקודות חולשה שמופיע בדף תמחור. -
PROJECT_REPOSITORY: מאגר הפרויקט. לדוגמה,gcr.io/corp-staging. -
START_DATE: תאריך ההתחלה של התקופה להערכה, בפורמטY-m-d. לדוגמה,2020-03-01. -
END_DATE: תאריך הסיום של התקופה להערכה, בפורמטY-m-d. לדוגמה,2020-03-31.
-
מריצים את הסקריפט:
bash cost-estimation.shמוצג בה המספר הכולל של התמונות והעלות הכוללת המשוערת:
Number of images: 53 Estimated cost: 13.78
זו רק הערכה, והעלות בפועל עשויה להשתנות בגלל גורמים אחרים, למשל:
אם מעלים את אותה תמונה לכמה אזורים מרובי-אזורים באותו פרויקט, לא נוצרות עלויות נוספות.
אם מעלים את אותה תמונה לשני מאגרי תמונות שונים בשני פרויקטים שונים, לא נוצרות עלויות נוספות.
בדיקת העלויות הנוכחיות של סריקת פגיעויות
אפשר לראות את המידע הזה בדוח החיוב.