CloudFormation 支持“过期对象删除标记”

R A*_*R A 5 amazon-s3 aws-cloudformation

创建启用版本控制的 S3 存储桶时,如何使用 CloudFormation 启用生命周期选项以在没有剩余“非当前”对象时删除“对象删除标记”。

请参阅使用 ExpiredObjectDeleteMarker 的生命周期配置示例文档中的示例 8 :

<LifecycleConfiguration>
    <Rule>
        ...
        <Expiration>
           <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
        </Expiration>
        <NoncurrentVersionExpiration>     
            <NoncurrentDays>30</NoncurrentDays>    
        </NoncurrentVersionExpiration>
    </Rule>
</LifecycleConfiguration>
Run Code Online (Sandbox Code Playgroud)

通过在操作ExpiredObjectDeleteMarker中将该元素设置为 true Expiration,您可以指示 Amazon S3 删除过期的对象删除标记。Amazon S3 将在对象过期后 48 小时内删除过期对象删除标记。

这可以通过 UI 实现,但是我无法通过 CloudFormation 找到此支持的参考:Amazon S3 生命周期规则

Evg*_*eny 5

在撰写本文时,CloudFormation 语法没有该选项。他们没有使用原始的 S3,而是出于LifecycleConfigurationCloudFormation 的目的重命名了属性,并忘记了这个特定的属性(以及其他几个属性)。

提出这个问题的一个更好的地方是CloudFormation 论坛,在 AWS 工作的人们实际上可以注意到并通过实施缺失的规则来解决问题。

AbortIncompleteMultipartUpload论坛中询问的另一个缺失规则 ( ) 的示例: https://forums.aws.amazon.com/thread.jspa ?messageID=746212

作为一种解决方法,一种可能的解决方案是使用 CloudFormation 自定义资源,该资源可以使用 Lambda 函数来实现。该过程在http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html中进行了描述。