假设我想根据两个变量来命名一个资源,因此我有类似的东西:
heat_template_version:2013-05-23 描述:创建网络 参数: 客户端代码: 类型:字符串 描述:4 个字符的客户代码。将用于实例命名 项目代码: 类型:字符串 描述:3个字符的项目代码
现在我想根据客户和项目创建名称的资源:
资源: 测试: 类型:OS::Neutron::Net 特性: 名称:{get_param:client_code}{get_param:project_code}
创建资源时出现解析错误。有什么办法可以实现这一点吗?还是需要使用预脚本来生成模板?
答案1
我找到了一个使用“list_join”的解决方案:
heat_template_version: 2013-05-23
int_network:
type: OS::Neutron::Net
properties:
name:
list_join: ['-', [ {get_param: tenant}, 'net']]
答案2
我找到了一个解决方案str_replace
。我的代码如下所示:
heat_template_version: 2013-05-23
description: Create network with
parameters:
client_code:
type: string
description: 4 character customer code. Will be used for instance naming
project_code:
type: string
description: 3 character project code
resources:
test:
type: OS::Neutron::Net
properties:
name:
str_replace:
template: cust%-proj%
params:
"cust%": { get_param: client_code }
"proj%": { get_param: project_code }