

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas AWS CloudFormation Guard
<a name="troubleshooting"></a>

Se você encontrar problemas ao trabalhar com AWS CloudFormation Guard, consulte os tópicos desta seção.

**Topics**
+ [A cláusula falha quando nenhum recurso do tipo selecionado está presente](#troubleshooting-when-conditions-filters)
+ [O Guard não avalia o CloudFormation modelo com referências abreviadas Fn::GetAtt](#troubleshooting-cfn-intrinsic-functions)
+ [Tópicos gerais de solução de problemas](#troubleshooting-general)

## A cláusula falha quando nenhum recurso do tipo selecionado está presente
<a name="troubleshooting-when-conditions-filters"></a>

Quando uma consulta usa um filtro`Resources.*[ Type == 'AWS::ApiGateway::RestApi' ]`, como, se não houver `AWS::ApiGateway::RestApi` recursos na entrada, a cláusula é avaliada como. `FAIL`

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

Para evitar esse resultado, atribua filtros às variáveis e use a verificação de `when` condição.

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

## O Guard não avalia o CloudFormation modelo com referências abreviadas Fn::GetAtt
<a name="troubleshooting-cfn-intrinsic-functions"></a>

O Guard não suporta as formas abreviadas de funções intrínsecas. Por exemplo, o uso de`!Join`, `!Sub` em um CloudFormation modelo formatado em YAML não é suportado. Em vez disso, use as formas expandidas das funções CloudFormation intrínsecas. Por exemplo, use`Fn::Join`, `Fn::Sub` em CloudFormation modelos formatados em YAML ao avaliá-los em relação às regras do Guard.

*Para obter mais informações sobre funções intrínsecas, consulte a [referência da função intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) no Guia do usuário.AWS CloudFormation *

## Tópicos gerais de solução de problemas
<a name="troubleshooting-general"></a>
+ Verifique se os `string` literais não contêm cadeias de caracteres de escape incorporadas. O Guard não oferece suporte a cadeias de escape incorporadas em `string` literais. Se sua intenção for analisar cadeias de caracteres JSON embutidas, use a `json_parse()` função disponível no Guard 3.0.0 e versões posteriores. Para obter mais informações, consulte [Usando funções integradas](writing-rules.md#built-in-functions).
+ Verifique se suas `!=` comparações comparam tipos de dados compatíveis. Por exemplo, a `string` e an não `int` são tipos de dados compatíveis para comparação. Ao realizar a `!=` comparação, se os valores forem incompatíveis, ocorrerá um erro internamente. Atualmente, o erro é suprimido e convertido `false` para satisfazer a [PartialEq](https://doc.rust-lang.org/std/cmp/trait.PartialEq.html)característica em Rust.