CloudFormation - 参考资源作为参数的默认值

BPm*_*BPm 11 amazon-web-services aws-cloudformation

我有一个参数“SecretKey”,我想为其提供一个默认值(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html),默认值是生成的随机字符串。我已经有一个lambda 函数来生成密钥和一个自定义资源(调用它RandomSecretKey)来获取值。最终,我希望能够在参数部分执行此操作:

"SecretKey": {
... "Default": { "Fn::GetAtt": ["RandomSecretKey", "Value"] } }

这个参数会在某处被引用。

但这不起作用,因为 CloudFormation 需要基于错误消息的静态字符串。有没有办法做到这一点?

Mat*_*ser 12

不可以。无法为 CloudFormation 设置动态默认值。原因是模板在收集参数时根本没有执行。

如果您希望将其作为参数,则必须在模板之外生成生成的值,并将其作为参数传递到模板中。您可以从引导创建脚本中执行此操作。

或者,您应该能够在模板中使用自定义资源来生成随机密钥。它应该能够通过堆栈更新持续存在。

参考: