amazon-web-services - 在清空或删除 S3 存储桶之前复制所有对象

标签 amazon-web-services amazon-s3 aws-lambda aws-cloudformation

有没有办法在存储桶被实际删除(例如,带有它所属的堆栈)或清空以复制其对象之前触发 lambda?也许可以使用其他东西来代替 lambda?

最佳答案

删除具有非空存储桶的 CloudFormation (CNF) 堆栈将会失败,因为非空存储桶无法删除,除非您设置其 DeletionPolicy保留。保留将删除堆栈,但会保留帐户中的存储桶。如果没有 retain,您必须先删除存储桶中的所有对象,然后才能删除存储桶。

无论哪种方式,您都必须通过自定义 lambda 函数自行删除对象。 CFN 和 S3 中都没有开箱即用的机制来在删除存储桶时删除对象。但由于这是您必须自己开发的东西,因此您可以在实际删除这些对象之前对它们执行任何您想要的操作,例如复制到冰川

实现这一目标的方法很少。但最常见的方式可能是通过自定义资源,类似于 AWS 博客中给出的方式:

本博客中给出的资源实际上响应 CFN 中的 Delete 事件并删除存储桶中的对象:

b_operator.Bucket(str(the_bucket)).objects.all().delete()

因此,在执行删除操作之前,您必须修改此自定义资源以复制对象。

关于amazon-web-services - 在清空或删除 S3 存储桶之前复制所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65910174/

相关文章:

node.js - 使用 RDS 时性能不佳的 AWS Lambda

amazon-web-services - 在使用 Amazon 的 EC2 服务来对抗时钟漂移时,我应该使用 NTP 服务器吗?

performance - 仅使用 nginx 服务器,EC2 微型实例应该能够处理多少用户?

amazon-web-services - 在哪里可以找到AWS中EC2实例的访问日志?

c# - 使用 asp.net MVC 拖放上传到 aws s3

amazon-s3 - Terraform S3 存储桶创建导致未授权

amazon-s3 - redshift 卸载操作导致冗余数据

amazon-web-services - 堆栈创建卡在 CREATE_IN_PROGRESS 上

aws-lambda - 在 Exact Online ERP 中注册 AWS GIT 代码推送事件

amazon-web-services - SAM 部署因 Lambda 函数的大小问题而失败