Problembehebung AWS CloudFormation Guard - AWS CloudFormation Guard

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehebung AWS CloudFormation Guard

Wenn Sie bei der Arbeit mit auf Probleme stoßen AWS CloudFormation Guard, lesen Sie die Themen in diesem Abschnitt.

Die Klausel schlägt fehl, wenn keine Ressourcen des ausgewählten Typs vorhanden sind

Wenn eine Abfrage einen Filter verwendetResources.*[ Type == 'AWS::ApiGateway::RestApi' ], z. B. wenn die Eingabe keine AWS::ApiGateway::RestApi Ressourcen enthält, wird die Klausel wie folgt ausgewertet. FAIL

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

Um dieses Ergebnis zu vermeiden, weisen Sie Variablen Filter zu und verwenden Sie die when Bedingungsprüfung.

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

Guard bewertet keine CloudFormation Vorlage mit Verweisen in Kurzform Fn::GetAtt

Guard unterstützt die Kurzformen intrinsischer Funktionen nicht. Beispielsweise wird die Verwendung von!Join, !Sub in einer Vorlage im YAML-Format nicht unterstützt. AWS CloudFormation Verwenden Sie stattdessen die erweiterten Formen intrinsischer Funktionen. CloudFormation Verwenden Sie beispielsweise, in CloudFormation Vorlagen Fn::Sub im YAML-FormatFn::Join, wenn Sie sie anhand von Guard-Regeln auswerten.

Weitere Informationen zu systeminternen Funktionen finden Sie in der Referenz zu systeminternen Funktionen im Benutzerhandbuch.AWS CloudFormation

Allgemeine Themen zur Fehlerbehebung

  • Stellen Sie sicher, dass string Literale keine eingebetteten Escape-Zeichenketten enthalten. Guard unterstützt keine eingebetteten Escape-Zeichenketten in string Literalen. Wenn Sie beabsichtigen, Inline-JSON-Strings zu analysieren, verwenden Sie die in Guard 3.0.0 und höher verfügbare json_parse() Funktion. Weitere Informationen finden Sie unter Verwenden von integrierten Funktionen.

  • Stellen Sie sicher, dass Ihre != Vergleiche kompatible Datentypen vergleichen. Zum Beispiel int sind a string und an keine kompatiblen Datentypen für den Vergleich. Wenn beim != Vergleich die Werte nicht kompatibel sind, tritt intern ein Fehler auf. Derzeit wird der Fehler unterdrückt und so umgewandelt, dass er false dem PartialEqMerkmal in Rust entspricht.