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

时间:2017-08-31 11:00:43

标签: amazon-web-services elastic-beanstalk amazon-cloudformation amazon-elastic-beanstalk aws-security-group

我是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必须是String

类型

我试图通过以下方式提供安全组的价值,但没有一个能够发挥作用。

  

1)“!Ref FirstGroup,!ImportValue SecondGroup”

     

2)!Ref FirstGroup,!ImportValue SecondGroup

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

1 个答案:

答案 0 :(得分:1)

我自己得到了一些反复试验。因为它接受逗号分隔列表。我们需要使用!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
  ....
  ....