Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Développer un module

Dernière mise à jour :Aug 10, 2026

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, alibaba et aliyun.

    • 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, test ou debug.

  • 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.

Remarque

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 Transform et Workspace dans un module.

  • Vous pouvez uniquement spécifier des sections Rules vides 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.

    image.png

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 Parameters du 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 Description et Label.

(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::StackGroup et ALIYUN::ROS::StackInstances dans la section Resources.

  • Vous ne pouvez pas utiliser la fonction Fn::GetStackOutput dans la section Resources.

  • Vous ne pouvez pas spécifier Metadata et Count pour les modules enfants.

  • Vous devez spécifier Version pour 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::GetStackOutput dans 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 Description spé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 Outputs du modèle est générée à partir des sorties configurées dans le module, ce qui améliore l'affichage du modèle.