Découvrez la configuration du cycle de vie S3 pour StorageGRID
Vous pouvez créer une configuration de cycle de vie S3 pour contrôler le moment où des objets spécifiques sont supprimés du système StorageGRID.
L'exemple simple présenté dans cette section illustre comment une configuration de cycle de vie S3 peut contrôler la suppression (expiration) de certains objets dans des compartiments S3 spécifiques. L'exemple de cette section est fourni uniquement à des fins d'illustration. Pour des informations complètes sur la création de configurations de cycle de vie S3, consultez "Guide de l'utilisateur Amazon Simple Storage Service : gestion du cycle de vie des objets". Notez que StorageGRID prend uniquement en charge les actions d'expiration ; il ne prend pas en charge les actions de transition.
Ce qu'est la configuration du cycle de vie
Une configuration de cycle de vie est un ensemble de règles appliquées aux objets dans des compartiments S3 spécifiques. Chaque règle spécifie quels objets sont concernés et quand ces objets expireront (à une date précise ou après un certain nombre de jours).
StorageGRID prend en charge jusqu'à 1 000 règles de cycle de vie dans une configuration de cycle de vie. Chaque règle peut inclure les éléments XML suivants :
-
Expiration : Supprimer un objet lorsqu’une date spécifiée est atteinte ou lorsqu’un nombre de jours spécifié est atteint, à compter de la date d’ingestion de l’objet.
-
NoncurrentVersionExpiration : Supprimez un objet lorsqu'un nombre de jours spécifié est atteint, à compter du moment où l'objet est devenu non actuel.
-
Filtrer (Préfixe, Tag)
-
Statut
-
ID
Chaque objet suit les paramètres de rétention définis soit par le cycle de vie d'un compartiment S3, soit par une stratégie ILM. Lorsqu'un cycle de vie de compartiment S3 est configuré, les actions d'expiration de ce cycle de vie prévalent sur la stratégie ILM pour les objets correspondant au filtre de cycle de vie du compartiment. Les objets qui ne correspondent pas au filtre de cycle de vie du compartiment utilisent les paramètres de rétention de la stratégie ILM. Si un objet correspond à un filtre de cycle de vie de compartiment et qu'aucune action d'expiration n'est explicitement spécifiée, les paramètres de rétention de la stratégie ILM ne sont pas utilisés et il est sous-entendu que les versions de l'objet sont conservées indéfiniment. Voir "Exemples de priorités pour le cycle de vie d'un compartiment S3 et la politique ILM".
Par conséquent, un objet peut être retiré de la grille même si les instructions de placement d'une règle ILM s'appliquent toujours à cet objet. Ou, un objet peut être conservé sur la grille même après l'expiration de toutes les instructions de placement ILM le concernant. Pour plus de détails, voir "Comment l'ILM fonctionne tout au long du cycle de vie d'un objet".
|
|
La configuration du cycle de vie des compartiments peut être utilisée avec les compartiments dont le S3 Object Lock est activé, mais la configuration du cycle de vie des compartiments n'est pas prise en charge pour les anciens compartiments Compliant. |
StorageGRID prend en charge l'utilisation des opérations de compartiment suivantes pour gérer les configurations de cycle de vie :
-
DeleteBucketLifecycle
-
GetBucketLifecycleConfiguration
-
PutBucketLifecycleConfiguration
Créer une configuration de cycle de vie
La première étape de la création d'une configuration de cycle de vie consiste à créer un fichier JSON contenant une ou plusieurs règles. Par exemple, ce fichier JSON contient trois règles, comme suit :
-
La règle 1 s'applique uniquement aux objets qui correspondent au préfixe
category1/ et qui ont une valeur dekey2tag2. Le paramètreExpirationspécifie que les objets correspondant au filtre expireront à minuit le 22 août 2020. -
La règle 2 s'applique uniquement aux objets qui correspondent au préfixe
category2/. LeExpirationparamètre spécifie que les objets correspondant au filtre expireront 100 jours après leur ingestion.Les règles qui spécifient un nombre de jours sont relatives à la date d'ingestion de l'objet. Si la date actuelle est postérieure à la date d'ingestion plus le nombre de jours, certains objets peuvent être supprimés du compartiment dès l'application de la configuration du cycle de vie. -
La règle 3 s'applique uniquement aux objets qui correspondent au préfixe
category3/. LeExpirationparamètre spécifie que toutes les versions non actuelles des objets correspondants expireront 50 jours après qu'elles soient devenues non actuelles.
{
"Rules": [
{
"ID": "rule1",
"Filter": {
"And": {
"Prefix": "category1/",
"Tags": [
{
"Key": "key2",
"Value": "tag2"
}
]
}
},
"Expiration": {
"Date": "2020-08-22T00:00:00Z"
},
"Status": "Enabled"
},
{
"ID": "rule2",
"Filter": {
"Prefix": "category2/"
},
"Expiration": {
"Days": 100
},
"Status": "Enabled"
},
{
"ID": "rule3",
"Filter": {
"Prefix": "category3/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 50
},
"Status": "Enabled"
}
]
}
Appliquer la configuration du cycle de vie au compartiment
Après avoir créé le fichier de configuration du cycle de vie, vous l'appliquez à un compartiment en émettant une requête PutBucketLifecycleConfiguration.
Cette requête applique la configuration de cycle de vie du fichier d'exemple aux objets d'un compartiment nommé testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
Pour vérifier qu'une configuration de cycle de vie a bien été appliquée au compartiment, envoyez une requête GetBucketLifecycleConfiguration. Par exemple :
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
Une réponse réussie répertorie la configuration du cycle de vie que vous venez d'appliquer.
Vérifiez que l'expiration du cycle de vie du compartiment s'applique à l'objet
Vous pouvez déterminer si une règle d'expiration dans la configuration du cycle de vie s'applique à un objet spécifique lors de l'émission d'une requête PutObject, HeadObject ou GetObject. Si une règle s'applique, la réponse inclut un Expiration paramètre qui indique quand l'objet expire et quelle règle d'expiration a été appliquée.
|
|
Étant donné que le cycle de vie du bucket remplace ILM, la `expiry-date`date affichée correspond à la date réelle à laquelle l'objet sera supprimé. Pour plus de détails, consultez "Comment la rétention d'objet est déterminée". |
Par exemple, cette requête PutObject a été émise le 22 juin 2020 et place un objet dans le testbucket bucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
La réponse positive indique que l'objet expirera dans 100 jours (01 Oct 2020) et qu'il correspond à la règle 2 de la configuration du cycle de vie.
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
Par exemple, cette requête HeadObject a été utilisée pour obtenir les métadonnées du même objet dans le compartiment testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
La réponse de succès inclut les métadonnées de l'objet et indique que l'objet expirera dans 100 jours et qu'il correspond à la Rule 2.
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}
|
|
Pour les compartiments compatibles avec le versionnage, l' `x-amz-expiration`en-tête de réponse s'applique uniquement aux versions actuelles des objets. |