java - 使用 AWS CDK 实施生命周期后无法删除 S3 存储桶
问题描述
我是 aws cdk 的初学者,我已经使用 AWS CDK 实施了 S3 生命周期管理,以在创建存储桶 10 天后删除存储桶(包括文件)。
cdk实现如下:
Builder builder = BucketProps.builder().encryption(BucketEncryption.KMS_MANAGED).removalPolicy(RemovalPolicy.DESTROY);
final String bucketName = ApplicationProperties.INSTANCE.getBatchS3Name();
final List<LifecycleRule> lifecycleRules = new ArrayList();
final LifecycleRule rule = new LifecycleRule.Builder().expiration(Duration.days(10)).build();
lifecycleRules.add(rule);
builder.lifecycleRules(lifecycleRules);
this.bucket = new Bucket(stack, "BatchWorkBucket", builder.build());
但是 s3 对象在 10 天后没有被删除。如附图所示,它即将过期。我们没有在 cdk api ( https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-中设置“删除过期的删除标记或不完整的分段上传”或其他选项的选项) s3.LifecycleRule.html#transitions)。
您能否在这个主题上帮助我,如何使用 aws cdk 删除 s3 对象。
解决方案
我相信这是按预期工作的。标记为过期的对象最终将被删除,但不会在 10 天之后被删除,就像您的情况一样。根据文档:
当对象根据其生命周期策略达到其生命周期的终点时,Amazon S3 将其排队等待移除并异步移除。到期日期与 Amazon S3 删除对象的日期之间可能存在延迟。
推荐阅读
- popup - NetSuite:报价时弹出消息
- freemarker - 如何避免 HTML 被解析为 HTML?
- database - 无法连接到 Excel 中可访问的 Access 中的 DB2 表
- loops - python如何知道何时停止for循环?
- json - 漂亮的 JSON 多注册到一行 JSON 多注册
- angularjs - 动态 JSON 不显示但在 AngularJS 中硬编码
- javascript - 在正文以外的 html 元素中使用 AR.JS
- asp.net - 如何使用 Automapper 映射复杂对象?
- apache-superset - 构建和部署 apache-superset
- javascript - 从 $mdDialog 更新绑定