파라미터
선택 사항인 Parameters
단원을 사용하여 템플릿을 사용자 지정합니다. 파라미터를 통해 스택을 생성하거나 업데이트 할 때마다 템플릿에 사용자 지정 값을 입력할 수 있습니다.
템플릿에서 파라미터 정의
다음 예에서는 InstanceTypeParameter
이라는 이름의 파라미터를 선언합니다. 스택을 생성 또는 업데이트할 때 사용할 스택의 Amazon EC2 인스턴스 유형을 지정할 수 있는 파라미터입니다.
InstanceTypeParameter
의 기본값은 t2.micro
입니다. 다른 값이 제공되는 경우를 제외하고, AWS CloudFormation이 스택을 프로비저닝할 떄 사용하는 값입니다.
JSON
"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }
YAML
Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.
템플릿에서 파라미터 참조
Ref
내장 함수를 사용하여 파라미터를 참조할 수 있고, AWS CloudFormation은 스택 프로비저닝에 이 파라미터 값을 사용합니다. 동일한 템플릿의 Resources
및 Outputs
의 파라미터를 참조할 수 있습니다.
다음은 EC2 인스턴스의 InstanceType
속성이 InstanceTypeParameter
파라미터 값을 참조하는 예제입니다.
JSON
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867
파라미터의 일반 요구 사항
파라미터를 사용할 때는 다음 요구 사항이 적용됩니다.
AWS CloudFormation 템플릿에는 최대 60개 파라미터를 지정할 수 있습니다.
각 파라미터마다 논리적 이름(논리적 ID)을 지정해야 합니다. 이 이름은 템플릿 내 모든 논리적 이름 간에 고유해야 하며 영숫자로 지정해야 합니다.
각 파라미터마다 AWS CloudFormation이 지원하는 파라미터 유형을 할당해야 합니다. 자세한 내용은 유형을 참조하십시오.
각 파라미터마다 AWS CloudFormation이 스택을 프로비저닝 할 실행 시간에 대한 값을 할당해야 합니다. 다른 값이 제공되는 경우를 제외하고, AWS CloudFormation 에 대한 기본값을 선택적으로 지정할 수 있습니다.
파라미터는 동일한 템플릿에서 선언하고 참조해야 합니다. 템플릿의
Resources
및Outputs
의 파라미터를 참조할 수 있습니다.
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Type" : "DataType
", "ParameterProperty
" : "value
" } }
YAML
Parameters:
ParameterLogicalID
: Type:DataType
ParameterProperty
:value
속성
AllowedPattern
-
String
유형에 허용할 패턴을 나타내는 정규식입니다. 패턴은 제공된 파라미터 값 전체와 일치해야 합니다.Required: No
AllowedValues
-
파라미터에 허용되는 값 목록을 포함하는 어레이입니다.
Required: No
ConstraintDescription
-
제약 위반 시 해당 제약을 설명하는 문자열입니다. 예를 들어 제약 설명이 없으면
[A-Za-z0-9]+
패턴이 허용된 파라미터에 사용자가 유효하지 않은 값을 지정할 때 다음과 같은 오류 메시지가 표시됩니다.Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
'문자(대문자 및 소문자)와 숫자만 포함시킬 수 있음' 같은 제약을 추가, 다음과 같은 사용자 지정 오류 메시지를 표시할 수 있습니다.
Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers
Required: No
Default
-
스택 생성 시 지정된 값이 없는 경우에 사용할 템플릿에 적합한 유형의 값입니다. 파라미터에 대한 제약을 정의하는 경우 이러한 제약을 준수하는 값을 지정해야 합니다.
Required: No
Description
-
파라미터를 설명하는 최대 4000자 문자열입니다.
Required: No
MaxLength
-
String
유형에 허용할 최대 문자 수를 결정하는 정수 값입니다.Required: No
MaxValue
-
Number
유형에 허용할 최대 숫자 값을 결정하는 숫자 값입니다.Required: No
MinLength
-
String
유형에 허용할 최소 문자 수를 결정하는 정수 값입니다.Required: No
MinValue
-
Number
유형에 허용할 최소 숫자 값을 결정하는 숫자 값입니다.Required: No
NoEcho
-
콘솔, 명령줄 도구 또는 API에 표시되지 않도록 파라미터 값을 마스킹 처리할지 여부입니다.
NoEcho
속성을true
로 설정한 경우, 아래 지정된 위치에 저장된 정보를 제외하고 CloudFormation은 스택 또는 스택 이벤트를 설명하는 모든 호출에 대해 별표(*****)로 마스킹 처리된 파라미터 값을 반환합니다.Required: No
중요 중요 AWS Systems Manager Parameter Store 또는 AWS Secrets Manager와 같이 CloudFormation 외부에서 저장 및 관리되는 중요한 정보를 참조하려면 CloudFormation 템플릿에 직접 중요한 정보를 포함하는 대신 스택 템플릿에 있는 동적 파라미터를 사용하는 것이 좋습니다.
자세한 내용은 템플릿에 자격 증명을 포함하지 않음을 참조하십시오.
중요 리소스의 기본 식별자의 일부인 리소스 속성에
NoEcho
파라미터 또는 민감한 데이터를 포함하지 않는 것이 좋습니다.기본 리소스 식별자를 구성하는 속성에
NoEcho
파라미터가 포함된 경우 CloudFormation은 기본 리소스 식별자에서 실제 일반 텍스트 값을 사용할 수 있습니다. 이 리소스 ID는 파생된 출력 또는 대상에 나타날 수 있습니다.리소스 유형의 기본 식별자를 구성하는 리소스 속성은 해당 리소스에 대한 리소스 참조 설명서에서 확인하세요. Return values(반환 값) 섹션에서
Ref
함수 반환 값은 리소스 유형의 기본 식별자를 구성하는 리소스 속성을 나타냅니다. Type
-
파라미터(
DataType
)의 데이터 유형입니다.Required: Yes
AWS CloudFormation은 다음과 같은 파라미터 유형을 지원합니다.
String
-
리터럴 문자열입니다.
예를 들면 사용자는
"MyUserName"
을 지정할 수 있습니다. Number
-
정수 또는 부동 소수점입니다. AWS CloudFormation에서 파라미터 값이 숫자로 확인되지만, 템플릿 내에서 이 파라미터를 사용하는 경우(예를 들면,
Ref
내장 함수를 사용하여) 파라미터 값이 문자열이 됩니다.예를 들면 사용자는
"8888"
을 지정할 수 있습니다. List<Number>
-
쉼표로 구분되는 정수 또는 부동 소수점 어레이입니다. AWS CloudFormation에서 파라미터 값이 숫자로 확인되지만, 템플릿 내에서 이 파라미터를 사용하는 경우(예를 들면,
Ref
내장 함수를 사용하여) 파라미터 값이 문자열 목록이 됩니다.예를 들어 사용자가
"80,20"
을 지정하면Ref
는["80","20"]
이 됩니다. CommaDelimitedList
-
쉼표로 구분된 리터럴 문자열 어레이입니다. 총 문자열 수는 총 쉼표 수보다 하나 더 많아야 합니다. 또한 각 멤버 문자열에는 공백이 삽입됩니다.
예를 들어 사용자가
"test,dev,prod"
을 지정하면Ref
는["test","dev","prod"]
이 됩니다. - AWS 특정 파라미터 유형
-
Amazon EC2 키 페어 이름 및 VPC ID와 같은 AWS 값입니다. 자세한 정보는 AWS 특정 파라미터 유형을 참조하십시오.
SSM
파라미터 유형-
시스템 관리자 Parameter Store의 기존 파라미터에 해당되는 파라미터. Systems Manager 파라미터 키를
SSM
파라미터 값으로 지정합니다. 그러면 AWS CloudFormation이 Parameter Store에서 스택에 사용할 최신 값을 가져옵니다. 자세한 정보는 SSM 파라미터 유형을 참조하십시오.
AWS 특정 파라미터 유형
AWS 특정 파라미터 유형은 스택 생성 또는 업데이트 시작 시 유효하지 않은 값을 찾아내는 데 유용합니다. AWS 특정 유형으로 파라미터를 지정하려면 템플릿 사용자가 AWS 계정에 있는 기존 AWS 값을 입력해야 합니다. AWS CloudFormation에서는 이러한 입력 값을 계정에 있는 기존 값과 대조하여 검증합니다. 예를 들어, AWS::EC2::VPC::Id
파라미터 유형을 사용하는 경우 사용자는 스택을 생성 중인 리전과 계정에 있는 기존 VPC ID를 입력해야 합니다.
템플릿 사용자가 다른 AWS 계정에서 입력 값을 입력하도록 허용하고자 하는 경우 AWS 특정 유형으로 파라미터를 정의하지 마세요. 대신 String
유형(또는 CommaDelimitedList
)의 파라미터를 정의합니다.
지원되는 AWS 특정 파라미터 유형
AWS CloudFormation에서는 다음과 같은 AWS 특정 유형을 지원합니다.
AWS::EC2::AvailabilityZone::Name
-
가용 영역(예:
us-west-2a
). AWS::EC2::Image::Id
-
Amazon EC2 이미지 ID(예:
ami-0ff8a91507f77f867
). AWS CloudFormation 콘솔은 이 파라미터 유형에 대해 드롭다운 값 목록을 표시하지 않습니다. AWS::EC2::Instance::Id
-
Amazon EC2 인스턴스 ID(예:
i-1e731a32
). AWS::EC2::KeyPair::KeyName
-
Amazon EC2 키 페어 이름.
AWS::EC2::SecurityGroup::GroupName
-
EC2-Classic 또는 기본 VPC 보안 그룹 이름(예:
my-sg-abc
). AWS::EC2::SecurityGroup::Id
-
보안 그룹 ID(예:
sg-a123fd85
). AWS::EC2::Subnet::Id
-
서브넷 ID(예:
subnet-123a351e
). AWS::EC2::Volume::Id
-
Amazon EBS 볼륨 ID(예:
vol-3cdd3f56
). AWS::EC2::VPC::Id
-
VPC ID(예:
vpc-a123baa3
). AWS::Route53::HostedZone::Id
-
Amazon Route 53 호스팅 영역 ID(예:
Z23YXV4OVPL04A
). List<AWS::EC2::AvailabilityZone::Name>
-
리전 가용 영역 어레이(예:
us-west-2a, us-west-2b
). List<AWS::EC2::Image::Id>
-
Amazon EC2 이미지 ID 어레이(예:
ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c
). AWS CloudFormation 콘솔은 이 파라미터 유형에 대해 드롭다운 값 목록을 표시하지 않습니다. List<AWS::EC2::Instance::Id>
-
Amazon EC2 인스턴스 ID 어레이(예:
i-1e731a32, i-1e731a34
). List<AWS::EC2::SecurityGroup::GroupName>
-
EC2-Classic 또는 기본 VPC 보안 그룹 이름 어레이(예:
my-sg-abc, my-sg-def
). List<AWS::EC2::SecurityGroup::Id>
-
보안 그룹 ID 어레이(예:
sg-a123fd85, sg-b456fd85
). List<AWS::EC2::Subnet::Id>
-
서브넷 ID 어레이(예:
subnet-123a351e, subnet-456b351e
). List<AWS::EC2::Volume::Id>
-
Amazon EBS 볼륨 ID 어레이(예:
vol-3cdd3f56, vol-4cdd3f56
). List<AWS::EC2::VPC::Id>
-
VPC ID 어레이(예:
vpc-a123baa3, vpc-b456baa3
). List<AWS::Route53::HostedZone::Id>
-
Amazon Route 53 호스팅 영역 ID 어레이(예:
Z23YXV4OVPL04A, Z23YXV4OVPL04B
).
SSM 파라미터 유형
시스템 관리자 Parameter Store의 기존 파라미터에 해당되는 SSM
파라미터 유형. Systems Manager 파라미터 키를 SSM
파라미터 값으로 지정합니다. 그러면 AWS CloudFormation이 Parameter Store에서 스택에 사용할 최신 값을 가져옵니다. 시스템 관리자 파라미터에 대한 자세한 내용을 알아보려면 AWS Systems Manager 사용 설명서의 Systems Manager Parameter Store를 참조하세요.
또한 ssm
또는 ssm-secure
동적 파라미터 패턴을 사용하여 템플릿에서 파라미터 값을 지정할 수 있습니다. 자세한 정보는 동적 참조를 사용하여 템플릿 값 지정을 참조하십시오.
스택을 생성 또는 업데이트하고, 변경 세트를 생성할 때, AWS CloudFormation은 작업 실행 시간 동안 Parameter Store에 있는 임의의 값을 사용합니다. 지정한 파라미터가 호출자의 AWS 계정과 연결된 Parameter Store에 없는 경우 AWS CloudFormation은 검증 오류 메시지를 반환합니다.
변경 세트를 실행하면, AWS CloudFormation은 변경 세트에서 지정한 값을 사용합니다. 변경 세트를 실행하기 전에 값을 확인해야 합니다. 변경 세트를 생성해 실행하는 동안 Parameter Store에서 변경될 수 있기 때문입니다.
콘솔의 스택 Parameters(파라미터) 탭에서 또는 describe-stacks
나 describe-change-set
를 실행하여 SSM
파라미터의 해석된 값을 확인할 수 있습니다. 현재 해당 시스템 관리자 파라미터 키에 대한 스택 정의에 사용된 값입니다. 스택을 생성 또는 업데이트할 때 값을 설정해야, Parameter Store의 최신 값과 일치합니다.
ssm-secure
패턴을 사용하여 보안 문자열을 파라미터 값을 지정하지 않은 경우 AWS CloudFormation에서 보안 문자열 값을 저장하거나 이를 콘솔에 또는 API 호출의 결과로 표시하지 않습니다.
SSM
파라미터의 값이 시스템 관리자 파라미터 키이기 때문에, 다음을 주의해야 합니다.
스택 업데이트의 경우 콘솔의 Use existing value(기존 값 사용) 옵션과
update-stack
의UsePreviousValue
속성은 AWS CloudFormation에 기존 Systems Manager 파라미터 값이 아닌 키를 사용할 것을 알려줍니다. AWS CloudFormation은 스택을 업데이트할 때마다 Parameter Store에서 최신 값을 가져옵니다.하지만
ssm
또는ssm-secure
동적 파라미터 패턴을 사용하여 파라미터 값을 지정하는 경우 AWS CloudFormation에서 사용할 Systems Manager 파라미터의 버전을 지정해야 합니다.AWS CloudFormation은 일치하는 값이 아닌, 시스템 관리자 파라미터 키에서 확인 작업을 수행할 수 있습니다. 확인 목적에서 파라미터 키를 문자열로 취급할 수 있습니다. Parameter Store에서는 시스템 관리자 파라미터 값을 확인할 수 없습니다.
SSM
파라미터 유형을 사용하는 방법에 대한 예제는 SSM파라미터 유형을 참조하십시오.
지원되는 SSM 파라미터 유형
AWS CloudFormation은 다음과 같은 SSM
파라미터 유형을 지원합니다.
AWS::SSM::Parameter::Name
-
시스템 관리자 파라미터 키의 이름입니다.
파라미터 키를 전달하고 싶을 때 이 파라미터를 사용하십시오. 예를 들면, 파라미터가 존재하는지 확인하기 위해 이 유형을 사용할 수 있습니다.
AWS::SSM::Parameter::Value<String>
-
값이 문자열인 시스템 관리자 파라미터입니다. 이는 Parameter Store의
String
파라미터 유형과 일치합니다. AWS::SSM::Parameter::Value<List<String>>
또는AWS::SSM::Parameter::Value<CommaDelimitedList>
-
값이 문자열 목록인 시스템 관리자 파라미터입니다. 이는 Parameter Store의
StringList
파라미터 유형과 일치합니다. AWS::SSM::Parameter::Value<
AWS-specific parameter type
>-
값이 AWS 고유 파라미터 유형인 시스템 관리자 파라미터입니다. 다음은
AWS::EC2::KeyPair::KeyName
유형을 지정하는 예제입니다.AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
AWS::SSM::Parameter::Value<List<
AWS-specific parameter type
>>-
값이 AWS 고유 파라미터 유형 목록인 시스템 관리자 파라미터입니다. 다음은
AWS::EC2::KeyPair::KeyName
유형 목록을 지정하는 예제입니다.AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>
지원되지 않는 SSM 파라미터 유형
AWS CloudFormation은 다음 SSM
파라미터 유형을 지원하지 않습니다.
SSM
파라미터 유형 목록(예:List<AWS::SSM::Parameter::Value<String>>
)
추가로 AWS CloudFormation에서는 SecureString
시스템 관리자 파라미터 유형으로 템플릿 파라미터를 정의하는 것을 지원하지 않습니다. 하지만 동적 파라미터 패턴을 사용하여 보안 문자열을 특정 리소스에 대한 파라미터 값으로 지정할 수 있습니다. 자세한 정보는 동적 참조를 사용하여 템플릿 값 지정을 참조하십시오.
AWS CloudFormation 콘솔의 파라미터 그룹화 및 정렬
AWS CloudFormation 콘솔을 사용하여 스택을 생성하거나 업데이트하는 경우 콘솔은 입력 파라미터를 논리적 ID별 영문자순으로 나열합니다. 기본 정렬을 재정의하려면 AWS::CloudFormation::Interface
메타데이터 키를 사용합니다. 파라미터를 그룹화 및 정렬하면 사용자가 파라미터 값을 보다 쉽게 지정할 수 있습니다. 예를 들면 영문자 목록 전체에 걸쳐 산발적으로 나열되지 않도록 모든 VPC 관련 파라미터를 그룹화할 수 있습니다.
메타데이터 키에서는 생성할 그룹, 각 그룹에 포함할 파라미터, 그리고 콘솔에서 그룹 내 각 파라미터를 표시하는 순서를 지정할 수 있습니다. 또한 콘솔에서 논리적 ID 대신에 설명 이름을 표시하도록 친숙한 파라미터 이름을 정의할 수도 있습니다. 메타데이터 키에서 참조하는 모든 파라미터는 템플릿의 Parameters
섹션에 선언해야 합니다.
AWS::CloudFormation::Interface
메타데이터 키에 대한 자세한 내용과 예제는 AWS::CloudFormation::Interface 단원을 참조하십시오.
예시:
기본 입력 파라미터
다음 예제인 Parameters
섹션에는 두 가지 파라미터가 선언됩니다. DBPort
파라미터는 기본값이 Number
인 3306
유형입니다. 지정할 수 있는 최소값은 1150
이고, 지정할 수 있는 최대값은 65535
입니다. DBPwd
파라미터는 기본값이 없는 String
유형입니다. NoEcho
속성은 describe stack 호출(예: aws cloudformation describe-stacks
AWS CLI 명령)에서 파라미터 값이 반환되지 않도록 true
로 설정됩니다. 지정할 수 있는 최소 길이는 1
이고, 지정할 수 있는 최대 길이는 41
입니다. 이 패턴에는 영문자 소문자/대문자와 숫자가 허용됩니다.
JSON
"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }
YAML
Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$
AWS 특정 파라미터 유형
AWS 특정 파라미터 유형을 사용하는 경우 템플릿을 사용하여 스택을 생성하거나 업데이트하는 사용자는 사용자 계정과 현재 스택의 리전에 있는 기존 AWS 값을 지정해야 합니다. AWS 특정 파라미터 유형은 AWS CloudFormation에서 리소스를 생성하거나 업데이트하기 전에 이러한 유형의 입력 값이 있으며 올바른지 확인하는 데 도움이 됩니다. 예를 들어 AWS::EC2::KeyPair::KeyName
파라미터 유형을 사용하는 경우 AWS CloudFormation에서는 Amazon EC2 인스턴스와 같은 리소스를 생성하기 전에 사용자의 기존 키 페어 이름과 대조하여 입력 값을 확인합니다.
사용자가 AWS Management Console을 사용하는 경우 AWS CloudFormation에서는 AWS 특정 파라미터 유형을 유효한 값으로 미리 채웁니다. 따라서 사용자는 특정 이름이나 ID를 기억하고 올바르게 입력할 필요가 없습니다. 드롭다운 목록에서 하나 이상의 값을 선택하기만 하면 됩니다. 또한 사용자는 파라미터 유형에 따라 ID, 이름 또는 Name 태그 값을 기준으로 값을 검색할 수 있습니다. 자세한 정보는 스택 이름 및 파라미터 지정을 참조하십시오.
다음 예제에서는 AWS::EC2::KeyPair::KeyName
및 AWS::EC2::Subnet::Id
유형의 두 파라미터를 선언합니다. 이러한 유형은 유효한 값을 기존 키 페어 및 서브넷 ID로 제한합니다. mySubnetIDs
파라미터가 목록으로 지정되므로 사용자는 하나 이상의 서브넷 ID를 지정할 수 있습니다.
JSON
"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }
YAML
Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"
AWS CLI 및 API 지원
현재, 사용자는 AWS CLI 또는 AWS CloudFormation API를 사용하여 AWS 특정 파라미터의 유효 값 목록을 볼 수 없습니다. 하지만 aws cloudformation get-template-summary
명령이나 GetTemplateSummary
API를 사용하여 파라미터 유형 같은 각 파라미터에 대한 정보를 볼 수 있습니다.
쉼표로 구분된 목록 파라미터 유형
CommaDelimitedList
파라미터 유형을 사용하면 한 파라미터에 여러 문자열 값을 지정할 수 있습니다. 즉, 여러 가지 파라미터를 사용하는 대신 파라미터 하나에 여러 값을 지정할 수 있습니다. 예를 들어, 세 가지 서브넷을 각각의 고유 CIDR 블록으로 생성하는 경우 각기 다른 세 파라미터로 세 가지 CIDR 블록을 지정할 수 있습니다. 하지만 다음 코드 조각과 같이 세 CIDR 블록의 목록을 받는 파라미터 하나만 사용하는 편이 더 간단합니다.
JSON
"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }
YAML
Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"
쉼표로 구분된 목록 파라미터에서 값 반환
목록에서 특정 값을 참조하려면 템플릿의 Fn::Select
섹션에서 Resources
내장 함수를 사용합니다. 다음 코드 조각에서처럼 원하는 객체의 인덱스 값과 객체 목록을 전달합니다.
JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [0, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [0, !Ref DbSubnetIpBlocks] DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [1, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [1, !Ref DbSubnetIpBlocks] DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [2, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [2, !Ref DbSubnetIpBlocks]
SSM 파라미터 유형
AWS::SSM::Parameter::Value
<String> 유형
다음 템플릿은 AWS::SSM::Parameter::Value<String>
파라미터 유형을 선언합니다.
JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType
다음 명령은 예제 템플릿을 토대로 스택을 생성합니다. 시스템 관리자 파라미터 키(myInstanceType
)를 InstanceType
템플릿 파라미터에 대한 값으로 제공합니다. 여기에서는 myInstanceType
파라미터가 호출자 AWS 계정의 Parameter Store에 있다고 가정합니다.
aws cloudformation create-stack --stack-name S1 --template-body
example template
--parameters ParameterKey=InstanceType,ParameterValue=myInstanceType
AWS::SSM::Parameter::Value
<AWS::EC2::Image::Id
> 유형
다음 템플릿은 AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
파라미터 유형을 선언합니다.
JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId
다음 명령은 예제 템플릿을 토대로 스택을 생성합니다. 시스템 관리자 파라미터 키(myLatestAMI
)를 ImageId
템플릿 파라미터에 대한 값으로 제공합니다. 여기에서는 myLatestAMI
파라미터가 호출자 AWS 계정의 Parameter Store에 있다고 가정합니다.
aws cloudformation create-stack --stack-name S2 --template-body
example template
--parameters ParameterKey=ImageId,ParameterValue=myLatestAMI