Eine Bereinigungsrichtlinie für Artifact Registry definiert Kriterien für das automatische Löschen von Artefaktversionen, die Sie nicht mehr benötigen, oder für die Aufbewahrung von Artefakten, die Sie auf unbestimmte Zeit speichern möchten.
Bereinigungsrichtlinien sind nützlich, wenn Sie viele Versionen Ihrer Artefakte speichern, aber nur bestimmte Versionen beibehalten müssen, die Sie für die Produktion freigeben. Sie können Löschrichtlinien mit Kriterien für das Löschen von Artefakten definieren und Richtlinien beibehalten mit Kriterien für die Aufbewahrung von Artefakten.
Wenn eine Artefaktversion die Kriterien sowohl in einer Lösch- als auch in einer Keep-Richtlinie erfüllt, wendet Artifact Registry die Beibehaltungsrichtlinie an.
Durch Löschrichtlinien ausgelöste Löschungen werden auf Ihr Artifact Registry-Kontingent pro Projektlöschungsanfrage angerechnet und sind auf 300.000 Löschvorgänge pro Repository und Tag beschränkt.
Zeitplan für die Anwendung der Richtlinien
Artifact Registry löscht und speichert Artefakte, die Ihren Bereinigungsrichtlinien entsprechen, mithilfe eines Hintergrundjobs, der regelmäßig ausgeführt wird. Änderungen treten innerhalb von etwa einem Tag in Kraft.
Maximale Anzahl von Bereinigungsrichtlinien pro Repository
Sie können maximal zehn Bereinigungsrichtlinien auf ein Repository anwenden.
Unterstützte Formate
Sie können für alle Repository-Formate eine Bereinigungsrichtlinie für Standard- und Remote-Repositories festlegen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Artifact Registry-Administrator (roles/artifactregistry.admin
) für das Repository-Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Anwenden oder Entfernen von Bereinigungsrichtlinien benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff 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 Bereinigungsrichtlinien anzuwenden oder zu entfernen:
-
artifactregistry.repositories.update
-
So löschen Sie Artefakte, die die Kriterien in einer Bereinigungsrichtlinie erfüllen:
artifactregistry.versions.delete
Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Die Standardrolle für den Artifact Registry-Dienst-Agent umfasst die Berechtigung artifactregistry.versions.delete
. Diese ist zum Löschen von Images erforderlich, die die Kriterien einer Bereinigungsrichtlinie erfüllen.
Richtliniendatei erstellen
Eine Richtliniendatei ist eine JSON-Datei, in der Ihre Richtlinien zum Löschen und Aufbewahren definiert werden. Sie können eine Richtliniendatei erstellen, indem Sie eine JSON-Datei erstellen und bearbeiten und dann die Google Cloud CLI verwenden, um die Richtlinie anzuwenden, oder die Google Cloud Console verwenden. Löschrichtlinien geben Bedingungen für das Löschen von Artefakten an. Beibehaltungsrichtlinien legen Bedingungen zum Beibehalten eines Artefakts oder einer Reihe neuer zu beizubehaltender Versionen fest. Bedingungen und die neuesten Versionen können nicht in derselben Keep-Richtlinie verwendet werden.
Löschrichtlinie erstellen
Mit einer Löschrichtlinie können Sie das Mindest- oder Höchstalter für das Löschen von Artefakten sowie zusätzliche Filterkriterien angeben, um die Richtlinie auf bestimmte Artefakte zu beschränken.
Wenn bestimmte Artefakte nicht gelöscht werden sollen, erstellen Sie eine conditional Keep-Richtlinie oder eine Keep-Richtlinie für die neueste Version sowie eine Löschrichtlinie. Wenn ein Artefakt die Kriterien sowohl in der Lösch- als auch in der Keep-Richtlinie erfüllt, wird das Artefakt beibehalten.
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:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um Ihre neue Richtlinie zu testen, bevor Sie die Artefakte löschen. Weitere Informationen zum Anzeigen der Testergebnisse finden Sie unter Probelauf.
Wenn Sie sicher sind, dass Ihre Richtlinie wie vorgesehen funktioniert, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um Ihre Bereinigungsrichtlinie anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.
- Richtlinientyp: Wählen Sie Bedingtes Löschen aus.
Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image per Push oder Pull in ein oder aus einem Repository übertragen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.
- Beliebiger Tag-Status: Der Tag-Status wird ignoriert und sowohl auf getaggte als auch auf nicht getaggte Artefakte angewendet.
- Tagged: Gilt nur für getaggte Artefakte.
- Nicht getaggt: Gilt nur für Artefakte ohne Tags.
Formate, die keine Tags unterstützen, werden wie
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 in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.
Sie haben folgende Möglichkeiten, Ihre Löschrichtlinie optional zu definieren:
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
test
undstaging
stimmen beispielsweise mit Images mit den Tagstestenv
undstaging-1.5
überein.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können. - Versionspräfixe: ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:
v1
undv2
entsprechen den Versionenv1.5
,v2.0alpha
undv10.2
. - Paketpräfixe: ist eine Liste von Artefaktnamenpräfixen. Sie können mehrere Präfixe eingeben, indem Sie zwischen den Präfixen
Enter
oder,
drücken.red, blue
würde beispielsweise die beiden Präfixered
undblue
erstellen und den Artefaktnamenred-team
,redis
undbluebird
entsprechen. - Älter als: Die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen. Sie können eine Dauer von Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
bzw.d
anhängen. - Neuer als: Die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können die Bereinigungsrichtlinien 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 zum Löschen von Richtlinien ist DELETE_POLICY_NAME der Name der Richtlinie. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.
action
- Bei einer 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 per Push oder Pull in ein oder aus einem Repository übertragen wird. Unterstützte Werte:tagged
: Gilt nur für getaggte Artefakte.untagged
: gilt nur für nicht getaggte Artefakte.any
: ignoriert den Tag-Status und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.
Formate, die keine Tags unterstützen, werden wie
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."test", "staging"
gleicht beispielsweise Bilder mit den Tags"testenv"
und"staging-1.5"
ab.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können.versionNamePrefixes
: VERSION_PREFIXES ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:"v1", "v2"
würde den Versionen"v1.5"
,"v2.0alpha"
und"v10.2"
entsprechen.packageNamePrefixes
: PACKAGE_PREFIXES ist eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen."red", "blue"
würde beispielsweise mit den Artefaktnamen"red-team"
,"redis"
und"bluebird"
übereinstimmen.olderThan
: OLDER_THAN_DURATION ist die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen. Sie können eine Dauer von Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
bzw.d
anhängen.newerThan
: NEWER_THAN_DURATION ist die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository. Sie wird als Dauer angegeben. Beispiel:30d
entspricht 30 Tagen.
Bedingte Keep-Richtlinie erstellen
Eine bedingte Keep-Richtlinie gibt Kriterien für die Aufbewahrung von Artefakten an. Keep-Richtlinien arbeiten mit Löschrichtlinien zusammen, um Artefakte aufzubewahren, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht werden, die Sie aber behalten möchten. Wenn ein Artefakt die Kriterien für eine Lösch- und eine Beibehaltungsrichtlinie erfüllt, wird es beibehalten.
Console
Sie können eine Keep-Richtlinie für ein neues oder vorhandenes Repository erstellen.
So fügen Sie einem vorhandenen Repository eine Keep-Richtlinie hinzu:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um Ihre neue Richtlinie zu testen, bevor Sie die Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse der Notizenrichtlinie zu sehen. Weitere Informationen zum Anzeigen 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 Ihre Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.
- Richtlinientyp: Wählen Sie Bedingt aus.
Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image per Push oder Pull in ein oder aus einem Repository übertragen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.
- Beliebiger Tag-Status: Der Tag-Status wird ignoriert und sowohl auf getaggte als auch auf nicht getaggte Artefakte angewendet.
- Tagged: Gilt nur für getaggte Artefakte.
- Nicht getaggt: Gilt nur für Artefakte ohne Tags.
Formate, die keine Tags unterstützen, werden wie
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 in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.
Sie haben folgende Möglichkeiten, eine Aufbewahrungsregel optional zu definieren:
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
test
undstaging
stimmen beispielsweise mit Images mit den Tagstestenv
undstaging-1.5
überein.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können. - Versionspräfixe: ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:
v1
undv2
entsprechen den Versionenv1.5
,v2.0alpha
undv10.2
. - Paketpräfixe: ist eine durch Kommas getrennte Liste von Artefaktnamenpräfixen.
Beispielsweise würde
red, blue
mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
- Älter als: Die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen. Sie können eine Dauer von Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
bzw.d
anhängen. - Neuer als: Die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird auf Ihr Repository angewendet.
JSON
Das Format ähnelt einer Löschrichtlinie. Bei einer Keep-Richtlinie 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
durch den Namen der Bereinigungsrichtlinie. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.TAG_STATUS
durch den Tag-Status, der angibt, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden mit Tags versehen, wenn ein Image per Push in ein oder aus einem Repository übertragen 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 wie
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 in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.TAG_PREFIXES
durch eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixetest
undstaging
stimmen beispielsweise mit Images mit den Tagstestenv
undstaging-1.5
überein.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können.VERSION_PREFIXES
durch eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:v1, v2
würde den Versionenv1.5
,v2.0alpha
undv10.2
entsprechen.PACKAGE_PREFIXES
durch eine durch Kommas getrennte Liste von Artefaktnamenpräfixen.red, blue
würde beispielsweise mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
OLDER_THAN_DURATION
durch die Mindestzeitdauer seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen. Sie können eine Dauer von Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
bzw.d
anhängen.NEWER_THAN_DURATION
durch die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen.
Aufbewahrungsrichtlinie für die neuesten Versionen erstellen
Sie können eine Keep-Richtlinie erstellen, um eine bestimmte Anzahl von Versionen beizubehalten. Die Kriterien Bedingtes Speichern und Neueste Versionen beibehalten können nicht in derselben Richtlinie verwendet werden.
Keep-Richtlinien arbeiten mit Löschrichtlinien zusammen, um Artefakte aufzubewahren, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht werden, die Sie aber behalten möchten. Wenn ein Artefakt die Kriterien für eine Lösch- und eine Keep-Richtlinie erfüllt, wird es beibehalten.
Console
Sie können eine Richtlinie zur Aufrechterhaltung der neuesten Versionen für ein neues oder vorhandenes Repository erstellen.
So fügen Sie einem vorhandenen Repository die Richtlinie „Neueste Versionen beibehalten“ hinzu:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um Ihre neue Richtlinie zu testen, bevor Sie die Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse der Notizenrichtlinie zu sehen. Weitere Informationen zum Anzeigen 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 Ihre Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.
- Richtlinientyp: Wählen Sie Neueste Versionen beibehalten aus.
Geben Sie im Feld Anzahl der Notizen die Anzahl der Versionen eines Artefakts ein, die in Ihrem Repository beibehalten werden sollen.
Optional: Wählen Sie Paketpräfixe aus, um Paketpräfixe anzugeben, auf die die Keep-Richtlinie angewendet werden soll.
red, blue
würde beispielsweise mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können die Bereinigungsrichtlinien im Bereich Repository-Details aufrufen, indem Sie auf Mehr anzeigen klicken.
JSON
Das Format ähnelt einer Löschrichtlinie. Bei einer Keep-Richtlinie ist der Wert für action
{"type": "Keep"}
.
Eine Keep-Richtlinie zur Beibehaltung einer bestimmten Anzahl von Versionen hat 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
durch einen Namen für Ihre Notizenrichtlinie. Der Name darf innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, nur einmal vorkommen.PACKAGE_PREFIXES
durch die optionalen Paketpräfixe, auf die die Keep-Richtlinie angewendet werden soll.red, blue
würde beispielsweise mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
MINIMUM_NUMBER
durch die Anzahl der Versionen eines Artefakts, das in Ihrem Repository beibehalten werden soll.
Wenn Sie die Keep-Richtlinie auf alle Pakete in Ihrem Repository anwenden möchten, lassen Sie die Bedingung packageNamePrefixes
weg. Die angegebene Anzahl aktueller Versionen jedes Pakets in Ihrem Repository wird beibehalten.
Beispiel für Richtliniendatei
Das folgende Beispiel für eine Richtliniendatei enthält eine Löschrichtlinie und zwei Aufbewahrungsregeln.
- Die Richtlinie
delete-prerelease
entfernt Artefaktversionen 30 Tage nach dem Upload, wenn das Artefakt mit dem Stringalpha
oderv0
beginnt. - Die Richtlinie
keep-tagged-release
behält Artefakte bei, die mit dem Präfixrelease
getaggt sind und deren Dateinamen mitwebapp
odermobile
beginnen. - Die Richtlinie
keep-minimum-versions
behält die fünf neuesten Versionen von Artefakten bei, deren Dateinamen mitwebapp
,mobile
odersandbox
beginnen.
[
{
"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
Zum Testen Ihrer Bereinigungsrichtlinien können Sie die Bereinigungsrichtlinie in der Console auf 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 von Artifact Registry ansehen. Damit Sie Audit-Logs zum Datenzugriff für Bereinigungsrichtlinien erhalten, müssen Sie für den Artifact Registry-Dienst den Typ Datenschreibvorgang der Audit-Logs zum Datenzugriff explizit aktivieren. Informationen zum Aktivieren von Audit-Logs zum Datenzugriff finden Sie unter Audit-Logs aktivieren.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und konfigurieren Sie die Optionen für die Richtlinien Bedingtes Löschen, Bedingtes Beibehalten oder Neueste Versionen beibehalten.
Klicken Sie auf Aktualisieren.
Wenn eine Löschrichtlinie zur Aktion BatchDeleteVersions
führt, wird der Parameter validateOnly
als "true"
ausgewertet.
Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen:
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-CLI
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.- Ersetzen Sie
PROJECT_ID
durch die ID Ihres Google Cloud-Projekts. LOCATION
durch den regionalen oder multiregionalen Standort des Repositorys.
Wenn eine Löschrichtlinie zur Aktion BatchDeleteVersions
führt, wird der Parameter validateOnly
als "true"
ausgewertet.
Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen:
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 Ihre in einer lokalen JSON-Datei definierten Bereinigungsrichtlinien verwenden möchten, wenden Sie sie über die gcloud CLI auf Repositories an, in denen Artifact Registry das automatische Löschen von Artefaktversionen verarbeiten soll.
Wenn Sie Bereinigungsrichtlinien anwenden möchten, die in der Console auf Probelauf festgelegt sind, legen Sie die Richtlinie auf Artefakte löschen fest.
Sie können Bereinigungsrichtlinien nur auf Standard-Repositories anwenden. Bereinigungsrichtlinien können nicht auf Folgendes angewendet werden:
- Ein Google Cloud-Projekt.
Console
So wenden Sie Bereinigungsrichtlinien an:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Artefakte löschen aus.
Artifact Registry löscht und speichert Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines Hintergrundjobs, der regelmäßig ausgeführt wird. Änderungen sollten innerhalb von etwa einem Tag wirksam werden.
gcloud
Führen Sie den folgenden Befehl im Verzeichnis mit der Bereinigungsrichtlinie aus, um Bereinigungsrichtlinien 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.- Ersetzen Sie
PROJECT_ID
durch die ID Ihres Google Cloud-Projekts. LOCATION
durch den regionalen oder multiregionalen Standort des Repositorys.--no-dry-run
deaktiviert die Probelauffunktion für das Repository.POLICY_FILE
ist der Name der Datei mit der Bereinigungsrichtlinie.
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 speichert Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines Hintergrundjobs, der regelmäßig ausgeführt wird. Änderungen sollten innerhalb von etwa einem Tag wirksam werden.
Richtlinie aktualisieren
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Klicken Sie im Abschnitt Cleanup policies auf den Namen der Richtlinie, die geändert werden soll.
Bearbeiten Sie die Bereinigungsrichtlinie und klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird auf Ihr Repository angewendet.
gcloud-CLI
Bearbeiten Sie die Einstellungen in der Richtliniendatei und führen Sie dann den folgenden Befehl aus, um die Richtlinien noch einmal anzuwenden, um vorhandene Richtlinien zu aktualisieren.
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.- Ersetzen Sie
PROJECT_ID
durch die ID Ihres Google Cloud-Projekts. LOCATION
durch den regionalen oder multiregionalen Standort des Repositorys.--no-dry-run
deaktiviert die Probelauffunktion für das Repository.POLICY_FILE
ist der Name der Datei mit der Bereinigungsrichtlinie.
Richtlinien für die Repository-Bereinigung auflisten
Sie können die mit einem Repository verknüpften Bereinigungsrichtlinien ansehen.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus, das Sie ansehen möchten.
Klicken Sie im Bereich Repository-Details auf Mehr anzeigen.
Die Namen der Bereinigungsrichtlinien werden angezeigt.
Klicken Sie auf Repository bearbeiten, um die Details der Bereinigungsrichtlinien des Repositorys anzusehen oder zu bearbeiten.
Die vorhandenen Bereinigungsrichtlinien werden im Abschnitt Bereinigungsrichtlinien aufgeführt.
gcloud-CLI
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.- Ersetzen Sie
PROJECT_ID
durch die ID Ihres Google Cloud-Projekts. LOCATION
durch den regionalen oder multiregionalen Standort des Repositorys.
Richtlinie aus einem Repository entfernen
Entfernen Sie eine Bereinigungsrichtlinie aus einem Repository, wenn Artefaktversionen nicht mehr automatisch von Artifact Registry gelöscht werden sollen.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus und klicken Sie auf Repository bearbeiten.
Bewegen Sie den Mauszeiger im Abschnitt Cleanup policies auf den Namen der Richtlinie, die Sie löschen möchten.
Klicken Sie auf das Symbol Löschen.
Klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird gelöscht.
gcloud-CLI
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 derregionale oder multiregionaleStandort des Repositorys.POLICY_NAMES
ist eine durch Kommas getrennte Liste von Richtliniennamen für die Richtlinien, die Sie entfernen möchten.
Der folgende Befehl entfernt beispielsweise die Richtlinie delete-test
aus dem Repository my-repo
in der Region us-west1
im Projekt my-project
:
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 Logeinträge für Bereinigungsrichtlinien in Cloud Logging ansehen möchten, müssen Sie das DATA_WRITE
-Logging enable.
Wenn Sie eine Bereinigungsrichtlinie für ein Repository festlegen, wird der Vorgang als Aktualisierung im Repository protokolliert (UpdateRepository
-Vorgang).
Wenn Artifact Registry eine Version eines Artefakts löscht, wird das Ereignis in den Datenzugriffslogs von Cloud Logging protokolliert. Die Logeinträge zeigen, dass der Löschvorgang über das Artifact Registry-Dienstkonto durchgeführt wurde. Die Artifact Registry-Dienstkonto-ID hat das Format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
Sonstige Tools
Bei Container-Images können Sie auch die folgenden Tools zur Verwaltung des Image-Lebenszyklus verwenden:
- gcrane: Ein Tool für Container Registries, mit dem Sie Images zwischen Repositories kopieren können.
- gcr-cleaner: Ein Tool zum Löschen von Container-Images anhand bestimmter Kriterien.
Das gcrane
- und das gcr-cleaner
-Tool sind keine offiziellen Google-Produkte.