我正在尝试创建一个Cloudformation模板,该模板创建一个S3存储桶。我想对其进行配置,以便使用传递到模板中的参数之一来命名存储桶。我可以在模板的其他位置替换参数,但是当我尝试在此处将其存储时,创建存储桶会失败。
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
指向参数/资源有效,但是我认为我应该能够像在其他地方一样在这里将参数细分。
答案 0 :(得分:0)
您为BucketName
的值很好。这是使用!Sub
的正确语法,应该可以使用。
问题在于参数名称必须为字母数字,因此STRING_PARAM
无效,因为其中带有下划线字符。
将您的参数名称更新为类似StringParam
的名称,这样您就可以摆脱Parameter name STRING_PARAM is non alphanumeric.
错误消息。