ECS: Policyen for objektlivssyklus utløper ikke
Summary: Brukerkonfigurert- og objektlivssykluspolicy med alternativ Utløp for å slette objekter automatisk. Men, bøtte siden har versjonskontroll aktivert de ikke-aktuelle versjonene blir ikke slettet. ...
Symptoms
Merk: Problemet nedenfor gjelder ikke for deaktiverte samlinger
eller verdiområder som er deaktivert.1. I en versjonsaktivert samling, er en livssykluspolicy angitt som i eksemplet nedenfor for å utløpe objekter. Policyen ble konfigurert til å utløpe og slette objekter automatisk etter 1 dag.
<?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. For objekter der det aldri ble opprettet versjoner, fører policyen for objektutløp ovenfor til at det settes inn et slettemerke for å erstatte det gjeldende objektet. Og dermed blir det nåværende objektet en ikke-aktuell versjon i stedet for å bli slettet
Eksempel:
Før politikken er oppfylt, er det ett objekt og er siste
[VERSION_ID]: 1558539564138 [IS_LATEST]: true [MTIME]: 2019-05-22T15:39:24.138Z [SIZE]: 54270 [OBJECT]: sample.object
Etter at policyen treffer (etter 1 dag), skjer utløpet, men objektet blir til en ikke-gjeldende versjon, og en dmarkør settes inn som det nyeste objektet.
[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.
Brukere som forventer at objektet blir fullstendig slettet ut fra denne policyen.
Cause
Forventningen fra policyeksemplet nevnt i forrige avsnitt er feil for versjonering av bøtter. Det er imidlertid sant for ikke-versjonering bøtter, som i ikke-versjonering bøtter objektet utløper med en gang og bli slettet blir uopprettelig.
I kontrast, med versjonskontroll samlinger S3 protokollene håndterer objekter utløp annerledes, det i stedet flytter objektet til en ikke-gjeldende versjon. Og legger til en slettemarkør som plassholder. Med versjonskontrollsamlinger kan objektversjonen gjenopprettes, noe som tillater gjenoppretting av en respittperiode avhengig av policyinnstillingene. Dette er en forventet atferd.
Hvis du vil ha mer informasjon om livssykluspolicyer, versjonskontroll og utløp i S3, kan du se referanse i delen "tilleggsinformasjon" nederst i denne artikkelen.
Resolution
I en versjonsaktivert samling, er det bedre å bruke eksemplet med livssykluspolicyen nedenfor. Som i stedet utløper ikke-gjeldende versjoner og også sletter markører (som er et resultat av en direkte sletting til et objekt i en versjonskontrollbøtte).
Eksempel:
I dette eksemplet fjerner S3 gjeldende versjoner (objekter) 60 dager etter at de ble opprettet, ved å legge til et slettemerke for hver av de gjeldende objektversjonene. Denne prosessen gjør gjeldende versjon ikke-oppdatert, og slettemarkøren blir gjeldende versjon.
Informasjonen i NoncurrentVersionExpiration -handling i samme S3-livssykluskonfigurasjon fjerner ikke-nåværende objekter 30 dager etter at de blir ikke-strømførende. I dette eksemplet fjernes derfor alle objektversjoner permanent 90 dager etter at objektet er opprettet.
VIKTIG MERKNAD: Livssykluspolicyer bør håndteres med forsiktighet, angi antall dager og handlinger som samsvarer med applikasjonsbehovene dine. Policyen nedenfor er bare et eksempel, den utløper både dmarkers og ikke-nåværende versjoner som gjør slettinger uopprettelige.
<LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>
Additional Information
Ytterligere detaljer om oppførselen til policyutløp i versjonerte og ikke-versjonerte bøtter finner du her; 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
Du finner også flere forklaringer i veiledningen for ECS-datatilgang med detaljer om hvordan du angir policy for livssyklus
https://dl.dell.com/content/manual53094723-ecs-3-8-x-data-access-guide.pdf