AOS编排语言系列教程(十三):映射mappings,提取特定变量对应内容

网友投稿 587 2022-05-29

mappings为可选项,用于定义映射表。在基于模板创建堆栈时,可以根据输入的变量信息,通过get_in_map方法提取特定变量对应的内容。一个模板最多支持定义10个映射。

例如创建ECS的虚拟机时,它的规格和镜像在华北、华南、华东是不一样的,需要设置三个模板比较麻烦,可以用mappings来定义映射表来解决这个问题。

在regionMap映射中,定义了3个映射对象,分别是cn-east-1、cn-north-1和cn-south-1,每个映射对象都有规格和镜像两个属性:

cn-east-1(华东区):规格设置为c2.medium,表示2核|1G;镜像ID设置为f2003c7b-99c4-4616-be19-334beaca81b1,是华东区ECS系统盘镜像CentOS 6.3 64bit的镜像ID。

cn-north-1(华北区):规格设置为c1.medium,表示1核|1G;镜像ID设置为42f34d95-a538-4d17-be48-e690b48c1643,是华北区ECS系统盘镜像CentOS 6.3 64bit的镜像ID。

cn-south-1(华南区):规格设置为c1.medium,表示1核|1G;镜像ID设置为a3934478-bfeb-4a02-b257-9089779f0380,是华南区ECS系统盘镜像CentOS 6.3 64bit的镜像ID。

tosca_definitions_version: huaweicloud_tosca_version_1_0

inputs:

image:

description: 云服务器使用的镜像ID

type: HuaweiCloud.ECS.Image.Id

instance:

default: 1

description: 创建云服务器数量

subnet:

description: 云服务器子网ID

vpc:

description: 云服务器VPC的ID

mappings:

regionMap:

cn-east-1:

flavor: c2.medium

image_id: f2003c7b-99c4-4616-be19-334beaca81b1

cn-north-1:

flavor: c1.medium

image_id: 42f34d95-a538-4d17-be48-e690b48c1643

cn-south-1:

flavor: c1.medium

image_id: a3934478-bfeb-4a02-b257-9089779f0380

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

instances:

get_input: instance

name: my-ecs

nics:

- subnetId:

get_input: subnet

publicIP:

eip:

bandwidth:

shareType: PER

size: 1

ipType: 5_sbgp

rootVolume:

size: 40

volumeType: SATA

vpcId:

get_input: vpc

outputs:

ecs-eip:

description: 云服务器公网IP

value:

get_attribute:

- myecs

- publicIps

AOS编排语言系列教程(十三):映射mappings,提取特定变量对应内容

south-flavor:

description: 在华南区创建虚拟机的规格名称

value:

get_in_map:

- regionMap

- cn-south-1

- flavor

定义的映射可在node_template中使用,模板中在node_templates中定义了myecs虚拟机对象,其属性包括镜像id,虚拟机规格等参数。其中,镜像id和虚拟机规格已经在映射表mappings中预先定义。基于该模板创建堆栈时部署在华南区,因此将选择华南区的镜像和规格进行虚拟机资源的创建。

定义的映射也可以在outputs中通过get_in_map函数提取映射内容,堆栈创建成功后输出了虚拟机在华南区创建虚拟机的规格名称。

AOS 华为云

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:当我们谈论弱密码时,我们在谈论什么?
下一篇:GaussDB(DWS)《ROACH小课堂Ⅳ特性篇之备份恢复介质》
相关文章