Consulta la página de precios para obtener más información.
Prácticas recomendadas para mantener los costes bajos
Cuando habilitas la API Container Scanning, se analiza automáticamente cada imagen nueva que envías. Para mantener los costes bajos, prueba lo siguiente:
Habilita el análisis en repositorios concretos de un proyecto.
Separa las imágenes de contenedor que quieras analizar en otro proyecto.
Configura un nuevo Google Cloud proyecto y habilita la API Container Scanning en él. Este proyecto incurrirá en los cargos de facturación normales de Artifact Registry. Envía las imágenes que quieras escanear a este proyecto.
Añade los siguientes pasos a tu flujo de trabajo de CI/CD:
Añade una etiqueta correspondiente al proyecto de Artifact Registry en el que esté habilitada la API Container Scanning.
Envía las imágenes al proyecto.
Calcular los costes de análisis
Para calcular el coste aproximado de las imágenes de un proyecto, estima el número de imágenes que subes en un periodo y multiplica ese número por el precio por análisis. Para ello, ejecuta una secuencia de comandos de shell en Cloud Shell.
Abre Cloud Shell en tu proyecto.
Haz clic en el icono Abrir editor y crea un archivo
cost-estimation.sh
con el siguiente contenido:#!/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"
Haz los cambios siguientes:
PRICE
: el precio del análisis automático de vulnerabilidades que se indica en la página Precios.PROJECT_REPOSITORY
: el repositorio de tu proyecto. Por ejemplo,gcr.io/corp-staging
.START_DATE
: la fecha de inicio del periodo que se va a estimar, en formatoY-m-d
. Por ejemplo,2020-03-01
.END_DATE
: fecha de finalización del periodo que se va a estimar, en formatoY-m-d
. Por ejemplo,2020-03-31
.
Ejecuta la secuencia de comandos:
bash cost-estimation.sh
Se muestra el número total de imágenes y el coste total estimado:
Number of images: 53 Estimated cost: 13.78
Esta es solo una estimación. El coste real puede cambiar debido a otros factores, como los siguientes:
Si insertas la misma imagen en diferentes multirregiones del mismo proyecto, no se generarán costes adicionales.
Enviar la misma imagen a dos repositorios diferentes de dos proyectos distintos no genera costes adicionales.
Consultar los costes de análisis de vulnerabilidades actuales
Puede consultar esta información en su informe de facturación.