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.
Themen
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 instring
Literalen. Wenn Sie beabsichtigen, Inline-JSON-Strings zu analysieren, verwenden Sie die in Guard 3.0.0 und höher verfügbarejson_parse()
Funktion. Weitere Informationen finden Sie unter Verwenden von integrierten Funktionen. -
Stellen Sie sicher, dass Ihre
!=
Vergleiche kompatible Datentypen vergleichen. Zum Beispielint
sind astring
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 erfalse
dem PartialEqMerkmal in Rust entspricht.