CloudFormation - 引用资源作为Parameter的默认值

时间:2016-02-04 22:49:05

标签: amazon-web-services amazon-cloudformation

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

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

此参数将在某处引用。

但这不起作用,因为CloudFormation期望基于错误消息的静态String。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

没有。 CloudFormation不可能具有动态默认值。原因是在收集参数时模板根本没有执行。

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

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

参考文献: