本文向您介绍如何对定义的模板变量进行赋值。
模板变量数据类型汇总
数据类型 | 类型说明 |
String | ECS实例名称 |
Integer | ECS系统盘容量 |
Boolean | 某资源是否“忽略部署” |
Map | 资源标签信息 |
List | ECS的IP地址白名单 |
List<Map> | ECS数据盘列表 |
ChargeType | 仅限于赋值给资源付费方式变量 |
定义局部模板变量
本文以ECS模板为例,来介绍如何对上述不同类型的变量进行赋值。
定义全局模板变量
下面我们对上面的例子做一下增强,增加全局模板变量。其中模板变量的配置如下:
通过Java代码赋值模板变量
如果您熟悉Java编程语言,可以通过Java代码对模板变量赋值,示例代码如下所示:
variables = Maps.newHashMap();
//赋值ECS实例名称变量 ${name}
variables.put("${name}", "ecs123");
//赋值ECS数量变量 ${count}
variables.put("${count}", "1");
//赋值ECS系统盘容量变量 ${storage}
variables.put("${storage}", "40");
//赋值ECS数据盘变量 ${data_disk}
List<Map<String, String>> disks = Lists.newArrayList();
Map<String, String> disk1 = Maps.newHashMap();
disk1.put("name", "disk1");
disk1.put("size", "50");
disk1.put("category", "cloud_essd");
disk1.put("performance_level", "PL1");
disk1.put("encrypted", "false");
disks.add(disk1);
Map<String, String> disk2 = Maps.newHashMap();
disk2.put("name", "disk2");
disk2.put("size", "60");
disk2.put("category", "cloud_essd");
disk2.put("performance_level", "PL1");
disk2.put("encrypted", "false");
disks.add(disk2);
variables.put("${data_disk}", JSON.toJSONString(disks));
//赋值ECS资源标签变量 ${tags}
Map<String, String> tags = Maps.newHashMap();
tags.put("role", "dev");
tags.put("project", "abc");
variables.put("${tags}", JSON.toJSONString(tags));
// 上面对variables赋值后,调用如下API创建应用。
createApplicationRequest = new CreateApplicationRequest()
.setTemplateId(templateId) // 使用变量的模版ID
.setName(appName) // 生成的应用ID
.setAreaId(region) // 模版的region
.setVariables(variables) // 传入变量
.setClientToken(UUID.randomUUID().toString());