문제 해결 AWS CloudFormation Guard - AWS CloudFormation Guard

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

문제 해결 AWS CloudFormation Guard

작업 중에 문제가 발생하면이 섹션의 주제를 AWS CloudFormation Guard참조하세요.

선택한 유형의 리소스가 없는 경우 절이 실패합니다.

쿼리가와 같은 필터를 사용하는 경우 입력에 AWS::ApiGateway::RestApi 리소스가 없는 Resources.*[ Type == 'AWS::ApiGateway::RestApi' ]경우 절은 로 평가됩니다FAIL.

%api_gws.Properties.EndpointConfiguration.Types[*] == "PRIVATE"

이러한 결과를 방지하려면 변수에 필터를 할당하고 when 조건 확인을 사용합니다.

let api_gws = Resources.*[ Type == 'AWS::ApiGateway::RestApi' ] when %api_gws !empty { ...}

Guard는 짧은 형식 Fn::GetAtt 참조로 CloudFormation 템플릿을 평가하지 않습니다.

Guard는 짧은 형태의 내장 함수를 지원하지 않습니다. 예를 들어 !Join를 사용하면 YAML 형식 AWS CloudFormation 템플릿!Sub에서가 지원되지 않습니다. 대신 확장된 형태의 CloudFormation 내장 함수를 사용합니다. 예를 들어 Fn::JoinGuard 규칙에 대해 평가할 때 YAML 형식의 CloudFormation 템플릿Fn::Sub에서를 사용합니다.

내장 함수에 대한 자세한 내용은 AWS CloudFormation 사용 설명서내장 함수 참조를 참조하세요.

일반 문제 해결 주제

  • string 리터럴에 이스케이프된 임베디드 문자열이 포함되어 있지 않은지 확인합니다. 현재 Guard는 string 리터럴의 임베디드 이스케이프 문자열을 지원하지 않습니다.

  • != 비교가 호환되는 데이터 유형을 비교하는지 확인합니다. 예를 들어 stringint는 비교를 위해 호환되지 않는 데이터 형식입니다. != 비교를 수행할 때 값이 호환되지 않으면 내부적으로 오류가 발생합니다. 현재 오류는 Rust의 PartialEq 특성을 충족하기 false 위해 억제되고 로 변환됩니다.