ECS: Objectlevenscyclusbeleid laat geen versies verlopen
Summary: Door de gebruiker geconfigureerd en levenscyclusbeleid voor objecten met de optie "Expiration" om objecten automatisch te verwijderen. Maar bucket sinds versiebeheer is ingeschakeld, worden de niet-huidige versies niet verwijderd. ...
Symptoms
Opmerking: Het onderstaande probleem is niet van toepassing op opgeschorte of versiebeheer uitgeschakelde buckets.
1. In een versie-ingeschakelde bucket wordt een levenscyclusbeleid ingesteld zoals in het onderstaande voorbeeld om objecten te laten verlopen. Het beleid is geconfigureerd om objecten na 1 dag automatisch te laten verlopen en te verwijderen.
<?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.companyaws.com/doc/2006-03-01/"> <Rule> <ID>Expire Objects</ID> <Prefix/> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration>
2. Voor objecten waarvan nooit versies zijn gemaakt, resulteert het bovenstaande objectverwijderbeleid in een verwijdermarkering die wordt ingevoegd om het huidige object te vervangen. En dus wordt het huidige object een niet-actuele versie in plaats van verwijderd
Voorbeeld:
Voordat aan het beleid wordt voldaan, is er één object en is het laatste
[VERSION_ID]: 1558539564138 [IS_LATEST]: true [MTIME]: 2019-05-22T15:39:24.138Z [SIZE]: 54270 [OBJECT]: sample.object
Nadat het beleid overeenkomt (na 1 dag) vindt de vervaldatum plaats, maar het object verandert in een niet-actuele versie en een dmarker wordt ingevoegd als het nieuwste object.
[VERSION_ID]: 1558539371262 [IS_LATEST]: false [MTIME]: 2019-05-22T15:36:11.262Z [SIZE]: 54270 [OBJECT]: sample.object >>> original object becomes non current version [VERSION_ID]: 1558539564138 [IS_LATEST]: true [MTIME]: 2019-05-22T15:39:24.138Z [SIZE]: DMARKER [OBJECT]: sample.object >>> DMarker inserted as latest version.
Gebruikers die van dit beleid verwachten dat het object volledig wordt verwijderd.
Cause
De verwachting van het beleidsvoorbeeld dat in de vorige sectie wordt genoemd, is onjuist voor versiebeheerbuckets. Dit geldt echter wel voor buckets zonder versiebeheer, omdat in buckets zonder versiebeheer het object meteen verloopt en wordt het verwijderd, waardoor het niet meer kan worden hersteld.
Bij Versioning-buckets daarentegen gaan de S3-protocollen anders om met het verlopen van objecten, maar wordt het object verplaatst naar een niet-actuele versie. En voegt een verwijdermarkering toe als tijdelijke aanduiding. Met versiebepalingsbuckets kan de objectversie worden hersteld, waardoor een respijtperiode voor herstel mogelijk is, afhankelijk van de beleidsinstellingen. Dit is normaal gedrag.
Zie de referentie in de sectie "aanvullende informatie" onderaan dit artikel voor meer informatie over levenscyclusbeleid, versiebeheer en vervaldatum in S3.
Resolution
In een bucket met ingeschakelde versies is het beter om het onderstaande voorbeeld van het levenscyclusbeleid te gebruiken. Die in plaats daarvan niet-huidige versies laat verlopen en ook markeringen verwijdert (die het gevolg zijn van een directe verwijdering van een object in een versie-bucket).
Voorbeeld:
In dit voorbeeld verwijdert S3 de huidige versies (objecten) 60 dagen nadat ze zijn gemaakt door een verwijdermarkering toe te voegen voor elk van de huidige objectversies. Met dit proces wordt de huidige versie niet-actueel en wordt de verwijdermarkering de huidige versie.
De NoncurrentVersionExpiration Acties in dezelfde S3 Lifecycle-configuratie verwijderen niet-actuele objecten 30 dagen nadat ze niet-actuele objecten zijn geworden. In dit voorbeeld worden alle objectversies dus 90 dagen na het maken van het object permanent verwijderd.
BELANGRIJKE OPMERKING: Levenscyclusbeleid moet met zorg worden behandeld, specificeer het aantal dagen en acties dat overeenkomt met uw applicatiebehoeften. Het onderstaande beleid is slechts een voorbeeld, het vervalt zowel dmarkers als niet-actuele versies waardoor verwijderingen onherstelbaar zijn.
<LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>
Additional Information
Meer informatie over het gedrag van het verlopen van beleid in buckets met en zonder versiebeheer vindt u hier; https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.htmlhttps://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#intro-lifecycle-rules-actions
https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lifecycle-config-conceptual-ex7
Verdere uitleg vindt u ook in de ECS-gids voor datatoegang met details over het instellen van levenscyclusbeleid
https://dl.dell.com/content/manual53094723-ecs-3-8-x-data-access-guide.pdf