Je possède un compartiment Amazon Simple Storage Service (Amazon S3) qui stocke des millions d'objets. Je souhaite utiliser une règle de configuration de style de vie pour vider le compartiment afin de ne pas être facturé pour le stockage.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Remarque : Ce guide de configuration du cycle de vie s'applique uniquement aux compartiments Amazon S3 à usage général. Les compartiments de répertoires ont des exigences différentes en matière de gestion du cycle de vie. Les compartiments de tables ne prennent pas en charge les règles de configuration du cycle de vie.
Important : La résolution suivante supprime définitivement toutes les données de votre compartiment S3. Étant donné que vous ne pouvez pas récupérer les données, examinez tous les objets et toutes les données du compartiment avant de les supprimer.
Pour vider un compartiment contenant une règle de configuration de cycle de vie, utilisez la console ou l’AWS CLI.
Utilisation de la console
Vous pouvez créer une règle de configuration de cycle de vie dans la console qui fait expirer les versions actuelles des objets et supprime définitivement leurs versions antérieures. Pour créer la règle, procédez comme suit :
- Ouvrez la console Amazon S3.
- Dans la liste des compartiments à usage général, sélectionnez le compartiment que vous souhaitez vider.
- Choisissez l'onglet Gestion.
- Choisissez Créer une règle de cycle de vie.
- Dans Nom de la règle de cycle de vie, saisissez un nom de règle.
- Dans Choisir une étendue de règle, choisissez Appliquer à tous les objets du compartiment.
- Sélectionnez Je reconnais que cette règle s'appliquera à tous les objets du compartiment.
- Dans Actions de règle de cycle de vie, sélectionnez les options suivantes :
Expirer les versions actuelles d'objets
Supprimer définitivement les anciennes versions des objets
Supprimer les marqueurs de suppression d'objet arrivés à expiration ou les chargements partitionnés non terminés
- Dans le champ Expirer les versions actuelles d'objets, pour le champ Jours après la création de l'objet, saisissez 1.
- Dans le champ Supprimer définitivement les anciennes versions des objets, pour le champ Jours après lesquels les objets deviennent anciens, saisissez 1.
- Pour supprimer toutes les versions, laissez le champ Nombre de versions plus récentes à conserver (facultatif) vide.
- Sélectionnez Supprimer les chargements partitionnés non terminés et saisissez 1 dans le champ Nombre de jours.
- Choisissez Créer une règle.
- Pour créer une deuxième règle de cycle de vie, répétez les étapes 4 à 7.
- Sélectionnez Supprimer les marqueurs de suppression d'objet arrivés à expiration ou les chargements partitionnés non terminés.
- Sélectionnez Supprimer les marqueurs de suppression d'objet arrivés à expiration.
- Sélectionnez Créer une règle.
Les règles de configuration du cycle de vie Amazon S3 s'exécutent une fois par jour. Lorsqu’Amazon S3 exécute pour la première fois les règles, il marque les objets expirés qui sont éligibles à l’expiration. Vous n'êtes plus facturé pour les objets marqués pour suppression.
Amazon S3 fait expirer les versions des objets de manière asynchrone et supprime les marqueurs de suppression. L'exécution des règles peut prendre quelques jours avant que le compartiment ne soit vide. Pour plus d'informations sur la suppression de l'objet asynchrone dans Amazon S3, consultez la section Objets en cours d'expiration.
Utilisation de l’AWS CLI
Vous pouvez utiliser l'AWS CLI pour créer une règle de cycle de vie afin de vider votre compartiment S3. Procédez comme suit :
-
Créez un fichier avec votre contenu JSON, tel que lifecycle-rules.json. L'exemple de code suivant illustre un ensemble de règles de cycle de vie :
{ "Rules": [{
"Expiration": {
"Days": 1
},
"ID": "FullDelete",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 1
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 1
}
},
{
"Expiration": {
"ExpiredObjectDeleteMarker": true
},
"ID": "DeleteMarkers",
"Filter": {
"Prefix": ""
},
"Status": "Enabled"
}
]
}
-
Exécutez la commande put-bucket-lifecycle-configuration pour créer ou mettre à jour la configuration de votre cycle de vie. La commande suivante utilise un fichier JSON nommé lifecycle-rules.json :
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json
Remarque : Vous pouvez ajouter un filtre de préfixe au contenu JSON pour appliquer la règle uniquement au niveau du préfixe. Voici un exemple de commande :
"Filter": { "Prefix": "folder1/"
},
Informations connexes
Suppression des marqueurs de suppression d'objet arrivés à expiration dans un compartiment activé pour la gestion des versions
Gestion du cycle de vie des objets
Comment puis-je supprimer des objets et des compartiments Amazon S3 ?
Supprimer un compartiment à usage général
Définition d’une configuration de S3 Lifecycle sur un compartiment