Un module est un fichier texte au format JSON ou YAML encodé en UTF-8, semblable à un modèle. Un module dispose de sa propre convention de nommage, de ses propres limites et de sa propre structure.
Convention de nommage
Les modules utilisent une convention de nommage en quatre parties : MODULE::Organization::Service::Usecase.
MODULE: valeur fixe.-
Organization: nom de votre organisation.Le nom doit comporter au moins deux caractères et peut contenir des lettres et des chiffres.
Le nom ne peut pas contenir les chaînes de caractères minuscules suivantes :
alicloud,alibabaetaliyun.Le nom ne peut pas commencer par la chaîne de caractères minuscule suivante :
acs.Le nom ne peut pas être défini sur l'une des chaînes de caractères minuscules suivantes :
ros,dev,testoudebug.
-
Service: nom du service.Le nom doit comporter au moins deux caractères et peut contenir des lettres et des chiffres.
-
Usecase: nom de la ressource.Le nom doit comporter au moins deux caractères et peut contenir des lettres et des chiffres.
Si vous définissez Organization sur SHARE lors de la création d'un module, vous devez définir Service sur l'ID du compte Alibaba Cloud actuel. Par exemple, vous pouvez spécifier MODULE::SHARE::123456789::Usecase dans ce scénario.
Un module personnalisé dont Organization est défini sur SHARE est appelé module partagé. Les autres utilisateurs peuvent consulter et utiliser votre module partagé, mais ils ne peuvent ni le modifier ni le supprimer.
Limites
Vous ne pouvez pas spécifier
TransformetWorkspacedans un module.Vous pouvez uniquement spécifier des sections
Rulesvides dans un module.-
Les modules personnalisés peuvent être imbriqués jusqu'à trois niveaux de profondeur. Si vous utilisez un module public conjointement avec des modules personnalisés, ces derniers restent limités à trois niveaux de profondeur.
La figure suivante illustre des modules publics imbriqués sur quatre niveaux. ModuleA se trouve au niveau 1, ModuleB au niveau 2, ModuleC au niveau 3 et ModuleD au niveau 4.

Structure du module
ROSTemplateFormatVersion: '2015-09-01'
Description: The description of the module. The Description section provides information such as the scenarios, architecture, and method to use the module.
Metadata:
# The metadata of the module. The Metadata section provides information such as layouts for visualizations.
Parameters:
# The parameters of the module. When you use a module, you can specify parameter values from the template or module that contains the module.
Mappings:
# The mappings of the module, which are in a nested structure.
Conditions:
# The conditions of the module, which specify whether the system can create resources.
Resources:
# The details of resources or child modules that are contained in the module. The details include properties and associations.
Outputs:
# The outputs of the module. The outputs can be used by the template or module that contains the module.
(Obligatoire) ROSTemplateFormatVersion
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique ROSTemplateFormatVersion (Required).
(Facultatif) Description
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Description (Optional).
Nous vous recommandons de spécifier la section Description, qui prend en charge plusieurs langues. Cette description aide les utilisateurs à comprendre comment utiliser un module. L'onglet Module Content de la page de détails du module affiche cette description. L'exemple suivant montre comment spécifier plusieurs langues dans la section Description :
Description:
en: |-
This is a demo.
(Facultatif) Metadata
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Metadata (Optional).
Lors des opérations sur les piles, ROS ignore la section Metadata du module lors du traitement et de la génération des modèles.
Nous vous recommandons d'ajouter la section Metadata au module. La section Metadata est entièrement copiée dans le modèle d'exemple disponible sous l'onglet Sample Template de la page de détails du module, ce qui améliore l'affichage du modèle.
(Facultatif) Parameters
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Parameters (Optional).
Les paramètres de module ne prennent pas en charge l'application de contraintes, notamment Type, AllowedValues, AllowedPattern, MaxLength, MinLength, MaxValue et MinValue.
Si un paramètre de module est laissé vide et qu'une valeur par défaut est spécifiée via Default, cette valeur par défaut est utilisée lors des opérations sur les piles lorsque ROS traite et génère un modèle.
Limite : le nom du paramètre ne peut pas contenir de periods (.) or colons (:).
Configurations recommandées :
-
Pour garantir une utilisation correcte du module, configurez les propriétés des paramètres de module aussi complètement que celles des paramètres de modèle.
L'onglet Properties de la page de détails du module affiche toutes les propriétés en correspondance directe avec les paramètres du module. Les données des colonnes Type, Required, Description et Constraint de chaque propriété sont générées à partir des propriétés de paramètre configurées dans le contenu du module.
L'onglet Sample Template de la page de détails du module affiche un modèle d'exemple. La section
Parametersdu modèle est générée à partir des propriétés de paramètre configurées dans le module, garantissant ainsi la validité des paramètres et améliorant l'affichage du modèle.
Vous pouvez configurer des propriétés prenant en charge les configurations multilingues pour les paramètres de module, telles que les propriétés
DescriptionetLabel.
(Facultatif) Mappings
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Mappings (Optional).
Limite : les noms complets des mappages ne doivent pas être dupliqués. Pour plus d'informations sur les noms complets, consultez la rubrique Reference conditions in a module.
(Facultatif) Conditions
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Conditions (Optional).
Limites :
Le nom de la condition ne peut pas contenir de signes esperluette (
&).Les noms complets des conditions ne doivent pas être dupliqués. Pour plus d'informations sur les noms complets, consultez la rubrique Reference conditions in a module.
(Facultatif) Resources
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Resources (Optional).
Vous pouvez définir la propriété DependsOn d'une ressource sur un astérisque (*). Lors des opérations sur les piles, la ressource dépend alors de toutes les autres ressources dont la propriété DependsOn n'est pas définie sur un astérisque (*).
Limites :
Le nom logique d'une ressource ne peut pas contenir de points (
.).Vous ne pouvez pas utiliser les types de ressource
ALIYUN::ROS::Stack,ALIYUN::ROS::StackGroupetALIYUN::ROS::StackInstancesdans la section Resources.Vous ne pouvez pas utiliser la fonction
Fn::GetStackOutputdans la section Resources.Vous ne pouvez pas spécifier
MetadataetCountpour les modules enfants.Vous devez spécifier
Versionpour les modules enfants.Les noms logiques complets des ressources ou des modules ne doivent pas être dupliqués. Pour plus d'informations sur les noms logiques complets, consultez la rubrique Reference resources in a module.
Dans un module partagé, vous pouvez uniquement utiliser des modules publics ou d'autres modules partagés.
(Facultatif) Outputs
Cette section suit les mêmes exigences que la section correspondante d'un modèle. Pour plus d'informations, consultez la rubrique Outputs (Optional).
Limites :
Le nom de la sortie ne peut pas contenir de points (
.).Vous ne pouvez pas utiliser la fonction
Fn::GetStackOutputdans la section Outputs.
Configuration recommandée : vous pouvez spécifier une Description pour chaque sortie.
L'onglet Return Values de la page de détails du module affiche toutes les valeurs de retour en correspondance directe avec les sorties configurées dans le contenu du module. Les données de la colonne Description des valeurs de retour sont générées à partir de la
Descriptionspécifiée pour les sorties dans le contenu du module.L'onglet Sample Template de la page de détails du module affiche un modèle d'exemple. La section
Outputsdu modèle est générée à partir des sorties configurées dans le module, ce qui améliore l'affichage du modèle.