更新时间:2024-04-17 GMT+08:00
mappings
mappings为可选项,用于定义映射表。在基于模板创建堆栈时,可以根据输入的变量信息,通过get_in_map方法提取特定变量对应的内容。一个模板最多支持定义10个映射。
mappings格式:
<映射名称>: <映射对象名称>: <映射对象属性名称>: <映射对象属性值> <映射对象属性名称>: <映射对象属性值> ... ... ...
属性 |
是否必选 |
参数类型 |
取值约束 |
描述 |
---|---|---|---|---|
映射名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
最多可定义10个,且命名必须唯一。 |
映射对象名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
映射对象的名称,命名必须唯一。 |
映射对象属性名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
映射对象的属性名,在同一映射对象内命名必须唯一。 |
映射对象属性值 |
是 |
字符串或数字 |
字符串或数字 |
映射对象对应的属性值。 |
mappings配置样例:
mappings: imageMap: old: image: '192.168.1.86:20202/test/mysql-server:5.6.35' new: image: '192.168.1.90:20202/test/mysql-server:5.7.1'
映射使用方式:
定义的映射可在node_templates或outputs中使用。
- 在node_templates中通过get_in_map函数提取映射内容
例如,在node_templates中定义了myecs虚拟机对象,其属性包括镜像id,虚拟机规格等参数。其中,镜像id和虚拟机规格必须已在映射表mappings中预先定义。在基于该模板创建堆栈时,将根据所部署在的region选择相应的镜像和规格进行虚拟机资源的创建。
node_templates: myecs: type: Cloud.ECS.CloudServer properties: availabilityZone: ae-ad-1a flavor: get_in_map: - regionMap - get_input: Cloud.Region - flavor imageId: get_in_map: - regionMap - get_input: Cloud.Region - image_id ...
- 在outputs中通过get_in_map函数提取映射内容
outputs: south-flavor: description: 创建虚拟机的规格名称 value: get_in_map: - regionMap - ae-ad-1 - flavor
父主题: 模板简介