AOS编排语言系列教程(十四):条件conditions,控制元素是否创建部署
【摘要】 condition部分是可选项,用于定义条件。例如在node_templates中创建了很多资源,实际部署时可能有一些资源不需要部署,通过条件可以控制定义在node_templates中的元素是否需要创建部署。
我们已经介绍了模板中的inputs、outputs、node_templates和mappings,接下来看下condition部分。
condition部分是可选项,用于定义条件。例如在node_templates中创建了很多资源,实际部署时可能有一些资源不需要部署,通过条件可以控制定义在node_templates中的元素是否需要创建部署。
在inputs、conditions、node_templates等多个字段中定义了引用关系来控制虚拟机myecs是否部署:
tosca_definitions_version: huaweicloud_tosca_version_1_0
conditions:
condition_vm_deploy:
cond_eq:
- get_input: vm_deploy
- true
inputs:
image:
description: 云服务器使用的镜像ID
type: HuaweiCloud.ECS.Image.Id
instance:
default: 1
description: 创建云服务器数量
subnet:
description: 云服务器子网ID
vm_deploy:
default: true
type: boolean
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:
vm:
condition: condition_vm_deploy
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
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
south-flavor:
description: 在华南区创建虚拟机的规格名称
value:
get_in_map:
- regionMap
- cn-south-1
- flavor
上述例子中使用了cond_eq条件函数来判断输入参数与预期是否一致,条件函数通常用于定义元素是否需要部署,包括cond_eq、cond_not、cond_and、cond_or和cond_if。除了cond_if函数外,其他条件函数只允许在conditions段内定义使用。
当输入参数vm_deploy为true时将部署虚拟机vm和myecs:
当输入参数vm_deploy为false时将不部署vm,只部署myecs:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)