Aller au contenu principal

Support des Fonctionnalités ROS

InfraGuard supporte une large gamme de fonctionnalités de modèles ROS (Resource Orchestration Service) pour l'analyse statique et la validation de votre code d'infrastructure.

Fonctions

InfraGuard supporte les fonctions ROS suivantes :

Fonctions de Chaîne

  • Fn::Join - Joint des chaînes avec un délimiteur
  • Fn::Sub - Substitue des variables dans une chaîne
  • Fn::Split - Divise une chaîne en liste
  • Fn::Replace - Remplace des chaînes dans le texte
  • Fn::Str - Convertit des valeurs en chaînes
  • Fn::Indent - Indente le texte

Fonctions d'Encodage

Fonctions de Liste

Fonctions de Carte

Fonctions Mathématiques

Fonctions Conditionnelles

Fonctions Utilitaires

  • Fn::GetJsonValue - Extrait des valeurs de JSON
  • Ref - Référence des paramètres et ressources

Conditions

InfraGuard supporte entièrement la fonctionnalité Conditions ROS, incluant :

  • Définition de Condition - Définir des conditions dans la section Conditions
  • Fonctions de Condition - Utiliser Fn::Equals, Fn::And, Fn::Or, Fn::Not, Fn::If dans les conditions
  • Références de Condition - Référencer des conditions dans les ressources et sorties
  • Résolution de Dépendances - Résout automatiquement les dépendances de conditions

Syntaxe YAML Courte

InfraGuard supporte la syntaxe YAML courte (notation de tag) pour les fonctions ROS :

  • !Ref - Forme courte de Ref
  • !GetAtt - Forme courte de Fn::GetAtt
  • Toutes les autres fonctions Fn::* peuvent être écrites comme !FunctionName

L'analyseur YAML convertit automatiquement ces formes courtes en leur représentation de carte standard lors du chargement du modèle.

Fonctionnalités Non Supportées

InfraGuard se concentre sur l'analyse statique et ne supporte actuellement pas les fonctionnalités suivantes en mode statique :

Fonctions d'Exécution

  • Fn::GetAtt - Nécessite la création réelle de ressources pour récupérer les attributs
  • Fn::GetAZs - Nécessite une requête d'exécution au fournisseur de cloud
  • Fn::GetStackOutput - Nécessite l'accès aux sorties d'autres piles

Sections de Modèle

  • Locals - Définitions de variables locales
  • Transform - Transformations et macros de modèle
  • Rules - Règles de validation de modèle
  • Mappings - Mappages de valeurs statiques (non analysés pour violations de politiques)

Références Spéciales

  • Paramètres pseudo (p. ex., ALIYUN::StackId, ALIYUN::Region, etc.) - Paramètres fournis par le système

Ces fonctionnalités seront préservées telles quelles dans la sortie d'analyse sans évaluation ou validation lors de l'utilisation du mode statique.

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