我正在尝试使用以下云形成模板创建一个存储桶:
{
"Resources": {
"LoggingBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": {
"Fn::Join": [
"/",
[
{
"Ref": "AWS::Region"
},
{
"Ref": "Environment"
},
"backend-logs"
]
]
}
}
}
}
}
但是,在创建堆栈时会出现以下错误:
us-east-1/development/backend-logs already exists
似乎错误有点误导 - 如果我将/
更改为.
,它就会有效。
我还检查了documentation,虽然看起来/
是一个无效的字符,但似乎/
可能与他们自己的内部命名架构或其他东西冲突。
我是正确的还是我错过了什么?
答案 0 :(得分:7)
问题不在于使用桶名称的斜杠。
当您使用us-east-1/development/backend-logs
时,它会尝试创建一个存储桶名称" development"使用子文件夹" backend-logs"和"开发"是一个非常常见的名称,已经由一些人采用,S3桶遵循通用命名约定,这就是为什么该名称的错误不可用。
当您使用us-east-1/development.backend-logs
时,它会按名称创建存储桶" development.backend-logs"这是可用的,这就是为什么桶被创建。