AWS CloudFormation 템플릿의 개별 파라미터에 여러 값을 사용하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 9월 22일

개별 파라미터에 여러 값을 사용하여 AWS CloudFormation 템플릿에서 스택을 생성 또는 업데이트하고 싶습니다.

간략한 설명

다음 방법 중 하나를 통해 AWS CloudFormation 템플릿에서 개별 파라미터에 여러 값을 전달할 수 있습니다.

해결 방법

AWS 관련 파라미터 유형을 사용하여 AWS 계정에서 미리 채워진 기존 AWS 값 목록에서 값을 선택합니다.

중요: AWS CloudFormation은 선택한 입력 값을 계정의 기존 값과 비교하여 검증합니다.

이러한 샘플 AWS CloudFormation 템플릿에서 SecurityGroups 키가 있는 파라미터는 SecurityGroupIds에 여러 값을 허용할 수 있는 AWS 관련 파라미터 유형을 지정합니다.

JSON 템플릿:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "SecurityGroups": {
      "Type": "List<AWS::EC2::SecurityGroup::Id>",
      "Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)"
    }
  },
  "Resources": {
    "MyEC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "ami-79fd7eee",
        "KeyName": "testkey",
        "SecurityGroupIds": {
          "Ref": "SecurityGroups"
        }
      }
    }
  }
}

YAML 템플릿:

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  SecurityGroups:
    Type: 'List<AWS::EC2::SecurityGroup::Id>'
    Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-79fd7eee
      KeyName: testkey
      SecurityGroupIds: !Ref SecurityGroups

AWS CLI를 사용하여 스택을 배포하려면 이 명령을 사용하세요. StackName을 스택 이름으로 바꿉니다. TemplateFileName을 파일 이름으로 바꿉니다. ParameterValue에 보안 그룹 ID를 입력합니다.

aws cloudformation create-stack --stack-name StackName --template-body file://TemplateFileName
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"

CommaDelimitedList 파라미터 유형을 사용하여 입력 값 입력

이러한 샘플 AWS CloudFormation 템플릿에서 SecurityGroups 키가 있는 파라미터는 SecurityGroupIds에 여러 값을 허용할 수 있는 CommaDelimitedList 유형을 지정합니다.

JSON 템플릿:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "SecurityGroups": {
      "Type": "CommaDelimitedList",
      "Description": "The list of SecurityGroupIds in your Virtual Private Cloud (VPC)",
      "Default": "sg-a123fd85, sg-b456ge94"
    }
  },
  "Resources": {
    "MyEC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": "ami-79fd7eee",
        "KeyName": "testkey",
        "SecurityGroupIds": {
          "Ref": "SecurityGroups"
        }
      }
    }
  }
}

YAML 템플릿:

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  SecurityGroups:
    Type: CommaDelimitedList
    Description: The list of SecurityGroupIds in your Virtual Private Cloud (VPC)
    Default: sg-a123fd85, sg-b456ge94
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-79fd7eee
      KeyName: testkey
      SecurityGroupIds: !Ref SecurityGroups
--parameters ParameterKey=SecurityGroups,ParameterValue="sg-0123456789\,sg-2345678901"

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?