【问题标题】:How to use variables in bucket names AWS Cloudformation如何在存储桶名称中使用变量 AWS Cloudformation
【发布时间】:2020-07-04 06:47:15
【问题描述】:

我正在尝试创建用于创建 S3 存储桶的 Cloudformation 模板。我想对其进行配置,以便使用传递给模板的参数之一来命名存储桶。我可以在模板中的其他位置替换参数,但是当我尝试将它分到这里时,存储桶创建失败。

Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      BucketName: !Sub '${STRING_PARAM}-example-bucketname'

这会在创建 cloudformation 堆栈时提供Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request。我已经尝试在有效的名称中进行硬编码,所以我很确定它是一个有效的 S3 存储桶名称。

根据S3 Creation CloudFormation results in 400 Bad Request 引用(! Ref 而不是! Sub)到参数/资源直接有效,但我想我应该能够像其他任何地方一样在这里子参数。

【问题讨论】:

  • 嗨!请发布完整的模板,以便我们重现错误。另外,您的问题标题是“如何使用通配符存储桶名称”,但您没有在问题中提及通配符?
  • 失败怎么办?您确定这是一个有效的存储桶名称吗?
  • @kichik 查看编辑
  • 堆栈事件选项卡中是否存在更具描述性的错误?
  • 您能否在您的模板中提供STRING_PARAM 定义?

标签: amazon-web-services amazon-s3 yaml amazon-cloudformation


【解决方案1】:

BucketName 的值很好。这是使用 !Sub 的正确语法,应该可以使用。

问题是参数的名称必须是字母数字,所以STRING_PARAM 是无效的,因为它有一个下划线字符。

将您的参数名称更新为StringParam 之类的名称,它应该可以让您摆脱Parameter name STRING_PARAM is non alphanumeric. 错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2020-03-23
    • 2020-11-10
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2022-06-21
    相关资源
    最近更新 更多