Consultez la page des tarifs pour en savoir plus.
Bonnes pratiques de réduction des coûts
Lorsque vous activez l'API Container Analysis, chaque nouvelle image que vous transférez est automatiquement analysée. Pour limiter vos coûts, essayez les solutions suivantes :
Activez l'analyse sur des dépôts individuels au sein d'un projet.
Séparez les images de conteneur que vous souhaitez analyser dans un autre projet.
Configurez un nouveau projetGoogle Cloud et activez l'API Container Scanning pour ce projet. Ce projet entraîne des frais de facturation standards pour Artifact Registry. Transférez les images que vous souhaitez analyser vers ce projet.
Ajoutez les étapes suivantes à votre pipeline CI/CD :
Ajoutez un tag correspondant au projet Artifact Registry pour lequel Container Scanning est activé.
Transférez les images dans le projet.
Estimer vos coûts d'analyse
Pour calculer le coût approximatif des images d'un projet, estimez le nombre d'images que vous transférez sur une période donnée et multipliez ce nombre par le prix par analyse. Pour ce faire, exécutez un script shell dans Cloud Shell.
Ouvrez une fenêtre Cloud Shell pour le projet.
Cliquez sur l'icône Ouvrir l'éditeur et créez un fichier
cost-estimation.sh
avec le contenu suivant :#!/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"
Remplacez les éléments suivants :
PRICE
: prix de l'analyse automatique des failles indiqué dans Tarifs.PROJECT_REPOSITORY
: dépôt de votre projet. Exemple :gcr.io/corp-staging
.START_DATE
: date de début de la période à estimer, au formatY-m-d
. Par exemple,2020-03-01
.END_DATE
: date de fin de la période à estimer, au formatY-m-d
. Par exemple,2020-03-31
.
Exécutez le script :
bash cost-estimation.sh
Il indique le nombre total d'images et le coût total estimé :
Number of images: 53 Estimated cost: 13.78
Il ne s'agit que d'une estimation. Le coût réel peut varier en fonction d'autres facteurs, par exemple :
Le transfert d'une même image vers plusieurs emplacements multirégionaux d'un même projet ne génère pas de coûts supplémentaires.
Le transfert d'une même image vers deux dépôts différents dans deux projets différents ne génère pas de coûts supplémentaires.
Vérifier les coûts actuels d'analyse des failles
Vous pouvez consulter ces informations dans votre rapport sur la facturation.
Étapes suivantes
- Obtenez plus d'informations sur l'analyse des failles