Bereinigungsrichtlinien konfigurieren

Mit einer Bereinigungsrichtlinie für die Artifact Registry können Sie Kriterien für das automatische Löschen von Artefaktversionen festlegen, die Sie nicht mehr benötigen, oder Artefakte behalten, die Sie unbegrenzt speichern möchten.

Bereinigungsrichtlinien sind nützlich, wenn Sie viele Versionen Ihrer Artefakte speichern, aber nur bestimmte Versionen aufbewahren müssen, die Sie für die Produktion freigeben. Sie können Löschrichtlinien mit Kriterien für das Löschen von Artefakten und Aufbewahrungsrichtlinien mit Kriterien für das Aufbewahren von Artefakten definieren.

Wenn eine Artefaktversion sowohl den Kriterien einer Löschrichtlinie als auch einer Aufbewahrungsrichtlinie entspricht, wird in Artifact Registry die Aufbewahrungsrichtlinie angewendet.

Durch Löschrichtlinien ausgelöste Löschvorgänge werden auf Ihr Kontingent für Löschanfragen pro Projekt in Artifact Registry angerechnet und sind auf 300.000 Löschvorgänge pro Repository und Tag beschränkt.

Zeitplan für die Richtlinienanwendung

Artifact Registry löscht und behält Artefakte, die Ihren Bereinigungsrichtlinien entsprechen, mithilfe eines regelmäßig ausgeführten Hintergrundjobs. Die Änderungen treten innerhalb von etwa einem Tag in Kraft.

Maximale Anzahl von Bereinigungsrichtlinien pro Repository

Sie können maximal 10 Bereinigungsrichtlinien auf ein Repository anwenden.

Unterstützte Formate

Sie können eine Bereinigungsrichtlinie für Standard- und Remote-Repositories für alle Repository-Formate festlegen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Artifact Registry Administrator (roles/artifactregistry.admin) für das Repository-Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Anwenden oder Entfernen von Bereinigungsrichtlinien benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Anwenden oder Entfernen von Bereinigungsrichtlinien erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Richtlinien für die Bereinigung anzuwenden oder zu entfernen:

  • artifactregistry.repositories.update
  • So löschen Sie Artefakte, die die Kriterien in einer Bereinigungsrichtlinie erfüllen: artifactregistry.versions.delete

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Die Standardrolle für den Artifact Registry-Dienst-Agenten enthält die Berechtigung artifactregistry.versions.delete, die zum Löschen von Bildern erforderlich ist, die die Kriterien in einer Bereinigungsrichtlinie erfüllen.

Richtliniendatei erstellen

Eine Richtliniendatei ist eine JSON-Datei, in der Ihre Richtlinien zum Löschen und Aufbewahren von Daten definiert werden. Sie können eine Richtliniendatei erstellen, indem Sie eine JSON-Datei erstellen und bearbeiten und dann die Richtlinie mit der Google Cloud CLI oder der Google Cloud -Konsole anwenden. Löschrichtlinien geben Bedingungen für das Löschen von Artefakten an. In Aufbewahrungsrichtlinien werden Bedingungen für die Aufbewahrung eines Artefakts oder eine Anzahl der neuesten Versionen festgelegt, die beibehalten werden sollen. Sie können keine Bedingungen und die neuesten Versionen in derselben Aufbewahrungsrichtlinie verwenden.

Löschrichtlinie erstellen

Mit einer Löschrichtlinie können Sie das Mindest- oder Höchstalter für das Löschen von Artefakten und zusätzliche Filterkriterien angeben, um die Richtlinie auf bestimmte Artefakte zu beschränken.

Wenn Sie bestimmte Artefakte aus irgendeinem Grund nicht gelöscht haben möchten, erstellen Sie eine Bedingte Aufbewahrungsrichtlinie oder eine Aufbewahrungsrichtlinie für aktuellste Versionen sowie eine Löschrichtlinie. Wenn ein Artefakt sowohl den Kriterien in der Löschrichtlinie als auch in der Aufbewahrungsrichtlinie entspricht, wird es aufbewahrt.

