Per ulteriori informazioni, consulta la pagina dei prezzi.
Best practice per mantenere bassi i costi
Quando abiliti l'API Container Scanning, ogni nuova immagine inviata tramite push verrà analizzata automaticamente. Per ridurre i costi, separa le immagini contenitore che vuoi eseguire la scansione in un altro progetto.
Configura un nuovo progetto Google Cloud e abilita l'API Container Scanning per il progetto. Per questo progetto verranno addebitati i normali addebiti di fatturazione per Artifact Registry e Container Registry (deprecato). Esegui il push delle immagini che vuoi esaminare in questo progetto.
Aggiungi i seguenti passaggi nella pipeline CI/CD:
Aggiungi un tag corrispondente al progetto Artifact Registry o Container Registry in cui è abilitata la funzionalità 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 carichi in un determinato periodo di tempo e moltiplica questo numero per il prezzo per scansione. A tale scopo, puoi eseguire 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à disponibile in Prezzi.PROJECT_REPOSITORY
: il repository del progetto. Ad esempio,gcr.io/corp-staging
.START_DATE
: la data di inizio del periodo da stimare, in formatoY-m-d
. Ad esempio:2020-03-01
.END_DATE
: la data di fine del periodo da stimare, in formatoY-m-d
. Ad esempio:2020-03-31
.
Esegui lo script:
bash cost-estimation.sh
Viene mostrato 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:
L'invio della stessa immagine a più località a più regioni nello stesso progetto non genera costi aggiuntivi.
L'invio della stessa immagine a due repository diversi all'interno di due progetti diversi non genera costi aggiuntivi.
Controllare i costi attuali di analisi delle vulnerabilità
Puoi visualizzare queste informazioni nel report di fatturazione.
Passaggi successivi
- Scopri di più sull'analisi delle vulnerabilità.