Container Analysis aktualisieren

Das Scannen auf Sicherheitslücken wurde bei der Releasestufe "Allgemeine Verfügbarkeit" von Container Analysis ein kostenpflichtiger Dienst. Während eines Aktionszeitraums werden die Abrechnungskosten reduziert. Informationen finden Sie in der Preisübersicht.

Nach dem Aktionszeitraum beginnt die Abrechnung sobald Sie die Container Scanning API aktivieren.

Aktualisieren

Container Analysis hat am 20. September 2019 eine allgemein verfügbare Version veröffentlicht. Wenn Ihre Arbeitslast die Betaversion von Container Analysis verwendet, sollten Sie Folgendes beachten, um zur neuesten Version zu migrieren:

  • REST API: Verwenden Sie die GA REST API-Endpunkte

    https://containeranalysis.googleapis.com/v1
    

    anstelle von

    https://containeranalysis.googleapis.com/v1beta1
    
  • Aktualisieren Sie Ihre Clientbibliotheken auf die neueste Version. Weitere Informationen finden Sie in der Dokumentation zu Bibliotheken.

Best Practices zur Kostenkontrolle

Wenn Sie die Container Analysis API aktivieren, wird jedes neu hochgeladene Image automatisch gescannt. Sie sollten die Container-Images, die Sie scannen möchten, in einem anderen Projekt trennen, um Ihre Kosten niedrig zu halten.

  • Richten Sie ein neues Google Cloud-Projekt ein und aktivieren Sie die Container Scanning API für dieses Projekt. Für dieses Projekt fallen die normalen Kosten für Container Registry an. Verschieben Sie die Images, die Sie scannen möchten, in dieses Projekt.

  • Um diesen Prozess zu automatisieren, fügen Sie einen Schritt in Ihre CI/CD-Pipeline hinzu, um die Images basierend auf einem Tag in Ihr neues Container Registry-Projekt zu übertragen.

Scanning-Kosten einschätzen

Um die ungefähren Kosten für die Images in einem Projekt zu berechnen, schätzen Sie die Anzahl der Images, die Sie in einem Zeitrahmen übertragen, und multiplizieren Sie diese Anzahl mit dem Preis 0,26$. Führen Sie dazu ein Shell-Skript in Cloud Shell aus.

  1. Öffnen Sie Cloud Shell in Ihrem Projekt, klicken Sie auf das Symbol Editor öffnen und erstellen Sie eine neue Datei cost-estimation.sh mit folgendem Inhalt:

    
    #!/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"
    
    

    Dabei gilt:

    • [PROJECT_REPOSITORY] ist Ihr Projekt-Repository. Beispiel: gcr.io/corp-staging
    • [START_DATE] ist das Startdatum für den zu schätzenden Zeitraum im Format Y-m-d. Beispiel: 2020-03-01
    • [END_DATE] ist das Enddatum für den zu schätzenden Zeitraum im Format Y-m-d. Beispiel: 2020-03-31
  2. Führen Sie das Skript aus:

    bash cost-estimation.sh
    

    Es enthält die Gesamtanzahl der Images und die geschätzten Gesamtkosten:

    Number of images: 53
    Estimated cost: 13.78
    

Dies ist nur eine Schätzung. Die tatsächlichen Kosten können sich aufgrund anderer Faktoren ändern. Beispiele:

  • Das Übertragen desselben Images an verschiedene Multiregionen im selben Projekt verursacht keine zusätzlichen Kosten.

  • Das Hochladen desselben Images an zwei verschiedene Repositories in zwei verschiedenen Projekten verursacht keine zusätzlichen Kosten.