我正在尝试添加一个条件,因此我的volume_size:可以获得两个不同的值,具体取决于传入的内容" -var role ="
我尝试过这样的事情:
"volume_size": [{
"Fn::If" : [
".ami_id_bar",
{"foo" : "50"},
{"foo" : "20"}
]
}],
.ami_id_bar是:
"environment_vars": [
"ami_id_bar={{user `role`}}"
],
在执行打包程序时从命令行获取
这是我得到的错误:
错误解码:
' launch_block_device_mappings [0] .volume_size'期望的类型' int64',得到了不可转换的类型' [] interface {}'
这是不可能的,或者我做错了什么?
提前谢谢!
答案 0 :(得分:0)
不,你不能。包装工模板是无逻辑的。实现所需内容的标准方法是使用-var-file
,其中每个vars文件代表一个角色,例如。
packer build -var-file=role-A.json template.json
在更复杂的情况下,我们建议您预处理模板和其他文件,并将打包器包装在某些构建脚本中,如make
。