Une règle de nettoyage Artifact Registry définit des critères pour supprimer automatiquement les versions d'artefacts dont vous n'avez plus besoin ou conserver les artefacts que vous souhaitez stocker indéfiniment.
Les règles de nettoyage sont utiles si vous stockez de nombreuses versions de vos artefacts, mais que vous ne devez conserver que des versions spécifiques que vous publiez en production. Toi peuvent définir des règles de suppression avec des critères de suppression des artefacts. Règles de conservation avec des critères de conservation des artefacts.
Si une version d'artefact correspond aux critères d'une règle de suppression et d'une règle de conservation Artifact Registry applique la règle de conservation.
Les suppressions déclenchées par des règles de suppression sont comptabilisées dans Artifact Registry par projet et sont limitée à 300 000 suppressions par dépôt et par jour.
Calendrier d'application des règles
Artifact Registry supprime et conserve les artefacts qui correspondent à vos règles de nettoyage à l'aide d'une tâche en arrière-plan qui s'exécute régulièrement. Les modifications prennent effet dans un délai d'environ un jour.
Nombre maximal de règles de nettoyage par dépôt
Vous pouvez appliquer jusqu'à 10 stratégies de nettoyage à un dépôt.
Formats compatibles
Vous pouvez définir une règle de nettoyage sur les dépôts standards et distants pour tous les formats de dépôts.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin
pour appliquer ou supprimer des stratégies de nettoyage,
demandez à votre administrateur de vous accorder le
Rôle IAM Administrateur Artifact Registry (roles/artifactregistry.admin
) sur le projet de dépôt.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour appliquer ou supprimer des règles de nettoyage. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour appliquer ou supprimer des règles de nettoyage:
-
artifactregistry.repositories.update
-
Pour supprimer les artefacts qui répondent aux critères d'une règle de nettoyage :
artifactregistry.versions.delete
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle par défaut pour l'agent de service Artifact Registry
inclut l'autorisation artifactregistry.versions.delete
, qui est
requis pour supprimer les images qui répondent aux critères d'une règle de nettoyage.
Créer un fichier de règles
Un fichier de stratégie est un fichier JSON qui définit vos règles de suppression et de conservation. Vous pouvez créez un fichier de stratégie en créant et en modifiant un fichier JSON, puis en utilisant la méthode Google Cloud CLI pour appliquer la stratégie, ou à l'aide de la console Google Cloud. Supprimer Les règles spécifient les conditions de suppression des artefacts. Les règles de conservation spécifient les conditions de conservation d'un artefact ou d'un certain nombre de versions récentes. Toi ne peut pas utiliser de conditions et les versions les plus récentes dans la même règle de conservation.
Créer une règle de suppression
Une règle de suppression vous permet de spécifier l'âge minimal ou maximal pour la suppression d'artefacts et des critères de filtrage supplémentaires pour limiter des artefacts spécifiques.
Si vous ne souhaitez pas supprimer certains artefacts pour quelque raison que ce soit, créez une règle de conservation conditionnelle ou une règle de conservation la plus récente versions de stratégies de conservation et de suppression. Si un artefact correspond aux critères de la règle de suppression et de la règle de conservation, il est conservé.
Console
Vous pouvez créer une règle de suppression pour un dépôt nouveau ou existant.
Pour ajouter une stratégie de suppression à un dépôt existant:
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Exercice fictif pour tester votre nouvelle règle avant de supprimer des artefacts. Pour en savoir plus, sur l'affichage des résultats du test, reportez-vous à la simulation.
Une fois que vous êtes certain que vos règles fonctionnent comme prévu, modifiez votre les paramètres du dépôt, puis sélectionnez Supprimer les artefacts pour appliquer votre de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Ajouter une règle de nettoyage, puis ajoutez les éléments suivants:
- Nom: attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de stratégies que vous appliquez à un dépôt.
- Type de règle: sélectionnez Suppression conditionnelle.
État du tag: indique si la règle doit recherchez les artefacts tagués ou non étiquetés. Les artefacts sont tagués lorsque de transférer ou d'extraire une image vers ou depuis un dépôt. Pour en savoir plus sur Docker , consultez la page Concepts des conteneurs.
- N'importe quel état de balise: ignore l'état de la balise, et s'applique à la fois aux balises et aux balises. des artefacts sans tag.
- Avec tag: ne s'applique qu'aux artefacts tagués.
- Sans tag: ne s'applique qu'aux artefacts sans tag.
Les formats qui ne prennent pas en charge les balises sont traités comme
untagged
. Si des tags immuables sont activés pour un dépôt, les artefacts tagués ne peuvent pas être supprimés.Pour en savoir plus sur l'état du tag qui s'applique de nettoyage, consultez la Référence TagState.
Voici des méthodes facultatives pour définir votre règle de suppression :
- Préfixes de tag: liste de préfixes de tag séparés par une virgule
les préfixes de tag. Par exemple, les préfixes
test
etstaging
correspondent images avec les tagstestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tag. - Préfixes de version : liste des versions de l'artefact séparées par une virgule
préfixes. Par exemple,
v1
,v2
correspond aux versionsv1.5
,v2.0alpha
etv10.2
. - Préfixes de package : liste des préfixes de nom d'artefact. Vous pouvez saisir plusieurs préfixes en appuyant sur
Enter
ou,
entre les préfixes. Par exemple,red, blue
crée deux préfixes :red
etblue
, et correspond aux noms d'artefactred-team
,redis
, etbluebird
. - Plus ancienne que: il s'agit de la durée minimale écoulée depuis que la version d'un artefact a été
créée dans le dépôt, spécifiée sous la forme d'une durée.
Par exemple,
30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
. - Plus récent que: il s'agit du temps maximal écoulé depuis la version d'un
artefact a été créé dans le dépôt, spécifiée sous forme de durée.
Par exemple,
30d
correspond à 30 jours.
- Préfixes de tag: liste de préfixes de tag séparés par une virgule
les préfixes de tag. Par exemple, les préfixes
Pour ajouter d'autres règles de nettoyage, cliquez sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt. Vous pouvez consulter de nettoyage dans la section Détails du dépôt en cliquant sur Plus :
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"
}
}
Une règle de suppression doit inclure un nom, une action et au moins une condition.
name
- Dans l'extrait de règle de suppression, DELETE_POLICY_NAME est le nom de la règle. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.
action
- Pour une stratégie de suppression, la valeur est
{"type": "Delete"}
. condition
- Spécifiez une ou plusieurs des conditions suivantes:
tagState
: TAG_STATUS indique si la règle doit recherchez les artefacts tagués ou non étiquetés. Les artefacts sont tagués lorsque vous transférez une image vers ou depuis un dépôt. Les valeurs compatibles sont :tagged
: ne s'applique qu'aux artefacts tagués.untagged
: ne s'applique qu'aux artefacts sans tag.any
: ignore l'état de la balise et s'applique à la fois aux balises et aux non-balises. les artefacts.
Les formats qui ne prennent pas en charge les balises sont traités comme
untagged
. Si un dépôt comporte des tags immuables activés, les artefacts tagués ne peuvent pas être supprimés.Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.
tagPrefixes
: TAG_PREFIXES est une liste de valeurs séparées par des virgules les préfixes de tag. Par exemple,"test", "staging"
peut faire correspondre les images avec tags"testenv"
et"staging-1.5"
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tag.versionNamePrefixes
: VERSION_PREFIXES est un liste des préfixes de version d'artefact séparés par une virgule. Exemple :"v1", "v2"
correspond aux versions"v1.5"
,"v2.0alpha"
et"v10.2"
.packageNamePrefixes
: PACKAGE_PREFIXES est un de préfixes de noms d'artefacts séparés par une virgule. Exemple :"red", "blue"
correspond aux noms d'artefact"red-team"
,"redis"
et"bluebird"
.olderThan
: OLDER_THAN_DURATION est la durée minimale depuis le la version d'un artefact créée dans le dépôt, spécifiée sous la forme d'une durée. Par exemple,30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
.newerThan
: NEWER_THAN_DURATION est le temps maximal écoulé depuis la version d'un artefact a été créée dans le dépôt, spécifiée en tant que de la vidéo. Par exemple,30d
correspond à 30 jours.
Créer une règle de conservation conditionnelle
Une stratégie de conservation conditionnelle spécifie des critères de conservation des artefacts. Les règles de conservation fonctionnent avec les règles de suppression pour conserver les artefacts qui seraient supprimés conformément aux spécifications de votre règle de suppression, mais que vous souhaitez conserver. Lorsqu'un artefact répond aux critères d'une règle de suppression et d'une règle de conservation, il est conservé.
Console
Vous pouvez créer une règle de conservation pour un dépôt nouveau ou existant.
Pour ajouter une stratégie de conservation à un dépôt existant:
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Simulation pour tester le nouveau avant de s'engager à supprimer les artefacts. Vous devez définir au moins une règle de suppression pour afficher les résultats de votre conservation . Pour en savoir plus sur l'affichage des résultats du test, consultez la section Simulation.
Une fois que vous êtes certain que vos règles fonctionnent comme prévu, modifiez votre les paramètres du dépôt, puis sélectionnez Supprimer les artefacts pour appliquer votre de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Add a cleanup policy (Ajouter une règle de nettoyage), puis ajoutez les éléments suivants :
- Nom: attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de stratégies que vous appliquez à un dépôt.
- Type de règle: sélectionnez Enregistrement conditionnel.
État de la balise : indique si la règle doit rechercher des artefacts tagués ou non. Les artefacts sont tagués lorsque vous transférez une image vers ou depuis un dépôt. Pour en savoir plus sur Docker , consultez la page Concepts des conteneurs.
- N'importe quel état de balise: ignore l'état de la balise, et s'applique à la fois aux balises et aux balises. des artefacts sans tag.
- Avec tag: ne s'applique qu'aux artefacts tagués.
- Sans tag: ne s'applique qu'aux artefacts sans tag.
Les formats qui ne prennent pas en charge les balises sont traités comme
untagged
. Si les tags immuables sont activés dans un dépôt, les artefacts avec tag ne peuvent pas être supprimés. Pour en savoir plus sur l'état du tag qui s'applique de nettoyage, consultez la Référence TagState.
Voici des méthodes facultatives permettant de définir une règle de conservation:
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
test
etstaging
correspondent aux images avec les balisestestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tag. - Préfixes de version : liste des versions de l'artefact séparées par une virgule
préfixes. Par exemple,
v1
etv2
correspondent aux versionsv1.5
,v2.0alpha
etv10.2
. - Préfixes de package : liste des préfixes de nom d'artefact, séparés par une virgule.
Par exemple,
red, blue
correspond aux noms d'artefactred-team
,redis
, etbluebird
.
- Plus ancienne que: il s'agit de la durée minimale écoulée depuis que la version d'un artefact a été
créée dans le dépôt, spécifiée sous la forme d'une durée.
Par exemple,
30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
. - Plus récent que: il s'agit du temps maximal écoulé depuis la version d'un
artefact a été créé dans le dépôt, spécifiée sous forme de durée.
Par exemple,
30d
correspond à 30 jours.
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
Pour ajouter d'autres règles de nettoyage, cliquez sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt.
JSON
Ce format est semblable à une règle de suppression. Pour une règle de conservation,
la valeur de action
est {"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"
}
}
Remplacez les éléments suivants :
KEEP_POLICY_NAME
avec un nom pour la règle de nettoyage. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.TAG_STATUS
par l'état de la balise, qui indique si la stratégie doit vérifier s'il existe des artefacts tagués ou non étiquetés. Les artefacts sont avec des tags lors du transfert ou de l'extraction d'une image vers ou depuis un dépôt. Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.Vous disposez des options suivantes :
tagged
: ne s'applique qu'aux artefacts tagués.untagged
: ne s'applique qu'aux artefacts sans tag.any
: s'applique à toutes les versions
Les formats qui ne prennent pas en charge les balises sont traités comme
untagged
. Si les tags immuables sont activés dans un dépôt, les artefacts avec tag ne peuvent pas être supprimés. Pour en savoir plus sur l'état du tag qui s'applique de nettoyage, consultez la Référence TagState.TAG_PREFIXES
par une liste de valeurs séparées par des virgules ; les préfixes de tag. Par exemple, les préfixestest
etstaging
correspondent images avec les tagstestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tag.VERSION_PREFIXES
par une liste de versions d'artefact séparées par une virgule préfixes. Par exemple,v1, v2
correspond aux versionsv1.5
,v2.0alpha
etv10.2
.PACKAGE_PREFIXES
par une liste de noms d'artefact séparés par une virgule préfixes. Par exemple,red, blue
correspond aux noms d'artefactred-team
,redis
etbluebird
.
OLDER_THAN_DURATION
par la durée minimale écoulée depuis le d'un artefact a été créée dans le dépôt, spécifiée en tant que de la vidéo. Par exemple,30d
correspond à 30 jours. Vous pouvez spécifier des durées secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
.NEWER_THAN_DURATION
par le temps maximal écoulé depuis le d'un artefact a été créée dans le dépôt, spécifiée en tant que de la vidéo. Par exemple,30d
correspond à 30 jours.
Créer une règle de conservation pour les versions les plus récentes
Vous pouvez créer une règle de conservation pour conserver un nombre spécifique de versions. Vous ne pouvez pas Utilisez les critères Conservation conditionnelle et Conserver les versions les plus récentes dans le même de conservation.
Les règles de suppression permettent de conserver les artefacts être supprimé conformément aux spécifications de votre règle de suppression, mais que vous que vous souhaitez conserver. Lorsqu'un artefact répond aux critères d'une règle de suppression et une règle de conservation, l'artefact est conservé.
Console
Vous pouvez créer une règle de conservation des versions les plus récentes pour une nouvelle règle ou une un dépôt de clés.
Pour ajouter une stratégie de conservation des versions les plus récentes à un dépôt existant:
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Simulation pour tester le nouveau avant de s'engager à supprimer les artefacts. Vous devez définir au moins une règle de suppression pour afficher les résultats de votre conservation . Pour en savoir plus sur l'affichage des résultats du test, voir simulation.
Une fois que vous êtes certain que vos règles fonctionnent comme prévu, modifiez votre les paramètres du dépôt, puis sélectionnez Supprimer les artefacts pour appliquer votre de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Add a cleanup policy (Ajouter une règle de nettoyage), puis ajoutez les éléments suivants :
- Nom: attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de stratégies que vous appliquez à un dépôt.
- Type de règles: sélectionnez Conserver les versions les plus récentes.
Dans le champ Nombre de conservations, saisissez le nombre de versions d'un artefact à conserver dans votre dépôt.
Facultatif: sélectionnez Préfixes de package pour spécifier les préfixes de package à appliquer. la règle de conservation. Par exemple,
red, blue
correspond aux noms d'artefacts.red-team
,redis
etbluebird
.Pour ajouter d'autres règles de nettoyage, cliquez sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt. Vous pouvez consulter de nettoyage dans la section Détails du dépôt en cliquant sur Plus :
JSON
Le format est semblable à celui d'une règle de suppression. Pour une règle de conservation,
la valeur de action
est {"type": "Keep"}
.
Une règle de conservation permettant de conserver un nombre spécifique de versions
Section mostRecentVersions
au lieu d'une section condition
.
{
"name": "KEEP_POLICY_NAME",
"action": {"type": "Keep"},
"mostRecentVersions": {
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"keepCount": MINIMUM_NUMBER
}
}
Remplacez les éléments suivants :
KEEP_POLICY_NAME
par le nom de votre règle de conservation. Le nom doit être unique dans le groupe de stratégies que vous appliquez à un dépôt.PACKAGE_PREFIXES
avec les préfixes de package facultatifs auxquels appliquer la règle de conservation. Par exemple,red, blue
correspond aux noms d'artefacts.red-team
,redis
etbluebird
.
MINIMUM_NUMBER
par le nombre de versions d'un artefact à conserver dans votre dépôt.
Pour appliquer la règle de conservation à tous les packages de votre dépôt, omettez la condition packageNamePrefixes
. Le nombre spécifié de versions récentes
chaque package de votre référentiel
sont conservés.
Exemple de fichier de stratégie
L'exemple de fichier de stratégie suivant comporte une règle de suppression et deux règles de conservation.
- La règle
delete-prerelease
supprime les versions d'artefact 30 jours après l'importation si l'artefact commence par la chaînealpha
ouv0
. - La règle
keep-tagged-release
conserve les artefacts comportant le préfixerelease
dont le nom de fichier commence parwebapp
oumobile
. - La règle
keep-minimum-versions
conserve les cinq versions les plus récentes des les artefacts dont le nom de fichier commence parwebapp
,mobile
ousandbox
[
{
"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
}
}
]
Tester vos règles à l'aide d'une simulation
Pour tester vos règles de nettoyage, vous pouvez les définir sur le mode de simulation
la console, ou exécutez la
Commande gcloud artifacts set-cleanup-policies
avec l'option --dry-run
.
Pour analyser l'effet de vos règles de nettoyage, vous pouvez afficher les Journaux d'audit des accès aux données Artifact Registry. Pour recevoir des données Pour accéder aux journaux d'audit pour les règles de nettoyage, vous devez activer explicitement data write (écriture aux données) des journaux d'audit des accès aux données pour le service Artifact Registry. Pour activer les journaux d'audit des accès aux données, consultez la page Activer les journaux d'audit.
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Simulation.
Cliquez sur Ajouter une règle de nettoyage, puis configurez les options de vos règles Suppression conditionnelle, Conservation conditionnelle ou Conservation des versions les plus récentes.
Cliquez sur Mettre à jour.
Lorsqu'une règle de suppression entraîne une action BatchDeleteVersions
, le paramètre
validateOnly
prend la valeur "true"
.
Pour interroger les journaux d'audit pour les simulations de vos règles de nettoyage, exécutez la commande suivante :
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
Le résultat se présente comme suit :
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'
CLI gcloud
Pour effectuer une simulation avec vos règles de nettoyage, exécutez la commande suivante:
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud.LOCATION
avec l'emplacement régional ou multirégional,du dépôt.
Lorsqu'une règle de suppression entraîne une action BatchDeleteVersions
, le paramètre
validateOnly
prend la valeur "true"
.
Pour interroger les journaux d'audit pour les simulations de vos règles de nettoyage, exécutez la commande suivante :
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
Le résultat se présente comme suit :
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'
Appliquer des règles à un dépôt
Pour utiliser vos règles de nettoyage définies dans un fichier JSON local, appliquez-les aux dépôts pour lesquels vous souhaitez qu'Artifact Registry gère la suppression automatique des versions d'artefacts à l'aide de la gcloud CLI.
Pour appliquer des règles de nettoyage définies sur Simulation dans la console, définissez la règle sur Supprimer les artefacts.
Vous ne pouvez appliquer des règles de nettoyage qu'aux dépôts standards. Vous ne pouvez pas appliquer des règles de nettoyage aux éléments suivants:
- Un projet Google Cloud.
Console
Pour appliquer des règles de nettoyage:
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt
Dans la section Règles de nettoyage, sélectionnez Supprimer les artefacts.
Artifact Registry supprime et conserve les artefacts qui correspondent à vos règles à l'aide d'un job d'arrière-plan qui s'exécute régulièrement. Les modifications prend effet dans un délai d'environ un jour.
gcloud
Pour appliquer des règles de nettoyage, exécutez la commande suivante dans le répertoire contenant votre fichier de règles de nettoyage.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud.LOCATION
avec le régional ou multirégional emplacement du dépôt.--no-dry-run
désactive la fonctionnalité de dry run pour le dépôt.POLICY_FILE
est le nom du fichier contenant la règle de nettoyage.
Par exemple, la commande suivante applique des règles dans policy.json
aux
dépôt my-repo
dans la région us-west1
du projet my-project
.
gcloud artifacts repositories set-cleanup-policies my-repo \
--project=my-project \
--location=us-west1 \
--policy=policy.json
Artifact Registry supprime et conserve les artefacts qui correspondent à vos règles à l'aide d'une tâche d'arrière-plan qui s'exécute régulièrement. Les modifications doivent être appliquées dans un délai d'environ un jour.
Mettre à jour une stratégie
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt
Dans la section Règles de nettoyage, cliquez sur le nom de la règle souhaitée. à modifier.
Modifiez la règle de nettoyage, puis cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt.
CLI gcloud
Pour mettre à jour des règles existantes, modifiez les paramètres de votre fichier de règles, puis Exécutez à nouveau la commande suivante pour appliquer les règles.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud.LOCATION
avec le régional ou multirégional emplacement du dépôt.--no-dry-run
désactive la fonctionnalité de dry run pour le dépôt.POLICY_FILE
est le nom du fichier contenant la règle de nettoyage.
Répertorier les règles de nettoyage du dépôt
Vous pouvez afficher les stratégies de nettoyage associées à un dépôt.
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt que vous souhaitez afficher.
Dans la section Détails du dépôt, cliquez sur Afficher plus.
Les noms des règles de nettoyage s'affichent.
Pour afficher ou modifier les détails des règles de nettoyage du dépôt, cliquez sur Modifier le dépôt
Les détails de vos règles de nettoyage existantes sont répertoriés dans le Règles de nettoyage.
CLI gcloud
Exécutez la commande suivante :
gcloud artifacts repositories list-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud.LOCATION
avec le régional ou multirégional emplacement du dépôt.
Supprimer une règle d'un dépôt
Supprimez une règle de nettoyage d'un dépôt lorsque vous ne le souhaitez plus Artifact Registry pour supprimer automatiquement les versions d'artefact.
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, passez la souris sur le nom de la règle que vous que vous souhaitez supprimer.
Cliquez sur l'icône Supprimer.
Cliquez sur Mettre à jour.
La règle de nettoyage est supprimée.
CLI gcloud
Exécutez la commande suivante :
gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
--policynames=POLICY_NAMES \
--project=PROJECT_ID \
--location=LOCATION
Remplacez les éléments suivants :
REPOSITORY
est le nom du dépôt.PROJECT_ID
est l'ID de votre projet Google Cloud.LOCATION
est le régional ou multirégional emplacement du dépôt.POLICY_NAMES
est une liste de noms de règles séparés par une virgule pour les règles que vous souhaitez supprimer.
Par exemple, la commande suivante supprime une stratégie nommée delete-test
du fichier
dépôt my-repo
dans la région us-west1
du projet my-project
:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-west1
Entrées du journal d'audit pour les règles de nettoyage
Pour afficher les entrées de journal de la règle de nettoyage dans Cloud Logging, vous devez :
Activez la journalisation DATA_WRITE
.
Lorsque vous définissez une règle de nettoyage sur un dépôt, l'opération est enregistrée en tant que mise à jour du dépôt (opération UpdateRepository
).
Lorsqu'Artifact Registry supprime une version d'un artefact, il consigne l'événement
dans les journaux d'accès aux données Cloud Logging. Les entrées de journal indiquent que
Le compte de service Artifact Registry a effectué la suppression. La
L'ID du compte de service Artifact Registry est au format
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
Autres outils
Pour les images de conteneurs, vous pouvez également utiliser les outils suivants pour le cycle de vie des images gestion:
- gcrane: Un outil pour les registres de conteneurs que vous pouvez utiliser pour copier des images entre les dépôts.
- gcr-cleaner: outil permettant de supprimer des conteneurs en fonction de critères spécifiques.
Les outils gcrane
et gcr-cleaner
ne sont pas des produits Google officiels.