有没有办法参数化 cloudformation 资源名称?

Is there a way to parameterize cloud formation resource names?

我正在尝试使云形成模板上的 AutoScalingGroup 名称动态化。我在想这是否可以通过参数或任何其他方式实现?

"DynamicASGName": {
      "Type": "AWS::AutoScaling::AutoScalingGroup",
      "Properties": {
      ...properties here...
      }
    }

CloudFormation 使用两组名称:逻辑资源名称 来标识堆栈中的资源,以及 物理名称在整个地区唯一标识它。

CloudFormation 不支持动态设置逻辑名称,但对于某些类型,您可以使用 Name property 在模板中设置物理名称。例如:

  MyUserPoolClient:
    Type: AWS::Cognito::UserPoolClient
    Properties:
      UserPoolId: !Ref MyUserPool
      ClientName: !Sub '${AppName}-userpoolclient'
      GenerateSecret: false

很遗憾,AutoScalingGroup 不支持此功能。

更好的解决方案可能是在您的资源上使用标签。大多数 AWS 资源类型(包括 AutoScalingGroup)都支持标签,它们可以在 CloudFormation 模板中动态设置。