AWS Cloudformation:如何在 AWS elastic beanstalk 配置中引用多个安全组

AWS Cloudformation: how to refer multiple security groups in AWS elastic beanstalk configuration

我是 AWS Cloudformation 世界的新手。我正在尝试创建一个 elasticbeanstalk 配置模板。对于其中一项设置,我需要使用两个安全组。所以,我给它如下

  MyConfigurationTemplate:
  Type: AWS::ElasticBeanstalk::ConfigurationTemplate
  Properties:
  Properties:
  ApplicationName:  MyApplication
  Description: A default Application
  SolutionStackName: SolutionStack
  OptionSettings:
  ....
  ....
  - Namespace: aws:autoscaling:launchconfiguration
    OptionName: SecurityGroups
    Value:
      !If
        - ConditionIsTrue
        - [!Ref FirstGroup, !ImportValue SecondGroup]
        - !Ref FirstGroup
  ....
  ....

我从 AWS 文档 here 中了解到,SecurityGroups 是一个列表,我们可以提供以逗号分隔的列表。但这对我不起作用。 AWS 抛出以下错误

Value of property Value must be of type String

我尝试通过以下方式赋予安全组价值,但 none 有效。

1) "!Ref FirstGroup, !ImportValue SecondGroup"

2) !Ref FirstGroup, !ImportValue SecondGroup

知道应该如何提供这个安全组列表吗?

我自己通过反复试验得到了它。因为它接受逗号分隔列表。我们需要使用 !join 如下。

MyConfigurationTemplate:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
  ApplicationName:  MyApplication
  Description: A default Application
  SolutionStackName: SolutionStack
  OptionSettings:
  ....
  ....
  - Namespace: aws:autoscaling:launchconfiguration
    OptionName: SecurityGroups
    Value:
    !If
      - ConditionIsTrue
      - !Join [',', [!Ref FirstGroup, !ImportValue SecondGroup]]
      - !Ref FirstGroup
  ....
  ....