Console

Sie können eine Löschrichtlinie für ein neues oder vorhandenes Repository erstellen.

So fügen Sie einem vorhandenen Repository eine Löschrichtlinie hinzu:

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Weitere Informationen zum Aufrufen der Testergebnisse finden Sie unter Probelauf.

    Wenn Sie sicher sind, dass die Richtlinie wie vorgesehen funktioniert, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinie anzuwenden und die ausgewählten Artefakte zu löschen.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
    • Richtlinientyp: Wählen Sie Bedingte Löschung aus.
    • Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository hochgeladen oder daraus abgerufen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.

      • Beliebiger Tag-Status: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.
      • Getaggt: gilt nur für getaggte Artefakte.
      • Ohne Tag: gilt nur für nicht getaggte Artefakte.

      Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.

      Weitere Informationen zum Tag-Status im Zusammenhang mit Richtlinien zur Datenbereinigung finden Sie in der Referenz zu TagState.

  5. Sie haben folgende Möglichkeiten, Ihre Löschrichtlinie zu definieren:

    • Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe test und staging würden beispielsweise mit Bildern mit den Tags testenv und staging-1.5 übereinstimmen. tagState muss auf TAGGED gesetzt sein, damit Tag-Präfixe verwendet werden können.
    • Versionspräfixe: Eine durch Kommas getrennte Liste von Präfixen für die Versionen von Artefakten. Beispiel: v1, v2 würde mit den Versionen v1.5, v2.0alpha und v10.2 übereinstimmen.
    • Paketpräfixe: Liste der Präfixe für Artefaktenamen. Sie können mehrere Präfixe eingeben, indem Sie zwischen den Präfixen Enter oder , drücken. Mit red, blue werden beispielsweise die beiden Präfixe red und blue erstellt und mit den Artefaktnamen red-team, redis und bluebird abgeglichen.
    • Älter als: Gibt die Mindestzeit an, die vergangen ist, seit die Version eines Artefakts im Repository erstellt wurde. Die Zeit wird als Dauer angegeben. 30d entspricht beispielsweise 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie s, m, h oder d anhängen.
    • Jünger als: Gibt die maximale Zeit an, die seit der Erstellung der Version eines Artefakts im Repository vergangen ist. Die Zeit wird als Dauer angegeben. 30d entspricht beispielsweise 30 Tagen.
  6. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  7. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können Ihre Richtlinien für die Bereinigung im Bereich Repository-Details aufrufen, indem Sie auf Mehr anzeigen klicken.

JSON

{
  "name": "DELETE_POLICY_NAME",
  "action": {"type": "Delete"},
  "condition": {
    "tagState": "TAG_STATUS",
    "tagPrefixes": ["TAG_PREFIXES"],
    "versionNamePrefixes": ["VERSION_PREFIXES"],
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "olderThan": "OLDER_THAN_DURATION",
    "newerThan": "NEWER_THAN_DURATION"
  }
}

Eine Löschrichtlinie muss einen Namen, eine Aktion und mindestens eine Bedingung enthalten.

