【发布时间】:2020-07-16 04:13:13
【问题描述】:
我是使用 CloudFormation / CDK 的新手,并且无法确定部署我的堆栈而不会出错。目前我正在使用 python CDK 创建一个存储桶。此存储桶将保存模型文件,我需要确保部署在此堆栈中的存储桶随时间/新部署保留数据。从我最初的测试来看,如果不指定bucket_name,CDK会在部署时随机生成一个新的bucket名称,这并不理想。
这里是用来创建bucket的sn-p:
bucket = aws_s3.Bucket(self, "smartsearch-bucket", bucket_name= 'mybucketname')
我第一次运行cdk deploy,没有问题,桶就创建好了。第二次运行 cdk deploy 时,我收到一条错误消息,指出我的 S3 存储桶已存在。还需要什么才能使用预定的 S3 存储桶名称重新部署我的堆栈?
【问题讨论】:
-
您使用的 CDK 版本是什么?如果是旧版本,您可以尝试更新到最新版本再试一次吗?
-
我使用的是 1.31.0 版本,似乎是最新版本。
-
您是否在运行 cdk deploy 之间进行了任何更改?您是否正在销毁堆栈?当使用 S3 存储桶销毁其中包含文件的堆栈时,存储桶不会被删除。当您再次尝试 delpoy 时,您会收到存储桶已存在的错误。您可以创建一个部署 S3 存储桶的 base_resources 堆栈,然后创建另一个依赖于 base_resources 堆栈的堆栈,该堆栈随后也会被部署。然后你有能力销毁/部署堆栈 2 但 base_resourses 堆栈不会被销毁
-
@Yan - 我最终删除了存储桶并重新部署。回想起来,桶可能是在我的堆栈之外创建的,但我发誓它是。自删除和重新部署以来,我没有遇到任何问题
-
对此有什么解决办法吗?我遇到了同样的问题。当我重新部署时,我得到错误存储桶已经存在。我不想销毁存储桶,因此无法将删除策略设置为销毁
标签: python amazon-web-services amazon-s3 amazon-cloudformation aws-cdk