我正在尝试创建一个用于创建 S3 存储桶的 Cloudformation 模板。我想对其进行配置,以便使用传递到模板的参数之一来命名存储桶。我可以在模板中的其他位置替换该参数,但是当我尝试将其子到此处时,存储桶创建失败。
Resources:
S3Bucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketName: !Sub '${STRING_PARAM}-example-bucketname'
当创建cloudformation堆栈时,这会给出一个错误请求(服务:Amazon S3;状态代码:400;错误代码:400错误请求
)。我尝试过以具有以下内容的名称进行硬编码:有效,所以我很确定这是一个有效的 S3 存储桶名称。
每S3 Creation CloudFormation results in 400 Bad Request直接引用(!Ref
而不是!Sub
)到参数/资源是可行的,但我想我应该能够像其他地方一样在这里子参数。
最佳答案
您的 BucketName
值很好。这是使用 !Sub
的正确语法,应该可以工作。
问题是参数名称必须是字母数字,因此 STRING_PARAM
无效,因为其中包含下划线字符。
将您的参数名称更新为 StringParam
之类的内容,这样您就可以跳过Parameter name STRING_PARAM is non alphanumeric.
错误消息。
关于amazon-web-services - 如何在存储桶名称中使用变量 AWS Cloudformation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60819770/