name
Im Snippet für die Löschrichtlinie ist DELETE_POLICY_NAME der Name der Richtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
action
Für eine Löschrichtlinie ist der Wert {"type": "Delete"}.
condition
Geben Sie eine oder mehrere der folgenden Bedingungen an:
  • tagState: TAG_STATUS gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository hochgeladen oder daraus abgerufen wird. Unterstützte Werte:

    • tagged: gilt nur für getaggte Artefakte.
    • untagged: gilt nur für nicht getaggte Artefakte.
    • any: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.

    Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.

    Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.

  • tagPrefixes: TAG_PREFIXES ist eine durch Kommas getrennte Liste von Tag-Präfixen. Beispiel: "test", "staging" würde mit Bildern mit den Tags "testenv" und "staging-1.5" übereinstimmen. tagState muss auf TAGGED gesetzt sein, damit Tag-Präfixe verwendet werden können.

  • versionNamePrefixes: VERSION_PREFIXES ist eine durch Kommas getrennte Liste von Präfixen für Artefaktversionen. Beispiel: "v1", "v2" stimmt mit den Versionen "v1.5", "v2.0alpha" und "v10.2" überein.

  • packageNamePrefixes: PACKAGE_PREFIXES ist eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen. Beispiel: "red", "blue" stimmt beispielsweise mit den Artefaktnamen "red-team", "redis" und "bluebird" überein.

  • olderThan: OLDER_THAN_DURATION ist die Mindestdauer, die vergangen ist, seit die Version eines Artefakts im Repository erstellt wurde. 30d entspricht beispielsweise 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie s, m, h oder d anhängen.

  • newerThan: NEWER_THAN_DURATION ist die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. 30d entspricht beispielsweise 30 Tagen.

Bedingte Aufbewahrungsrichtlinie erstellen

Mit einer richtlinienbasierten Aufbewahrung werden Kriterien für die Aufbewahrung von Artefakten festgelegt. Mit Aufbewahrungsrichtlinien können Sie Artefakte, die gemäß den Vorgaben Ihrer Löschrichtlinie gelöscht würden, aber aufbewahrt werden sollen, beibehalten. Wenn ein Artefakt sowohl den Kriterien einer Lösch- als auch einer Aufbewahrungsrichtlinie entspricht, wird es aufbewahrt.

Console

Sie können eine Aufbewahrungsrichtlinie für ein neues oder vorhandenes Repository erstellen.

So fügen Sie einem vorhandenen Repository eine Aufbewahrungsrichtlinie hinzu:

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse Ihrer Aufbewahrungsrichtlinie zu sehen. Weitere Informationen zum Ansehen der Testergebnisse finden Sie unter Probelauf.

    Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
    • Richtlinientyp: Wählen Sie Bedingte Beibehaltung aus.
    • Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository hochgeladen oder daraus abgerufen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.

      • Beliebiger Tag-Status: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.
      • Getaggt: gilt nur für getaggte Artefakte.
      • Ohne Tag: gilt nur für nicht getaggte Artefakte.

      Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden. Weitere Informationen zum Tag-Status im Zusammenhang mit Richtlinien zur Datenbereinigung finden Sie in der Referenz zu TagState.

  5. Sie haben folgende Möglichkeiten, die Aufbewahrungsrichtlinie zu definieren:

    • Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe test und staging würden beispielsweise mit Bildern mit den Tags testenv und staging-1.5 übereinstimmen. tagState muss auf TAGGED gesetzt sein, damit Tag-Präfixe verwendet werden können.
    • Versionspräfixe: Eine durch Kommas getrennte Liste von Präfixen für die Versionen von Artefakten. Beispiel: v1, v2 würde mit den Versionen v1.5, v2.0alpha und v10.2 übereinstimmen.
    • Paketpräfixe: Eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen. Beispiel: red, blue würde mit den Artefaktnamen red-team, redis und bluebird übereinstimmen.
    • Älter als: Gibt die Mindestzeit an, die vergangen ist, seit die Version eines Artefakts im Repository erstellt wurde. Die Zeit wird als Dauer angegeben. 30d entspricht beispielsweise 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie s, m, h oder d anhängen.
    • Jünger als: Gibt die maximale Zeit an, die seit der Erstellung der Version eines Artefakts im Repository vergangen ist. Die Zeit wird als Dauer angegeben. 30d entspricht beispielsweise 30 Tagen.
  6. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  7. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet.

JSON

Das Format ähnelt dem einer Löschrichtlinie. Bei einer Beibehaltungsrichtlinie ist der Wert für action {"type": "Keep"}.

