ECS: Objektien elinkaarikäytäntö ei vanhene versioita
Summary: Käyttäjän määrittämä objektien elinkaarikäytäntö, jossa on vaihtoehto "Expiration", joka poistaa objektit automaattisesti. Mutta kauha, koska versiointi on otettu käyttöön, ei-nykyisiä versioita ei poisteta. ...
Symptoms
Huomautus: Alla oleva ongelma ei koske käytöstä poistettuja tai versioituja säilöjä.
1. Versiopohjaisessa säilössä elinkaarikäytäntö määritetään alla olevan esimerkin mukaisesti vanhentamaan objektit. Käytäntö on määritetty vanhenemaan ja poistamaan objektit automaattisesti 1 päivän kuluttua.
<?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. Jos objektia ei ole koskaan luotu, yllä oleva objektin vanhentumiskäytäntö johtaa poistomerkin lisäämiseen nykyisen objektin korvaamiseksi. Ja siten nykyisestä objektista tulee ei-nykyinen versio sen sijaan, että se poistettaisiin
Esimerkki:
Ennen käytännön täyttymistä on yksi objekti, joka on uusin
[VERSION_ID]: 1558539564138 [IS_LATEST]: true [MTIME]: 2019-05-22T15:39:24.138Z [SIZE]: 54270 [OBJECT]: sample.object
Kun käytäntö vastaa (1 päivän kuluttua) , vanheneminen tapahtuu, mutta objekti muuttuu ei-current versioksi ja dmarker lisätään uusimpana objektina.
[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.
Käyttäjät, jotka odottavat tältä käytännöltä objektin poistamista kokonaan.
Cause
Edellisessä osassa mainitun käytäntöesimerkin odotus on väärä versiointisäilöille. Tämä pätee kuitenkin säilöihin, joissa ei ole versiointia, sillä ei-versiointisäilöissä objekti vanhenee heti ja siitä tulee peruuttamaton.
Sitä vastoin versiointisäilöissä S3-protokollat käsittelevät objektien vanhentumista eri tavalla, vaan siirtävät objektin ei-nykyiseen versioon. Ja lisää poistomerkin paikkamerkiksi. Versiointisäilöjen avulla objektiversio voidaan palauttaa, mikä sallii lisäajan palautuksen käytäntöasetusten mukaan. Tämä on normaalia.
Lisätietoja elinkaarikäytännöistä, versiotiedoista ja vanhenemisesta S3:ssa on tämän artikkelin lopussa olevassa "lisätietoja"-osiossa.
Resolution
Jos versio on käytössä säilössä, on parempi käyttää alla olevaa elinkaarikäytännön esimerkkiä. Sen sijaan se vanhentaa ei-nykyiset versiot ja poistaa myös merkit (jotka johtuvat versiointiryhmän objektin suorasta poistamisesta).
Esimerkki:
Tässä esimerkissä S3 poistaa nykyiset versiot (objektit) 60 päivän kuluttua niiden luomisesta lisäämällä poistomerkin kullekin nykyiselle objektiversiolle. Tämä prosessi muuttaa nykyisen version vanhentuneeksi, ja poistomerkistä tulee nykyinen versio.
pikanäppäimellä NoncurrentVersionExpiration saman S3 Lifecycle -konfiguraation toiminto poistaa pitkäaikaiset objektit 30 päivän kuluttua siitä, kun ne ovat muuttuneet jatkuviksi. Tässä esimerkissä kaikki objektiversiot poistetaan pysyvästi 90 päivän kuluttua objektin luomisesta.
TÄRKEÄ HUOMAUTUS: Elinkaarikäytäntöjä on käsiteltävä huolellisesti, määritä päivien ja toimintojen määrä, joka vastaa sovelluksen tarpeitasi. Alla oleva käytäntö on vain esimerkki, se vanhentaa sekä dmarkerit että ei-nykyiset versiot, jotka tekevät poistoista peruuttamattomia.
<LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>
Additional Information
Lisätietoja käytäntöjen vanhentumisesta versioiduissa ja versioimattomissa säilöissä on täällä. 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
Lisätietoja on myös ECS:n tietojen käyttöoppaassa, jossa on yksityiskohtaiset ohjeet elinkaarikäytännön määrittämiseen
https://dl.dell.com/content/manual53094723-ecs-3-8-x-data-access-guide.pdf