CREATE_FAILED | AWS::S3::Bucket,隐形桶存在吗?
CREATE_FAILED | AWS::S3::Bucket, the invisible bucket is exist?
我正在使用 aws-cdk 和 $cdk deploy
来部署一些堆栈。
但是,出现了这样的错误
21:12:30 | CREATE_FAILED | AWS::S3::Bucket | S3BucketStaticResourceB341FA19
si2-s3-sbu-mytest-xxx-static-resource-5133297d-91 already exists
通常是这种错误,我可以在 AWS 控制台中找到该项目。
但是在这种情况下,$aws s3 ls
不会显示名为此的存储桶。
为什么会出现这种情况或我应该在哪里解决?
通常,避免为使用 CDK 创建的资源明确提供物理名称是个好主意。
documentation 解释原因:
Assigning physical names to resources has some disadvantages in AWS CloudFormation. Most importantly, any changes to deployed resources that require a resource replacement, such as changes to a resource's properties that are immutable after creation, will fail if a resource has a physical name assigned. If you end up in that state, the only solution is to delete the AWS CloudFormation stack, then deploy the AWS CDK app again. See the AWS CloudFormation documentation for details.
因此,如果您引入需要更换存储桶的更改,您将看到上述错误。
在您的具体情况下,正如@Omar Rosadio 在评论中所述,存储桶名称在所有帐户和区域中都是全局唯一的,这可能是一个特定于 S3 的问题。这使得自己命名存储桶成为一个特别糟糕的主意。
如果你在创建bucket的时候没有传入bucketName
属性,CDK会为你生成一个唯一的名字,这个你不用担心,我建议这样做。
我正在使用 aws-cdk 和 $cdk deploy
来部署一些堆栈。
但是,出现了这样的错误
21:12:30 | CREATE_FAILED | AWS::S3::Bucket | S3BucketStaticResourceB341FA19
si2-s3-sbu-mytest-xxx-static-resource-5133297d-91 already exists
通常是这种错误,我可以在 AWS 控制台中找到该项目。
但是在这种情况下,$aws s3 ls
不会显示名为此的存储桶。
为什么会出现这种情况或我应该在哪里解决?
通常,避免为使用 CDK 创建的资源明确提供物理名称是个好主意。
documentation 解释原因:
Assigning physical names to resources has some disadvantages in AWS CloudFormation. Most importantly, any changes to deployed resources that require a resource replacement, such as changes to a resource's properties that are immutable after creation, will fail if a resource has a physical name assigned. If you end up in that state, the only solution is to delete the AWS CloudFormation stack, then deploy the AWS CDK app again. See the AWS CloudFormation documentation for details.
因此,如果您引入需要更换存储桶的更改,您将看到上述错误。
在您的具体情况下,正如@Omar Rosadio 在评论中所述,存储桶名称在所有帐户和区域中都是全局唯一的,这可能是一个特定于 S3 的问题。这使得自己命名存储桶成为一个特别糟糕的主意。
如果你在创建bucket的时候没有传入bucketName
属性,CDK会为你生成一个唯一的名字,这个你不用担心,我建议这样做。