{
  "name": "KEEP_POLICY_NAME",
  "action": {"type": "Keep"},
  "condition": {
    "tagState": "TAG_STATUS",
    "tagPrefixes": ["TAG_PREFIXES"],
    "versionNamePrefixes": ["VERSION_PREFIXES"],
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "olderThan": "OLDER_THAN_DURATION",
    "newerThan": "NEWER_THAN_DURATION"
  }
}

Ersetzen Sie Folgendes:

  • KEEP_POLICY_NAME mit dem Namen der Bereinigungsrichtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
  • TAG_STATUS mit dem Tag-Status, der angibt, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository hoch- oder daraus heruntergeladen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.

    Folgende Optionen sind verfügbar:

    • tagged: gilt nur für getaggte Artefakte.
    • untagged: gilt nur für nicht getaggte Artefakte.
    • any: gilt für alle Versionen

    Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden. Weitere Informationen zum Tag-Status im Zusammenhang mit Richtlinien zur Datenbereinigung finden Sie in der Referenz zu TagState.

  • TAG_PREFIXES durch eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe test und staging würden beispielsweise mit Bildern mit den Tags testenv und staging-1.5 übereinstimmen. tagState muss auf TAGGED gesetzt sein, damit Tag-Präfixe verwendet werden können.

  • VERSION_PREFIXES durch eine durch Kommas getrennte Liste von Präfixen für Artefaktversionen. Beispiel: v1, v2 stimmt mit den Versionen v1.5, v2.0alpha und v10.2 überein.

  • PACKAGE_PREFIXES durch eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen. Beispiel: red, blue würde mit den Artefaktnamen red-team, redis und bluebird übereinstimmen.

  • OLDER_THAN_DURATION mit der Mindestzeit, die seit der Erstellung der Version eines Artefakts im Repository vergangen ist, angegeben als Dauer. 30d entspricht beispielsweise 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie s, m, h oder d anhängen.
  • NEWER_THAN_DURATION mit der maximalen Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. 30d entspricht beispielsweise 30 Tagen.

Richtlinie zum Beibehalten der neuesten Versionen erstellen

Sie können eine Aufbewahrungsrichtlinie erstellen, um eine bestimmte Anzahl von Versionen beizubehalten. Sie können die Kriterien Bedingte Aufbewahrung und Neueste Versionen beibehalten nicht in derselben Aufbewahrungsrichtlinie verwenden.

Mit Richtlinien zum Aufbewahren können Sie Artefakte, die gemäß den Vorgaben Ihrer Löschrichtlinie gelöscht würden, aber aufbewahrt werden sollen, behalten. Wenn ein Artefakt sowohl die Kriterien für eine Lösch- als auch für eine Aufbewahrungsrichtlinie erfüllt, wird es aufbewahrt.

Console

Sie können eine Richtlinie zum Aufbewahren der neuesten Versionen für ein neues oder vorhandenes Repository erstellen.

So fügen Sie einem vorhandenen Repository die Richtlinie „Neueste Versionen beibehalten“ hinzu:

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse Ihrer Aufbewahrungsrichtlinie zu sehen. Weitere Informationen zum Aufrufen der Testergebnisse finden Sie unter Probelauf.

    Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
    • Richtlinientyp: Wählen Sie Neueste Versionen beibehalten aus.
  5. Geben Sie im Feld Anzahl der Versionen beibehalten die Anzahl der Versionen eines Artefakts ein, die in Ihrem Repository beibehalten werden sollen.

  6. Optional: Wählen Sie Paketpräfixe aus, um Paketpräfixe anzugeben, auf die die Aufbewahrungsrichtlinie angewendet werden soll. Beispiel: red, blue würde mit den Artefaktnamen red-team, redis und bluebird übereinstimmen.

  7. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  8. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können Ihre Richtlinien für die Bereinigung im Bereich Repository-Details aufrufen, indem Sie auf Mehr anzeigen klicken.

JSON

Das Format ähnelt dem einer Löschrichtlinie. Bei einer Beibehaltungsrichtlinie ist der Wert für action {"type": "Keep"}.

