AWS CloudFormation에서 "파라미터 검증 실패: 파라미터 이름 'ABC'에 대한 파라미터 값'abc'가 존재하지 않음" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 7월 8일

AWS CloudFormation 스택을 생성하거나 업데이트할 때 "파라미터 검증 실패: 파라미터 이름 'ABC'에 대한 파라미터 값'abc'가 존재하지 않습니다."라는 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS CloudFormation 템플릿에 사용된 파라미터 중 하나가 AWS 관련 파라미터 유형인 경우 AWS CloudFormation이 이 오류를 반환합니다.

AWS 관련 파라미터를 다음과 같이 사용하는 경우 이 오류가 발생할 수 있습니다.

  • 스택 생성 중 AWS 리전 또는 계정에 존재하지 않는 값을 전달하기 위해 사용하는 경우
  • 리소스의 속성으로 파라미터를 사용한 다음 스택 업데이트 중에 리소스를 업데이트하기 전에 대역 외에서 이 값을 삭제하는 경우
  • 하위 스택의 파라미터로 사용하는 경우. 상위 스택에서 전달된 하위 스택의 값이 파라미터 유형과 일치하지 않거나 파라미터의 리소스가 해당 리전의 계정에 존재하지 않는 경우 이 오류가 발생합니다.

해결 방법

스택 생성

1.    AWS CloudFormation 콘솔을 엽니다.

2.    탐색 창에서 [스택]을 선택합니다.

3.    [스택 이름] 열에서 생성 또는 업데이트에 실패한 스택을 선택합니다.

4.    [파라미터] 탭을 선택합니다.

5.    [] 열에서 값이 abcABC 파라미터를 검색합니다.

6.    리소스 abc가 AWS 관련 파라미터 유형의 유형과 일치하는지 확인하려면 스택을 생성할 때 사용한 AWS CloudFormation 템플릿의 파라미터 섹션을 확인하십시오.

7.    파라미터 ABC에 대한 리소스 abc가 리전 또는 계정에 존재하는지 확인하려면 AWS Management Console 또는 리소스 설명을 위한 AWS Command Line Interface(AWS CLI) 명령을 사용합니다. 리소스에 적합한 명령을 찾으려면 리소스에 대한 describe 명령 찾기 섹션을 참조하십시오.

참고: 예를 들어 AWS::EC2::VPC::Id 파라미터 유형을 사용하는 경우 Amazon Virtual Private Cloud(Amazon VPC) 콘솔에서 리소스를 확인합니다.

8.    ABC가 하위 스택에 대한 파라미터인 경우 옵션 A 또는 옵션 B를 선택하여 abc 값을 전달해야 합니다.

(옵션 A) 상위 스택의 다른 리소스를 참조하는 경우 참조되는 상위 스택의 리소스가 하위 스택에 사용된 AWS 관련 파라미터 유형과 일치하는지 확인합니다.

참고: 예를 들어 파라미터 유형 AWS::EC2::Subnet::Id(서브넷)를 사용하고 AWS::EC2::VPC(VPC) 유형의 리소스를 참조하면 스택이 실패합니다.

(옵션 B) 파라미터 값 abc가 상위 스택에서 직접 전달되는 경우 파라미터 ABC에 대한 리소스 abc가 리전 또는 계정에 있는지 확인합니다. AWS Management Console 또는 리소스 설명을 위한 AWS CLI 명령을 사용합니다. 리소스에 적합한 명령을 찾으려면 리소스에 대한 describe 명령 찾기 섹션을 참조하십시오.

예를 들어 하위 스택에 List<AWS::EC2::SecurityGroup::Id> 파라미터가 있는 경우

"SecurityGroups": {
    "Description": "List of security group IDs for the instances",
    "Type": "List<AWS::EC2::SecurityGroup::Id>"
}

이 파라미터에 대한 값은 상위 스택에서 전달됩니다. 예:

"ChildStack" : {
 "Type" : "AWS::CloudFormation::Stack",
 "Properties" : {
    "Parameters":{
      "KeyPair" : { "Ref": "KeyPair" },
      "ImageID" : { "Ref": "ImageID" },
      "InstanceType" : { "Ref": "InstanceType" },
      "SecurityGroups" : { "Ref": "SecurityGroup" }
    }

참고: 앞의 예에서는 SecurityGroup 파라미터로 전달된 보안 그룹 ID의 값이 리전 또는 계정에 존재하는지 확인해야 합니다.

9.    리전 또는 계정에 존재하고 AWS 관련 파라미터 유형과 일치하는 파라미터의 유효한 값을 사용하여새 스택을 생성합니다.

스택 업데이트

스택 업데이트에 실패하면 AWS CloudFormation이 변경 사항을 롤백합니다. 즉, AWS CloudFormation 콘솔을 통해 업데이트된 파라미터 값을 볼 수 없습니다.

업데이트 중에 파라미터 ABC의 값을 변경하지 않은 경우 name 또는 PhysicalIDabc인 리소스가 대역 외 계정에서 삭제되었을 수 있습니다.

1.    리소스가 존재하는지 확인하려면 AWS Management Console 또는 리소스 설명을 위한 AWS CLI 명령을 사용합니다. 리소스에 적합한 명령을 찾으려면 리소스에 대한 describe 명령 찾기 섹션을 참조하십시오.

2.    파라미터 ABC를 업데이트하여 스택을 업데이트하는 경우 이전 스택 생성 섹션의 6, 7 및 8단계를 따릅니다.

3.    유효한 값을 파라미터 ABC에 전달하여 스택을 업데이트합니다.

이제 스택이 성공적으로 업데이트됩니다.

리소스에 대한 describe 명령 찾기

리소스에 적합한 명령을 선택합니다.

  • AWS::EC2::Image::Id 또는 List<AWS::EC2::Image::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::EC2::Instance::Id 또는 List<AWS::EC2::Instance::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::EC2::KeyPair::KeyName의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::EC2::SecurityGroup::GroupName, AWS::EC2::SecurityGroup::Id, List<AWS::EC2::SecurityGroup::GroupName> 또는 List<AWS::EC2::SecurityGroup::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::EC2::Subnet::Id 또는 List<AWS::EC2::Subnet::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::EC2::VPC::Id 또는 List<AWS::EC2::VPC::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.
  • AWS::Route53::HostedZone::Id 또는 List<AWS::Route53::HostedZone::Id>의 경우 AWS CLI 버전 1 또는 버전 2의 명령을 사용합니다.

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?