ECS: Zásada životního cyklu objektů neruší platnost verzí
Summary: Uživatelem nakonfigurované zásady životního cyklu objektů s možností "Expiration" pro automatické odstranění objektů. Ale kbelík, protože povolil správu verzí, neaktuální verze se neodstraňují. ...
Symptoms
Poznámka: Následující problém se netýká pozastavených kbelíků nebo zakázaných verzí kbelíků.
1. V kbelíku s povolenou verzí je zásada životního cyklu nastavená jako v následujícím příkladu tak, aby vypršela platnost objektů. Zásada byla nakonfigurována tak, aby automaticky vypršela platnost a odstranila objekty po 1 dni.
<?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. U objektů, které nikdy neměly vytvořené verze, výše uvedená zásada vypršení platnosti objektu vede k vložení značky odstranění, která nahradí aktuální objekt. A tak se aktuální objekt stane neaktuální verzí místo toho, aby byl smazán
Příklad:
Před splněním zásad existuje jeden objekt a je nejnovější
[VERSION_ID]: 1558539564138 [IS_LATEST]: true [MTIME]: 2019-05-22T15:39:24.138Z [SIZE]: 54270 [OBJECT]: sample.object
Jakmile se zásady shodují (po 1 dni), dojde k vypršení platnosti, ale objekt se změní na neaktuální verzi a jako nejnovější objekt se vloží dmarker.
[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.
Uživatelé, kteří od této zásady očekávají, že se objekt zcela odstraní.
Cause
Očekávání z příkladu zásad uvedeného v předchozí části je nesprávné pro kontejnery pro správu verzí. Platí to však pro kontejnery bez verzí, protože v kontejnerech bez verzí vyprší platnost objektu hned a odstraní se, což se stane neobnovitelným.
Naproti tomu u kontejnerů pro správu verzí protokoly S3 zpracovávají vypršení platnosti objektů odlišně a místo toho přesunou objekt do neaktuální verze. A přidá značku odstranění jako zástupný symbol. Pomocí kontejnerů pro správu verzí je možné obnovit verzi objektu, což umožňuje obnovení období odkladu v závislosti na nastavení zásad. Jde o očekávané chování.
Další podrobnosti o zásadách životního cyklu, správě verzí a vypršení platnosti v S3 najdete v části Další informace na konci tohoto článku.
Resolution
V kbelíku s povolenou verzí je lepší použít níže uvedený příklad zásad životního cyklu. Což místo toho vyprší platnost neaktuálních verzí a také odstraní značky (které jsou výsledkem přímého odstranění objektu v kbelíku pro správu verzí).
Příklad:
V tomto příkladu S3 odebere aktuální verze (objekty) 60 dní po jejich vytvoření přidáním značky odstranění pro každou z aktuálních verzí objektu. Tento proces způsobí, že aktuální verze bude neaktuální a značka odstranění se stane aktuální verzí.
Příkaz NoncurrentVersionExpiration akce ve stejné konfiguraci životního cyklu S3 odebere neaktuální objekty 30 dní poté, co se stanou neaktuálními. V tomto příkladu jsou tedy všechny verze objektů trvale odebrány 90 dní po vytvoření objektu.
DŮLEŽITÁ POZNÁMKA: Zásady životního cyklu by měly být zpracovány opatrně, určete počet dnů a akcí, které odpovídají potřebám vaší aplikace. Níže uvedená zásada slouží pouze jako příklad, vyprší platnost jak dmarkerů, tak neaktuálních verzí, kvůli nimž je odstranění neobnovitelné.
<LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>
Additional Information
Další podrobnosti o chování při vypršení platnosti zásad v kontejnerech s verzemi a bez verzí najdete tady. 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
Další vysvětlení naleznete také v příručce ECS pro přístup k datům s podrobnostmi o nastavení zásad životního cyklu
https://dl.dell.com/content/manual53094723-ecs-3-8-x-data-access-guide.pdf