Un modèle définit les ressources cloud et leurs dépendances. Resource Orchestration Service (ROS) déploie les modèles sous forme de piles. Ce guide explique comment rédiger, tester et paramétrer des modèles.
Vue d'ensemble
Pour en savoir plus sur la structure des modèles ROS, consultez la rubrique Démarrage rapide pour la rédaction d'un modèle.
Ce guide commence par un modèle VPC simple, puis aborde les dépendances entre ressources et la paramétrisation :
Rédiger un modèle
Déclarez les ressources dans la section Resources. Parcourez les types et propriétés pris en charge dans l'Index des types de ressources, ou suivez le Démarrage rapide pour la rédaction d'un modèle. L'exemple suivant crée un VPC :
ROSTemplateFormatVersion: '2015-09-01'
Resources:
VPC:
Type: ALIYUN::ECS::VPC
Properties:
VpcName: myvpc
CidrBlock: 192.168.0.0/16
Outputs:
VpcId:
Value:
Ref: VPC
VRouterId:
Value:
Fn::GetAtt:
- VPC
- VRouterId
Tester le modèle
Créez une pile à partir du modèle pour vérifier que le provisionnement des ressources s'effectue comme prévu.
Connectez-vous à la console ROS.
-
Créez une pile.
Dans le volet de navigation de gauche, cliquez sur Stacks.
Dans la barre de navigation supérieure, sélectionnez la région où vous souhaitez créer la pile, par exemple China (Hangzhou).
-
Sur la page Stacks, cliquez sur Create Stack. Dans la section Specify Template, cliquez sur Select an Existing Template.
RemarqueSi vous sélectionnez Create Template ou ROS Infrastructure Composer, vous êtes redirigé vers la page correspondante.
-
Sur la page Select Template, cliquez sur Select an Existing Template dans la zone Specify Template. Définissez Template Import Method sur Enter Template Content. Dans la section Template Content, sélectionnez l'onglet ROS, collez le modèle YAML de la section Rédiger un modèle, puis cliquez sur Next.
Sur la page Configure Parameters, saisissez un Stack Name.
Dans la section Configure Stack Settings, configurez les paramètres tels que Rollback on Failure, Timeout Period, Tags, Resource Group, Stack Policy, Maximum Concurrent Resources, Deletion Protection, RAM Role, Stack Event Callback URLs et Manual Payment, puis cliquez sur Next.
Sur la page Check and Confirm, cliquez sur Preview Template Resources. Dans la boîte de dialogue Preview, examinez les noms, types et propriétés des ressources validés par ROS, puis cliquez sur OK.
Sur la page Check and Confirm, cliquez sur Create.
-
Consultez la pile.
Sur la page de gestion des piles, cliquez sur l'onglet Event pour afficher la liste des événements liés aux ressources du modèle.
-
Cliquez sur l'onglet Resources pour afficher les détails des ressources créées.
RemarqueCliquez sur un ID de ressource pour ouvrir sa console et vérifier la configuration de la ressource.
Cliquez sur l'onglet Output pour afficher les sorties définies dans la section
Outputsdu modèle.
Définir plusieurs ressources et leurs dépendances
Un vSwitch doit appartenir à un VPC. Définissez les deux ressources et leur dépendance dans un seul modèle pour provisionner des environnements complexes au sein d'une même pile.
-
Utilisez des fonctions pour obtenir la valeur d'une propriété de sortie d'une ressource.
Par exemple, si une ressource VPC est définie dans la section
Resources, vous pouvez utiliser{"Fn::GetAtt": ["VPC", "VpcId"]}pour obtenir sa propriété de sortieVpcId. -
Utilisez des fonctions pour obtenir un ID de ressource ou une valeur de paramètre.
Par exemple, si une ressource VPC est définie dans la section
Resources, vous pouvez utiliser{"Ref": "VPC"}pour référencer son ID de ressource.Remarque{"Ref": "VPC"}renvoie la même valeur que{"Fn::GetAtt": ["VPC", "VpcId"]}, mais de manière plus concise.RefetFn::GetAttdéclarent implicitement les dépendances entre ressources. Pour déclarer explicitement les dépendances, utilisez l'attribut DependsOn.
-
Ajoutez une ressource vSwitch.
Le modèle suivant ajoute un vSwitch nommé
myvswdans la zonecn-beijing-favec le bloc CIDR192.168.0.0/24, en référençant le VPC. La sectionOutputsinclut l'ID du vSwitch.ROSTemplateFormatVersion: '2015-09-01' Resources: VPC: Type: ALIYUN::ECS::VPC Properties: VpcName: myvpc CidrBlock: 192.168.0.0/16 VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VpcId: Ref: VPC ZoneId: cn-beijing-f VSwitchName: myvsw CidrBlock: 192.168.0.0/24 Outputs: VpcId: Value: Fn::GetAtt: - VPC - VpcId VRouterId: Value: Fn::GetAtt: - VPC - VRouterId VSwitchId: Value: Ref: VSwitch
Définir les valeurs et propriétés des paramètres
La section Parameters rend les modèles réutilisables. Définissez des paramètres pour accepter différentes valeurs lors de la création de la pile sans modifier le modèle.
-
Définir des paramètres
Coder en dur des propriétés comme
ZoneIdlimite un modèle à une seule configuration. Définissez des paramètres afin que chaque création de pile puisse fournir des valeurs différentes.-
Paramètres dans le modèle
|
**Parameter**
|
**Description**
| | --- | --- | |
`ZoneId`
|
Définit la zone de disponibilité du vSwitch.
| |
`VpcCidrBlock`
|
Définit le bloc CIDR du VPC. Valeur par défaut : `192.168.0.0/16`.
| |
`VSwitchCidrBlock`
|
Définit le bloc CIDR du vSwitch. Valeur par défaut : `192.168.0.0/24`.
| -
Exemple de code de modèle
ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String VpcCidrBlock: Type: String Default: 192.168.0.0/16 VSwitchCidrBlock: Type: String Default: 192.168.0.0/24 Resources: VPC: Type: ALIYUN::ECS::VPC Properties: VpcName: myvpc CidrBlock: Ref: VpcCidrBlock VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VpcId: Ref: VPC ZoneId: Ref: ZoneId VSwitchName: myvsw CidrBlock: Ref: VSwitchCidrBlock Outputs: VpcId: Value: Ref: VPC VRouterId: Value: Fn::GetAtt: - VPC - VRouterId VSwitchId: Value: Ref: VSwitchLors de la création d'une pile, définissez les valeurs des paramètres dans la console ROS.
ROS déduit les valeurs valides à partir des associations de propriétés de ressources. Par exemple, comme
ZoneIdest mappé à la propriétéZoneIddu vSwitch, la console n'affiche que les zones qui prennent en charge les vSwitches.
-
-
Définir dynamiquement les valeurs autorisées
La section Parameters prend en charge des propriétés qui personnalisent le comportement de la console.
-
Propriétés des paramètres
|
**Property**
|
**Description**
| | --- | --- | |
AllowedValues
|
Restreint la saisie à une liste prédéfinie, affichée sous forme de menu déroulant dans la console. Exemple : `VpcCidrBlock` autorise `10.0.0.0/8`, `172.16.0.0/12` et `192.168.0.0/16`.
| |
Label
|
Définit un nom d'affichage pour le paramètre dans la console. Exemple : `ZoneId` apparaît sous le nom `Availability Zone ID`.
| -
Exemple de code de modèle
ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String Label: Availability Zone ID VpcCidrBlock: Type: String Label: VPC CIDR Block Default: 192.168.0.0/16 AllowedValues: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 VSwitchCidrBlock: Type: String Label: vSwitch CIDR Block Default: 192.168.0.0/24Lors de la création d'une pile, sélectionnez les valeurs des paramètres dans les menus déroulants de la console ROS.
-
-
Présenter dynamiquement les paramètres en fonction des associations
Utilisez AssociationProperty et AssociationPropertyMetadata pour permettre à la console d'interroger et d'afficher dynamiquement les valeurs autorisées pour un paramètre.
Par exemple, si un modèle utilise
VpcIdetvSwitchIdcomme paramètres, la console remplit automatiquement les menus déroulants :ROSTemplateFormatVersion: '2015-09-01' Parameters: VpcId: Type: String AssociationProperty: ALIYUN::ECS::VPC::VPCId ZoneId: Type: String AssociationProperty: ALIYUN::ECS::ZoneId VSwitchId: Type: String AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: ZoneId: ${ZoneId} VpcId: ${VpcId}Lors de la création d'une pile, les paramètres sont remplis dynamiquement dans la console.
-
Grouper les paramètres similaires
Utilisez la section Metadata pour regrouper les paramètres connexes afin de faciliter leur configuration dans la console.
Par exemple, regroupez
ZoneId,VpcCidrBlocketVSwitchCidrBlocken deux groupes : Paramètres de base (ZoneId) et Paramètres de ressource (VpcCidrBlock,VSwitchCidrBlock) :ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String VpcCidrBlock: Type: String Default: 192.168.0.0/16 VSwitchCidrBlock: Type: String Default: 192.168.0.0/24 Metadata: ALIYUN::ROS::Interface: ParameterGroups: - Parameters: - ZoneId Label: default: Basic Settings - Parameters: - VpcCidrBlock - VSwitchCidrBlock Label: default: Resource SettingsLors de la création d'une pile, les paramètres apparaissent groupés dans la console.