Weitere Informationen finden Sie auf der Preisseite.
Best Practices zur Kostenkontrolle
Wenn Sie die Container Scanning API aktivieren, wird jedes neu hochgeladene Image automatisch gescannt. Sie sollten die Container-Images, die Sie scannen möchten, in einem anderen Projekt trennen, um Ihre Kosten niedrig zu halten.
Richten Sie ein neues Google Cloud-Projekt ein und aktivieren Sie die Container Scanning API für dieses Projekt. Für dieses Projekt fallen die normalen Kosten für Artifact Registry und Container Registry (eingestellt) an. Verschieben Sie die Images, die Sie scannen möchten, in dieses Projekt.
Fügen Sie der CI/CD-Pipeline die folgenden Schritte hinzu:
Fügen Sie ein Tag hinzu, das dem Artifact Registry- oder Container Registry-Projekt entspricht, in dem Container Scanning aktiviert ist.
Übertragen Sie die Images per Push in das Projekt.
Scankosten schätzen
Um die ungefähren Kosten für die Bilder in einem Projekt zu berechnen, schätzen Sie die Anzahl der Bilder, die Sie in einem bestimmten Zeitraum hochladen, und multiplizieren Sie diese Anzahl mit dem Preis pro Scan. Führen Sie dazu ein Shell-Script in Cloud Shell aus.
Öffnen Sie eine Cloud Shell in Ihrem Projekt.
Klicken Sie auf das Symbol Editor öffnen und erstellen Sie eine neue Datei
cost-estimation.sh
mit folgendem Inhalt:#!/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"
Ersetzen Sie Folgendes:
PRICE
: Der Preis für das automatische Scannen auf Sicherheitslücken unter Preise.PROJECT_REPOSITORY
: Ihr Projekt-Repository. Beispiel:gcr.io/corp-staging
START_DATE
: das Startdatum für den zu schätzenden Zeitraum im FormatY-m-d
. Beispiel:2020-03-01
END_DATE
: das Enddatum für den zu schätzenden Zeitraum im FormatY-m-d
. Beispiel:2020-03-31
Führen Sie das Skript aus:
bash cost-estimation.sh
Es enthält die Gesamtanzahl der Images und die geschätzten Gesamtkosten:
Number of images: 53 Estimated cost: 13.78
Dies ist nur eine Schätzung. Die tatsächlichen Kosten können sich aufgrund anderer Faktoren ändern. Beispiele:
Das Übertragen desselben Images an verschiedene Multiregionen im selben Projekt verursacht keine zusätzlichen Kosten.
Das Hochladen desselben Images an zwei verschiedene Repositories in zwei verschiedenen Projekten verursacht keine zusätzlichen Kosten.
Aktuelle Kosten für das Scannen auf Sicherheitslücken prüfen
Diese Informationen finden Sie in Ihrem Abrechnungsbericht.
Nächste Schritte
- Weitere Informationen zum Scannen auf Sicherheitslücken