【问题标题】:Is there a way to parameterize cloud formation resource names?有没有办法参数化 cloudformation 资源名称?
【发布时间】:2016-10-17 17:17:28
【问题描述】:
我正在尝试使云形成模板上的 AutoScalingGroup 名称动态化。我在想这是否可以通过参数或任何其他方式实现?
"DynamicASGName": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
"Properties": {
...properties here...
}
}
【问题讨论】:
标签:
amazon-web-services
amazon-cloudformation
【解决方案1】:
CloudFormation 使用两组名称:逻辑资源名称,用于标识堆栈中的资源,物理名称,用于在整个区域内唯一标识它。
CloudFormation 不支持动态设置逻辑名称,但对于某些类型,您可以在模板中使用Name property 设置物理名称。例如:
MyUserPoolClient:
Type: AWS::Cognito::UserPoolClient
Properties:
UserPoolId: !Ref MyUserPool
ClientName: !Sub '${AppName}-userpoolclient'
GenerateSecret: false
很遗憾,AutoScalingGroup 不支持此功能。
更好的解决方案可能是在您的资源上使用标签。大多数 AWS 资源类型(包括 AutoScalingGroup)都支持标签,并且可以在 CloudFormation 模板中动态设置。