Eine Aufbewahrungsrichtlinie für die Beibehaltung einer bestimmten Anzahl von Versionen enthält einen mostRecentVersions-Abschnitt anstelle eines condition-Abschnitts.

{
  "name": "KEEP_POLICY_NAME",
  "action": {"type": "Keep"},
  "mostRecentVersions": {
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "keepCount": MINIMUM_NUMBER
  }
}

Ersetzen Sie Folgendes:

  • KEEP_POLICY_NAME ist der Name der Richtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
  • PACKAGE_PREFIXES mit den optionalen Paketpräfixen, auf die die Richtlinie angewendet werden soll. Beispiel: red, blue würde mit den Artefaktnamen red-team, redis und bluebird übereinstimmen.
  • MINIMUM_NUMBER durch die Anzahl der Versionen eines Artefakts, die in Ihrem Repository beibehalten werden sollen.

Wenn Sie die Aufbewahrungsrichtlinie auf alle Pakete in Ihrem Repository anwenden möchten, lassen Sie die Bedingung packageNamePrefixes weg. Die angegebene Anzahl der letzten Versionen jedes Pakets in Ihrem Repository wird beibehalten.

Beispiel für eine Richtliniendatei

Die folgende Richtliniendatei enthält eine Löschrichtlinie und zwei Beibehaltungsrichtlinien.

  • Gemäß der delete-prerelease-Richtlinie werden Artefaktversionen 30 Tage nach dem Upload entfernt, wenn das Artefakt mit dem String alpha oder v0 beginnt.
  • Mit der Richtlinie keep-tagged-release werden Artefakte mit dem Präfix release beibehalten, deren Dateiname mit webapp oder mobile beginnt.
  • Mit der keep-minimum-versions-Richtlinie werden die fünf neuesten Versionen von Artefakten beibehalten, deren Dateiname mit webapp, mobile oder sandbox beginnt.
[
  {
    "name": "delete-prerelease",
    "action": {"type": "Delete"},
    "condition": {
      "tagState": "tagged",
      "tagPrefixes": ["alpha", "v0"],
      "olderThan": "30d"
    }
  },
  {
    "name": "keep-tagged-release",
    "action": {"type": "Keep"},
    "condition": {
      "tagState": "tagged",
      "tagPrefixes": ["release"],
      "packageNamePrefixes": ["webapp", "mobile"]
    }
  },
  {
    "name": "keep-minimum-versions",
    "action": {"type": "Keep"},
    "mostRecentVersions": {
      "packageNamePrefixes": ["webapp", "mobile", "sandbox"],
      "keepCount": 5
    }
  }
]

Richtlinien mit einem Probelauf testen

Wenn Sie Ihre Bereinigungsrichtlinien testen möchten, können Sie in der Konsole einen Probelauf festlegen oder den Befehl gcloud artifacts set-cleanup-policies mit dem Flag --dry-run ausführen.

Um die Auswirkungen Ihrer Bereinigungsrichtlinien zu analysieren, können Sie sich die Audit-Logs zum Datenzugriff der Artifact Registry ansehen. Wenn Sie Audit-Logs zum Datenzugriff für Bereinigungsrichtlinien erhalten möchten, müssen Sie den Datenzugriffs-Audit-Log-Typ Datenschreiben für den Artifact Registry-Dienst explizit aktivieren. Informationen zum Aktivieren von Audit-Logs zum Datenzugriff finden Sie unter Audit-Logs aktivieren.

Console

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und konfigurieren Sie die Optionen für die Richtlinien Bedingtes Löschen, Bedingtes Beibehalten oder Neueste Versionen beibehalten.

  5. Klicken Sie auf Aktualisieren.

Wenn eine Löschrichtlinie zu einer BatchDeleteVersions-Aktion führt, wird der Parameter validateOnly zu "true" ausgewertet.

Führen Sie den folgenden Befehl aus, um Audit-Logs auf Probeläufe Ihrer Bereinigungsrichtlinien zu prüfen:

gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
    --resource-names="projects/PROJECT_ID" \
    --project=PROJECT_ID

Die Ausgabe sollte so aussehen:

insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
  first: true
  id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
  producer: artifactregistry.googleapis.com
protoPayload:
  '@type': type.googleapis.com/google.cloud.audit.AuditLog
  authenticationInfo:
    principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
  authorizationInfo:
  - granted: true
    permission: artifactregistry.versions.delete
    resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    resourceAttributes: {}
  methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
  request:
    '@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
    names:
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    validateOnly: true
  requestMetadata:
    callerIp: private
    callerSuppliedUserAgent: stubby_client
    destinationAttributes: {}
    requestAttributes:
      auth: {}
      time: '2023-05-26T04:31:21.909465579Z'
  resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
  serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
  labels:
    method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
    project_id: my-project
    service: artifactregistry.googleapis.com
  type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'

gcloud

Führen Sie den folgenden Befehl aus, um einen Probelauf mit Ihren Bereinigungsrichtlinien durchzuführen:

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.

Wenn eine Löschrichtlinie zu einer BatchDeleteVersions-Aktion führt, wird der Parameter validateOnly zu "true" ausgewertet.

Führen Sie den folgenden Befehl aus, um Audit-Logs auf Probeläufe Ihrer Bereinigungsrichtlinien zu prüfen:

gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
    --resource-names="projects/PROJECT_ID" \
    --project=PROJECT_ID

Die Ausgabe sollte so aussehen:

insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
  first: true
  id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
  producer: artifactregistry.googleapis.com
protoPayload:
  '@type': type.googleapis.com/google.cloud.audit.AuditLog
  authenticationInfo:
    principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
  authorizationInfo:
  - granted: true
    permission: artifactregistry.versions.delete
    resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    resourceAttributes: {}
  methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
  request:
    '@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
    names:
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    validateOnly: true
  requestMetadata:
    callerIp: private
    callerSuppliedUserAgent: stubby_client
    destinationAttributes: {}
    requestAttributes:
      auth: {}
      time: '2023-05-26T04:31:21.909465579Z'
  resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
  serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
  labels:
    method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
    project_id: my-project
    service: artifactregistry.googleapis.com
  type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'

Richtlinien auf ein Repository anwenden

Wenn Sie die in einer lokalen JSON-Datei definierten Bereinigungsrichtlinien verwenden möchten, wenden Sie sie mit der gcloud CLI auf Repositories an, in denen die Artifact Registry das automatische Löschen von Artefaktversionen übernehmen soll.

Wenn Sie Bereinigungsrichtlinien anwenden möchten, die in der Console auf Probelauf festgelegt sind, müssen Sie die Richtlinie auf Artefakte löschen festlegen.

Sie können Richtlinien zur Bereinigung nur auf Standard-Repositories anwenden. Sie können Bereinigungsrichtlinien nicht auf Folgendes anwenden:

  • Ein Google Cloud -Projekt.

Console

So wenden Sie Bereinigungsrichtlinien an:

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Artefakte löschen aus.

    Artifact Registry löscht und behält Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines regelmäßig ausgeführten Hintergrundjobs. Die Änderungen sollten innerhalb von etwa einem Tag wirksam werden.

gcloud

Führen Sie zum Anwenden von Bereinigungsrichtlinien den folgenden Befehl im Verzeichnis mit der Bereinigungsrichtliniendatei aus.

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --no-dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.
  • POLICY_FILE ist der Name der Datei mit der Bereinigungsrichtlinie.

Mit dem Flag --no-dry-run wird die Funktion für den Trockenlauf für das Repository deaktiviert.

Mit dem folgenden Befehl werden beispielsweise Richtlinien in policy.json auf das Repository my-repo in der Region us-west1 im Projekt my-project angewendet.

