

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas AWS CloudFormation Guard
<a name="troubleshooting"></a>

Si encuentra problemas al trabajar con él AWS CloudFormation Guard, consulte los temas de esta sección.

**Topics**
+ [La cláusula falla cuando no hay recursos del tipo seleccionado](#troubleshooting-when-conditions-filters)
+ [Guard no evalúa la CloudFormation plantilla con referencias abreviadas Fn::GetAtt](#troubleshooting-cfn-intrinsic-functions)
+ [Temas generales de solución de problemas](#troubleshooting-general)

## La cláusula falla cuando no hay recursos del tipo seleccionado
<a name="troubleshooting-when-conditions-filters"></a>

Cuando una consulta usa un filtro, por ejemplo`Resources.*[ Type == 'AWS::ApiGateway::RestApi' ]`, si no hay `AWS::ApiGateway::RestApi` recursos en la entrada, la cláusula se evalúa como tal. `FAIL`

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

Para evitar este resultado, asigne filtros a las variables y utilice la comprobación de `when` condiciones.

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

## Guard no evalúa la CloudFormation plantilla con referencias abreviadas Fn::GetAtt
<a name="troubleshooting-cfn-intrinsic-functions"></a>

Guard no admite las formas abreviadas de funciones intrínsecas. Por ejemplo, no se `!Join` admite su uso `!Sub` en una CloudFormation plantilla con formato YAML. En su lugar, utilice las formas expandidas de las funciones intrínsecas CloudFormation . Por ejemplo`Fn::Join`, utilízalas `Fn::Sub` en CloudFormation plantillas con formato YAML para evaluarlas según las reglas de Guard.

*Para obtener más información sobre las funciones intrínsecas, consulte la [referencia sobre las funciones intrínsecas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) en la Guía del AWS CloudFormation usuario.*

## Temas generales de solución de problemas
<a name="troubleshooting-general"></a>
+ Compruebe que `string` los literales no contengan cadenas de escape incrustadas. Guard no admite cadenas de escape incrustadas en los `string` literales. Si su intención es analizar cadenas JSON en línea, utilice la `json_parse()` función disponible en Guard 3.0.0 y versiones posteriores. Para obtener más información, consulte [Uso de funciones integradas](writing-rules.md#built-in-functions).
+ Compruebe que sus `!=` comparaciones comparen tipos de datos compatibles. Por ejemplo, a `string` y an no `int` son tipos de datos compatibles para la comparación. Al realizar la `!=` comparación, si los valores son incompatibles, se produce un error interno. Actualmente, el error se suprime y se convierte `false` para cumplir con la [PartialEq](https://doc.rust-lang.org/std/cmp/trait.PartialEq.html)característica en Rust.