Zum Hauptinhalt springen

ROS-Funktionsunterstützung

InfraGuard unterstützt eine breite Palette von ROS (Resource Orchestration Service)-Vorlagenfunktionen für die statische Analyse und Validierung Ihres Infrastrukturcodes.

Funktionen

InfraGuard unterstützt die folgenden ROS-Funktionen:

String-Funktionen

Kodierungsfunktionen

Listenfunktionen

Map-Funktionen

Mathematische Funktionen

Bedingte Funktionen

Hilfsfunktionen

Bedingungen

InfraGuard unterstützt vollständig die Funktion ROS Conditions, einschließlich:

  • Bedingungsdefinition - Definieren Sie Bedingungen im Abschnitt Conditions
  • Bedingungsfunktionen - Verwenden Sie Fn::Equals, Fn::And, Fn::Or, Fn::Not, Fn::If in Bedingungen
  • Bedingungsreferenzen - Verweisen Sie auf Bedingungen in Ressourcen und Ausgaben
  • Abhängigkeitsauflösung - Löst automatisch Bedingungsabhängigkeiten auf

YAML-Kurzsyntax

InfraGuard unterstützt die YAML-Kurzsyntax (Tag-Notation) für ROS-Funktionen:

  • !Ref - Kurzform von Ref
  • !GetAtt - Kurzform von Fn::GetAtt
  • Alle anderen Fn::*-Funktionen können als !FunctionName geschrieben werden

Der YAML-Parser konvertiert diese Kurzformen automatisch in ihre Standard-Map-Darstellung beim Laden der Vorlage.

Nicht Unterstützte Funktionen

InfraGuard konzentriert sich auf statische Analyse und unterstützt derzeit die folgenden Funktionen im statischen Modus nicht:

Laufzeitfunktionen

  • Fn::GetAtt - Erfordert tatsächliche Ressourcenerstellung, um Attribute abzurufen
  • Fn::GetAZs - Erfordert Laufzeitabfrage an den Cloud-Anbieter
  • Fn::GetStackOutput - Erfordert Zugriff auf andere Stack-Ausgaben

Vorlagenabschnitte

  • Locals - Lokale Variablendefinitionen
  • Transform - Vorlagentransformationen und Makros
  • Rules - Vorlagenvalidierungsregeln
  • Mappings - Statische Wertzuordnungen (nicht auf Richtlinienverstöße analysiert)

Spezielle Referenzen

  • Pseudo-Parameter (z. B. ALIYUN::StackId, ALIYUN::Region, etc.) - Vom System bereitgestellte Parameter

Diese Funktionen werden unverändert in der Analyseausgabe erhalten, ohne Auswertung oder Validierung bei Verwendung des statischen Modus.

Astuce : Pour les modèles utilisant des fonctionnalités non supportées par l'analyse statique (telles que Fn::GetAtt, Fn::GetAZs, etc.), nous recommandons d'utiliser --mode preview pour tirer parti de l'API ROS PreviewStack pour une analyse plus précise. Le mode preview évalue les modèles avec le contexte réel du fournisseur de cloud, permettant le support des fonctions d'exécution et d'autres fonctionnalités dynamiques.

Ressources Connexes