gcloud artifacts repositories set-cleanup-policies my-repo \
    --project=my-project \
    --location=us-west1 \
    --policy=policy.json

Artifact Registry löscht und behält Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines regelmäßig ausgeführten Hintergrundjobs. Die Änderungen sollten innerhalb von etwa einem Tag wirksam werden.

Richtlinie aktualisieren

Console

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Klicken Sie im Bereich Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie ändern möchten.

  4. Bearbeiten Sie die Bereinigungsrichtlinie und klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet.

gcloud

Wenn Sie vorhandene Richtlinien aktualisieren möchten, bearbeiten Sie die Einstellungen in der Richtliniendatei und führen Sie dann den folgenden Befehl aus, um die Richtlinien noch einmal anzuwenden.

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --no-dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.
  • POLICY_FILE ist der Name der Datei mit der Bereinigungsrichtlinie.

Mit dem Flag --no-dry-run wird die Funktion „Dry Run“ für das Repository deaktiviert.

Bereinigungsrichtlinien für Repositories auflisten

Sie können sich die mit einem Repository verknüpften Bereinigungsrichtlinien ansehen.

Console

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus, das Sie aufrufen möchten.

  3. Klicken Sie im Bereich Repository-Details auf Mehr anzeigen.

    Die Namen der Bereinigungsrichtlinien werden angezeigt.

  4. Klicken Sie auf Repository bearbeiten, um die Details der Bereinigungsrichtlinien des Repositories aufzurufen oder zu bearbeiten.

    Die Details Ihrer vorhandenen Bereinigungsrichtlinien finden Sie im Abschnitt Bereinigungsrichtlinien.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud artifacts repositories list-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.

Richtlinie aus einem Repository entfernen

Entfernen Sie eine Bereinigungsrichtlinie aus einem Repository, wenn Sie nicht mehr möchten, dass Artefaktversionen automatisch von Artifact Registry gelöscht werden.

Console

  1. Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. Bewegen Sie den Mauszeiger im Bereich Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie löschen möchten.

  4. Klicken Sie auf das Symbol Löschen.

  5. Klicken Sie auf Aktualisieren.

    Die Bereinigungsrichtlinie wird gelöscht.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
    --policynames=POLICY_NAMES \
    --project=PROJECT_ID \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • REPOSITORY ist der Name des Repositorys.
  • PROJECT_ID ist die ID Ihres Google Cloud -Projekts.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.
  • POLICY_NAMES ist eine durch Kommas getrennte Liste der Namen der Richtlinien, die Sie entfernen möchten.

Mit dem folgenden Befehl wird beispielsweise eine Richtlinie namens delete-test aus dem Repository my-repo in der Region us-west1 im Projekt my-project entfernt:

gcloud artifacts repositories delete-cleanup-policies my-repo \
    --policynames=delete-test \
    --project=my-project \
    --location=us-west1

Audit-Logeinträge für Bereinigungsrichtlinien

Wenn Sie Protokolleinträge für die Bereinigungsrichtlinie in Cloud Logging aufrufen möchten, müssen Sie die DATA_WRITE-Protokollierung aktivieren.

Wenn Sie eine Bereinigungsrichtlinie für ein Repository festlegen, wird der Vorgang als Aktualisierung des Repositories (UpdateRepository-Vorgang) protokolliert.

Wenn in Artifact Registry eine Version eines Artefakts gelöscht wird, wird das Ereignis in den Cloud Logging-Datenzugriffslogs protokolliert. Die Logeinträge zeigen, dass das Löschen vom Artifact Registry-Dienstkonto ausgeführt wurde. Die ID des Artifact Registry-Dienstkontos hat das Format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com.

Sonstige Tools

Für Container-Images können Sie auch die folgenden Tools zur Verwaltung des Image-Lebenszyklus verwenden:

Die Tools gcrane und gcr-cleaner sind keine offiziellen Google-Produkte.