In einer Artifact Registry-Bereinigungsrichtlinie sind Kriterien für das automatische Löschen definiert Artefaktversionen, die Sie nicht mehr benötigen, oder Artefakte, die Sie behalten möchten speichern können.
Bereinigungsrichtlinien sind nützlich, wenn Sie viele Versionen Ihrer Artefakte speichern, aber Sie müssen nur bestimmte Versionen beibehalten, die Sie für die Produktion veröffentlichen. Ich kann Löschrichtlinien mit Kriterien zum Löschen von Artefakten und Richtlinien beibehalten mit Kriterien für die Beibehaltung von Artefakten.
Wenn eine Artefaktversion den Kriterien sowohl in einer Löschrichtlinie als auch in einem Keep entspricht wird die Keep-Richtlinie in Artifact Registry 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. Änderungen werden wirksam innerhalb von etwa einem Tag an.
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 festlegen für alle Repository-Formate.
Erforderliche Rollen
So erhalten Sie die Berechtigungen, die Sie zum Anwenden oder Entfernen von Bereinigungsrichtlinien benötigen:
bitten Sie Ihren Administrator, Ihnen
IAM-Rolle Artifact Registry-Administrator (roles/artifactregistry.admin
) für das Repository-Projekt.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält Berechtigungen zum Anwenden oder Entfernen von Bereinigungsrichtlinien 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
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Die Standardrolle für den Artifact Registry-Dienst-Agent
enthält die Berechtigung artifactregistry.versions.delete
, die
zum Löschen von Images, die die Kriterien einer Bereinigungsrichtlinie erfüllen.
Richtliniendatei erstellen
Eine Richtliniendatei ist eine JSON-Datei, in der Ihre Richtlinien zum Löschen und Beibehalten definiert sind. 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 Console anwenden. Löschen legen die Bedingungen zum Löschen von Artefakten fest. Vorgabe von Richtlinien beibehalten Bedingungen zum Beibehalten eines Artefakts oder eine Reihe aktueller Versionen, die beibehalten werden sollen. Ich können Bedingungen und die neuesten Versionen nicht in derselben Keep-Richtlinie verwenden.
Löschrichtlinie erstellen
Mit einer Löschrichtlinie können Sie das Mindest- oder Höchstalter für Löschen von Artefakten und zusätzliche Filterkriterien zum Einschränken der Richtlinie auf bestimmte Artefakte.
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 ob ein Artefakt den Kriterien der Lösch- und der Keep-Richtlinie entspricht. dass das Artefakt erhalten bleibt.
Console
Sie können eine Löschrichtlinie für ein neues oder ein 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 Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus, um die neue bevor Sie sich zum Löschen von Artefakten verpflichten. Weitere Informationen zum Anzeigen der Testergebnisse siehe Probelauf.
Wenn Sie sicher sind, dass Ihre Richtlinie wie vorgesehen funktioniert, bearbeiten Sie die Repository-Einstellungen und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinie und löschen Sie die ausgewählten Artefakte.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
- Richtlinientyp: Wählen Sie Bedingte Löschung aus.
Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten. 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.
- Ungetaggt: Gilt nur für Artefakte ohne Tags.
Formate, die keine Tags unterstützen, werden als
untagged
behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte gelöscht werden.Weitere Informationen zum Tag-Status im Zusammenhang mit Richtlinien zur Datenbereinigung finden Sie in der Referenz zu TagState.
Sie können die Löschrichtlinie folgendermaßen definieren:
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von
Tag-Präfixe. Die Präfixe
test
undstaging
würden beispielsweise mit Bildern mit den Tagstestenv
undstaging-1.5
übereinstimmen.tagState
muss festgelegt werden aufTAGGED
, um Tag-Präfixe zu verwenden. - Versionspräfixe: – eine durch Kommas getrennte Liste der Artefaktversion
Präfixe. Beispiel:
v1
,v2
würde mit den Versionenv1.5
,v2.0alpha
undv10.2
übereinstimmen. - Paketpräfixe: Liste der Präfixe für Artefaktenamen. Sie können
Sie können mehrere Präfixe eingeben, indem Sie zwischen den Präfixen
Enter
oder,
drücken. Beispiel:red, blue
würde die beiden Präfixered
undblue
erstellen. würden den Artefaktnamenred-team
,redis
, undbluebird
. - Älter als: Dies ist die Mindestzeit, seit die die Version eines Artefakts erstellt wurde.
im Repository erstellt und als Dauer angegeben.
30d
entspricht beispielsweise 30 Tagen. Sie können eine Dauer in Sekunden, Minuten, Stunden oder Tage durch Anfügen vons
,m
,h
bzw.d
an. - 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.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: ist eine durch Kommas getrennte Liste von
Tag-Präfixe. Die Präfixe
Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können Ihre 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 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 Artefakte ohne Tags.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 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 aufTAGGED
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"
würde den Versionen"v1.5"
,"v2.0alpha"
und"v10.2"
entsprechen.packageNamePrefixes
: PACKAGE_PREFIXES ist ein kommagetrennte Liste von Artefaktnamenspräfixen. Beispiel:"red", "blue"
würde mit den Artefaktnamen"red-team"
,"redis"
und"bluebird"
übereinstimmen.olderThan
: OLDER_THAN_DURATION ist die Mindestzeit, die vergangen ist, seit die Version eines Artefakts im Repository erstellt wurde. Sie wird als Dauer angegeben. Beispiel:30d
entspricht 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie jeweilss
,m
,h
oderd
anhängen.newerThan
: NEWER_THAN_DURATION ist die maximale Zeit seit Die Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer Beispiel:30d
entspricht 30 Tagen.
Bedingte Keep-Richtlinie erstellen
Eine bedingte Keep-Richtlinie legt Kriterien zum Beibehalten von Artefakten fest. Notizen zusammen mit Löschrichtlinien, um Artefakte zu behalten, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht werden, die Sie behalten sollten. Wenn ein Artefakt sowohl den Kriterien einer Lösch- als auch einer Aufbewahrungsrichtlinie entspricht, wird es aufbewahrt.
Console
Sie können eine Keep-Richtlinie für ein neues oder ein 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 Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
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 zu den Ergebnissen des Tests siehe 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.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
- 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.
- Ungetaggt: Gilt nur für Artefakte ohne Tags.
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.
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
undstaging
würden beispielsweise mit Bildern mit den Tagstestenv
undstaging-1.5
übereinstimmen.tagState
muss aufTAGGED
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 Versionenv1.5
,v2.0alpha
undv10.2
übereinstimmen. - Paketpräfixe: Eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen.
Zum Beispiel würde
red, blue
mit den Artefaktnamenred-team
,redis
, undbluebird
.
- Älter als: Dies ist die Mindestzeit, seit die die Version eines Artefakts erstellt wurde.
im Repository erstellt und als Dauer angegeben.
30d
entspricht beispielsweise 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sie jeweilss
,m
,h
oderd
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.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: 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.
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 darf innerhalb von Gruppe von Richtlinien, die Sie auf ein Repository anwenden.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 Artefakte ohne Tags.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 Bereinigungsrichtlinien finden Sie in der TagState-ReferenzTAG_PREFIXES
durch eine durch Kommas getrennte Liste von Tag-Präfixen. So würden z. B. die Präfixetest
undstaging
übereinstimmen Bilder mit den Tagstestenv
undstaging-1.5
.tagState
muss festgelegt werden aufTAGGED
, um Tag-Präfixe zu verwenden.VERSION_PREFIXES
durch eine durch Kommas getrennte Liste der Artefaktversion Präfixe. Beispiel:v1, v2
stimmt mit den Versionenv1.5
,v2.0alpha
undv10.2
überein.PACKAGE_PREFIXES
durch eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen. Zum Beispiel würdered, blue
mit den Artefaktnamenred-team
übereinstimmen,redis
undbluebird
.
OLDER_THAN_DURATION
durch die Mindestzeit seit dem Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer30d
entspricht beispielsweise 30 Tagen. Sie können die Dauer der Sekunden, Minuten, Stunden oder Tage durch Anfügen vons
,m
,h
bzw.d
an.NEWER_THAN_DURATION
durch die maximale Zeit seit dem Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer30d
entspricht beispielsweise 30 Tagen.
Keep-Richtlinie für neueste Versionen erstellen
Sie können eine Keep-Richtlinie erstellen, um eine bestimmte Anzahl von Versionen beizubehalten. Sie können nicht Verwenden Sie die Kriterien Bedingte Beibehaltung und Neueste Versionen beibehalten. Richtlinien einhalten.
Mit Aufbewahrungsrichtlinien können Sie Löschrichtlinien überschreiben, um Artefakte zu behalten, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht würden, die Sie aber behalten möchten. 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:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
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, um die Ergebnisse deiner Notizen anzusehen . Weitere Informationen zu den Ergebnissen des Tests siehe 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.
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.
Geben Sie im Feld Anzahl der Versionen beibehalten 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 Aufbewahrungsrichtlinie angewendet werden soll. Zum Beispiel würde
red, blue
mit Artefaktnamen übereinstimmenred-team
,redis
undbluebird
.Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Sie können Ihre Bereinigungsrichtlinien 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 Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
MINIMUM_NUMBER
durch die Anzahl der Versionen eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Wenn Sie die Keep-Richtlinie auf alle Pakete in Ihrem Repository anwenden möchten, lassen Sie den Parameter
packageNamePrefixes
-Bedingung. Die angegebene Anzahl neuerer Versionen von
werden alle Pakete
in Ihrem Repository beibehalten.
Beispiel für eine Richtliniendatei
Das folgende Beispiel für eine Richtliniendatei enthält eine Löschrichtlinie und zwei Keep-Richtlinien.
- Gemäß der
delete-prerelease
-Richtlinie werden Artefaktversionen 30 Tage nach dem Upload entfernt, wenn das Artefakt mit dem Stringalpha
oderv0
beginnt. - Mit der Richtlinie
keep-tagged-release
werden Artefakte mit dem Präfixrelease
beibehalten, deren Dateiname mitwebapp
odermobile
beginnt. - Bei der
keep-minimum-versions
-Richtlinie werden die fünf neuesten Versionen von Artefakten beibehalten, deren Dateiname mitwebapp
,mobile
odersandbox
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 im 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 die Audit-Logs zum Zugriff auf Artifact Registry-Daten Wenn Sie Audit-Logs zum Datenzugriff für Bereinigungsrichtlinien erhalten möchten, müssen Sie den 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
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus.
Klicken Sie auf Add a cleanup policy (Bereinigungsrichtlinie hinzufügen) und konfigurieren Sie die Optionen für Ihre Bedingtes Löschen Bedingte Beibehaltung oder Richtlinien für Neueste Versionen beibehalten:
Klicken Sie auf Aktualisieren.
Wenn eine Löschrichtlinie zu einer BatchDeleteVersions
-Aktion führt, wird der Parameter validateOnly
zu "true"
ausgewertet.
Führen Sie folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen: Befehl:
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 Speicherort des Repositorys.
Wenn eine Löschrichtlinie zu einer BatchDeleteVersions
-Aktion führt, wird der Parameter validateOnly
zu "true"
ausgewertet.
Führen Sie folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen: Befehl:
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-Befehlszeile 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, legen Sie die Richtlinie so fest: Artefakte löschen.
Sie können Bereinigungsrichtlinien nur auf Standard-Repositories anwenden. Sie können Bereinigungsrichtlinien nicht auf Folgendes anwenden:
- Ein Google Cloud-Projekt.
Console
So wenden Sie Bereinigungsrichtlinien an:
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste 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 werden sie innerhalb von etwa einem Tag wirksam.
gcloud
Um Bereinigungsrichtlinien anzuwenden, führen Sie den folgenden Befehl im Verzeichnis mit der Bereinigungsrichtliniendatei.
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
mit dem regional oder multiregional Speicherort 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 behält Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines regelmäßig ausgeführten Hintergrundjobs. Änderungen sollten wirksam werden innerhalb von etwa einem Tag an.
Richtlinie aktualisieren
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Klicken Sie im Bereich Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie ändern möchten.
Bearbeiten Sie die Bereinigungsrichtlinie und klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf das Repository angewendet.
gcloud-CLI
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.- Ersetzen Sie
PROJECT_ID
durch die ID Ihres Google Cloud-Projekts. LOCATION
mit dem regional oder multiregional Speicherort des Repositorys.--no-dry-run
deaktiviert die Funktion „Probelauf“ für das Repository.POLICY_FILE
ist der Name der Datei mit der Bereinigungsrichtlinie.
Richtlinien zur Repository-Bereinigung auflisten
Sie können sich die mit einem Repository verknüpften Bereinigungsrichtlinien ansehen.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus, das Sie aufrufen möchten.
Klicken Sie im Abschnitt Repository-Details auf Mehr anzeigen.
Die Namen der Bereinigungsrichtlinien werden angezeigt.
Um die Details der Bereinigungsrichtlinien des Repositorys anzusehen oder zu bearbeiten, klicken Sie auf Repository bearbeiten.
Die Details Ihrer vorhandenen Bereinigungsrichtlinien sind 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
mit dem regional oder multiregional Speicherort des Repositorys.
Richtlinie aus einem Repository entfernen
Bereinigungsrichtlinie aus einem Repository entfernen, wenn Sie das nicht mehr benötigen Artifact Registry zum automatischen Löschen von Artefaktversionen.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Bewegen Sie den Mauszeiger im Bereich Bereinigungsrichtlinien 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 der regionale oder multiregionale Speicherort für das Repository.POLICY_NAMES
ist eine durch Kommas getrennte Liste von Richtliniennamen für die Richtlinien aus, 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 Repositorys (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 für den Image-Lebenszyklus verwenden Verwaltung:
- gcrane: Ein Tool für Containerregistrare, mit dem Sie Images zwischen Repositories kopieren können.
- gcr-cleaner: Tool zum Löschen von Container-Images anhand bestimmter Kriterien
Die Tools gcrane
und gcr-cleaner
sind keine offiziellen Google-Produkte.