【问题标题】:AWS CDK S3 Bucket Creation Error - Bucket_Name already exisitsAWS CDK S3 存储桶创建错误 - 存储桶名称已存在
【发布时间】: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


【解决方案1】:

我遇到了同样的问题,这是因为 我之前已经手动创建了存储桶以进行一些测试,而不是最初由 ECS 堆栈创建。 删除存储桶肯定会使 ECS 部署正常工作,就像它为您所做的那样,我多次测试了这个运行部署。 确保没有手动预创建 ECS 资源。

ECS 识别是否必须重新创建资源的方式是通过这些标签:

【讨论】:

    【解决方案2】:

    S3 存储桶名称是全局的,这意味着如果其他账户的其他人选择了此名称,它将不起作用,您应该为您的存储桶提供一个非常独特的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 2020-05-26
      相关资源
      最近更新 更多