

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

# 문제 해결 AWS CloudFormation Guard
<a name="troubleshooting"></a>

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

**Topics**
+ [선택한 유형의 리소스가 없는 경우 절이 실패합니다.](#troubleshooting-when-conditions-filters)
+ [Guard는 짧은 형식 Fn::GetAtt 참조로 CloudFormation 템플릿을 평가하지 않습니다.](#troubleshooting-cfn-intrinsic-functions)
+ [일반 문제 해결 주제](#troubleshooting-general)

## 선택한 유형의 리소스가 없는 경우 절이 실패합니다.
<a name="troubleshooting-when-conditions-filters"></a>

쿼리가와 같은 필터를 사용하는 경우 입력에 `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 템플릿을 평가하지 않습니다.
<a name="troubleshooting-cfn-intrinsic-functions"></a>

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

내장 함수에 대한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [내장 함수 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html)를 참조하세요.

## 일반 문제 해결 주제
<a name="troubleshooting-general"></a>
+ `string` 리터럴에 이스케이프 처리된 임베디드 문자열이 포함되어 있지 않은지 확인합니다. Guard는 `string` 리터럴의 임베디드 이스케이프 문자열을 지원하지 않습니다. 인라인 JSON 문자열을 구문 분석하려는 경우 Guard 3.0.0 이상에서 사용할 수 있는 `json_parse()` 함수를 사용합니다. 자세한 내용은 [내장 함수 사용](writing-rules.md#built-in-functions) 단원을 참조하십시오.
+ `!=` 비교가 호환되는 데이터 유형을 비교하는지 확인합니다. 예를 들어 `string` 및 `int`는 비교를 위해 호환되지 않는 데이터 형식입니다. `!=` 비교를 수행할 때 값이 호환되지 않으면 내부적으로 오류가 발생합니다. 현재 오류는 Rust의 [PartialEq](https://doc.rust-lang.org/std/cmp/trait.PartialEq.html) 특성을 충족하기 `false` 위해 억제되고 로 변환됩니다.