Per ulteriori informazioni, consulta la pagina dei prezzi.
Best practice per mantenere i costi bassi
Quando abiliti l'API Container Scanning, ogni nuova immagine di cui esegui il push viene analizzata automaticamente. Per contenere i costi, prova a:
Abilita la scansione su singoli repository all'interno di un progetto.
Separa le immagini container che vuoi scansionare in un progetto diverso.
Configura un nuovo Google Cloud progetto e abilita l'API Container Scanning per il progetto. Questo progetto comporterà normali addebiti per la fatturazione per Artifact Registry. Esegui il push delle immagini che vuoi analizzare in questo progetto.
Aggiungi i seguenti passaggi alla tua pipeline CI/CD:
Aggiungi un tag corrispondente al progetto Artifact Registry in cui è abilitato Container Scanning.
Esegui il push delle immagini nel progetto.
Stima i costi di scansione
Per calcolare il costo approssimativo delle immagini in un progetto, stima il numero di immagini che invii in un periodo di tempo e moltiplica questo numero per il prezzo per scansione. Puoi farlo eseguendo uno script shell in Cloud Shell.
Apri Cloud Shell nel tuo progetto.
Fai clic sull'icona Apri editor e crea un nuovo file
cost-estimation.sh
con i seguenti contenuti:#!/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"
Sostituisci quanto segue:
PRICE
: il prezzo per l'analisi automatica delle vulnerabilità indicato nella sezione Prezzi.PROJECT_REPOSITORY
: il repository del progetto. Ad esempio,gcr.io/corp-staging
.START_DATE
: la data di inizio del periodo da stimare, nel formatoY-m-d
. Ad esempio:2020-03-01
.END_DATE
: la data di fine del periodo da stimare, nel formatoY-m-d
. Ad esempio:2020-03-31
.
Esegui lo script:
bash cost-estimation.sh
Mostra il numero totale di immagini e il costo totale stimato:
Number of images: 53 Estimated cost: 13.78
Si tratta solo di una stima, il costo effettivo potrebbe variare a causa di altri fattori, ad esempio:
Il push della stessa immagine in diverse località multiregionali nello stesso progetto non genera costi aggiuntivi.
Il push della stessa immagine in due repository diversi all'interno di due progetti diversi non genera costi aggiuntivi.
Controllare i costi attuali dell'analisi delle vulnerabilità
Puoi visualizzare queste informazioni nel report sulla fatturazione.
Passaggi successivi
- Scopri di più sull'analisi delle vulnerabilità.