Mettre à jour Container Analysis

Le service d'analyse des failles est devenu payant lors du lancement en disponibilité générale de Container Analysis. Pendant une période de promotion, les frais facturés sont réduits. Consultez la page des tarifs pour en savoir plus.

Une fois la période de promotion terminée, la facturation commence immédiatement après l'activation de l'API Container Scanning.

Mise à niveau…

Container Analysis a lancé une version accessible à tous le 20 septembre 2019. Si votre charge de travail utilise la version bêta de Container Analysis, tenez compte des points suivants pour migrer vers la version la plus récente :

  • API REST : Utilisez les points de terminaison de l'API REST GA

    https://containeranalysis.googleapis.com/v1
    

    au lieu de

    https://containeranalysis.googleapis.com/v1beta1
    
  • Mettez à jour vos bibliothèques clientes vers la version la plus récente. Pour en savoir plus, consultez la documentation sur les bibliothèques.

Bonnes pratiques pour limiter les coûts

Lorsque vous activez l'API Container Analysis, chaque nouvelle image que vous stockez est automatiquement analysée. Pour limiter vos coûts, séparez les images de conteneur que vous souhaitez analyser dans un autre projet.

  • Configurez un nouveau projet Google Cloud et activez l'API Container Scanning pour ce projet. Ce projet entraînera des frais de facturation normaux pour Container Registry. Transférez les images à analyser vers ce projet.

  • Pour automatiser ce processus, ajoutez une étape à votre pipeline CI/CD afin de transférer les images en fonction d'un tag vers votre nouveau projet Container Registry.

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, 0,26 $. Pour ce faire, exécutez un script shell dans Cloud Shell.

  1. Ouvrez Cloud Shell dans votre projet, cliquez sur l'icône Ouvrir l'éditeur et créez un fichier cost-estimation.sh contenant les éléments suivants :

    
    #!/bin/bash
    
    # Replace with your project data
    GC_PROJECT='[PROJECT_REPOSITORY]'
    START_DATE='[START_DATE]'
    END_DATE='[END_DATE]'
    
    IFS=$'\n'
    FILTER="timestamp.date('%Y-%m-%d', Z)>'$START_DATE' AND timestamp.date('%Y-%m-%d', Z)<'$END_DATE'"
    PRICE="0.26"
    
    images=$( gcloud container images list --repository="$GC_PROJECT" | sed -n '/gcr.io/p' )
    total_digests=0
    
    for image in $images; do
      image_digests=$( gcloud container images list-tags --filter="$FILTER" "$image" | 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 "Number of images: $total_digests"
    echo "Estimated cost: $total_price"
    
    

    Où :

    • [PROJECT_REPOSITORY] est le dépôt de votre projet. Exemple : gcr.io/corp-staging.
    • [START_DATE] est la date de début de la période à estimer, au format Y-m-d. Par exemple, 2020-03-01.
    • [END_DATE] est la date de fin de la période à estimer, au format Y-m-d. Par exemple, 2020-03-31.
  2. 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 de la même image vers différentes régions d'un même projet ne génère pas de coûts supplémentaires.

  • Le transfert de la 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.