goodbyegangsterのブログ

備忘録的な

CloudFormationのStackをCLIより作成時、1つのパラメータに複数の値を入力する方法

地味に困ったので、メモ。

以下みたいなCloudFormationのテンプレートを作成時。

AWSTemplateFormatVersion: 2010-09-09

Parameters:
  (略)
  SecurityGroupIdsParm:
    Description: Select SecurityGroupIds
    Type: 'List<AWS::EC2::SecurityGroup::Id>'
  (略)

Resources:
  EC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      (略)
      NetworkInterfaces:
        - AssociatePublicIpAddress: false
          DeleteOnTermination: true
          DeviceIndex: 0
          SubnetId:
            Ref: SubnetIdParm
          PrivateIpAddress:
            Ref: PrivateIpAddressParm
          GroupSet:
            Ref: SecurityGroupIdsParm
      (略)

SecurityGroupIdsParm のパラメータには、複数のセキュリティグループidを与えたいですが、CLIからそれを実行する方法が分からなかった。AWSコンソールからは、プルダウンが表示されるので、それを選択すれば良いわけですが、CLIではどうすればいいのか。

knowledgeが公開されていました。普通にカンマ区切りにしろ、と。

AWS CLI の create-stack コマンドを使用して、list パラメータータイプに複数の値を渡す

> aws cloudformation create-stack --stack-name NewStackName --template-url (テンプレートのURL) --parameters ParameterKey=SecurityGroupIdsParm,ParameterValue=\"SecurityGroup1,SecurityGroup2\"

これでOK。