AWS Cloud Formation S3存储桶名称已存在

时间:2016-07-23 15:53:05

标签: amazon-web-services amazon-cloudformation

我正在尝试使用以下云形成模板创建一个存储桶:

{
  "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,虽然看起来/是一个无效的字符,但似乎/可能与他们自己的内部命名架构或其他东西冲突。

我是正确的还是我错过了什么?

1 个答案:

答案 0 :(得分:7)

问题不在于使用桶名称的斜杠。

当您使用us-east-1/development/backend-logs时,它会尝试创建一个存储桶名称" development"使用子文件夹" backend-logs"和"开发"是一个非常常见的名称,已经由一些人采用,S3桶遵循通用命名约定,这就是为什么该名称的错误不可用。

当您使用us-east-1/development.backend-logs时,它会按名称创建存储桶" development.backend-logs"这是可用的,这就是为什么桶被创建。