mappings
mappings为可选项,用于定义映射表。在基于模板创建资源栈时,可以根据输入的变量信息,通过get_in_map方法提取特定变量对应的内容。一个模板最多支持定义10个映射。
mappings格式:
<映射名称>: <映射对象名称>: <映射对象属性名称>: <映射对象属性值> <映射对象属性名称>: <映射对象属性值> ... ... ...
属性 |
是否必选 |
参数类型 |
取值约束 |
描述 |
---|---|---|---|---|
映射名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
最多可定义10个,且命名必须唯一。 |
映射对象名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
映射对象的名称,命名必须唯一。 |
映射对象属性名称 |
是 |
字符串 |
由大写字母、小写字母、数字和中划线“-”组成,长度为[1-64]。 |
映射对象的属性名,在同一映射对象内命名必须唯一。 |
映射对象属性值 |
是 |
字符串或数字 |
字符串或数字 |
映射对象对应的属性值。 |
mappings配置样例:
mappings: regionMap: cn-east-3: #华东区定义 flavor: c2.medium #使用华东区虚拟机规格 image_id: f2003c7b-99c4-4616-be19-334beaca81b1 #使用华东区镜像id cn-north-1: #华北区定义 flavor: c1.medium #使用华北区虚拟机规格 image_id: 42f34d95-a538-4d17-be48-e690b48c1643 #使用华北区镜像id cn-south-1: #华南区定义 flavor: c1.medium #使用华南区虚拟机规格 image_id: a3934478-bfeb-4a02-b257-9089779f0380 #使用华南区镜像id
映射使用方式:
定义的映射可在node_templates或outputs中使用。
- 在node_templates中通过get_in_map函数提取映射内容
例如,在node_templates中定义了myecs虚拟机对象,其属性包括镜像id,虚拟机规格等参数。其中,镜像id和虚拟机规格必须已在映射表mappings中预先定义。在基于该模板创建资源栈时,将根据所部署在的region选择相应的镜像和规格进行虚拟机资源的创建。
node_templates: myecs: type: HuaweiCloud.ECS.CloudServer properties: availabilityZone: cn-south-1a flavor: get_in_map: - regionMap - get_input: HuaweiCloud.Region - flavor imageId: get_in_map: - regionMap - get_input: HuaweiCloud.Region - image_id ...
- 在outputs中通过get_in_map函数提取映射内容
outputs: south-flavor: description: 在华南区创建虚拟机的规格名称 value: get_in_map: - regionMap - cn-south-1 - flavor