使用JQ生成AWS CloudFormation参数文件

时间:2017-08-09 14:04:25

标签: amazon-web-services amazon-cloudformation jq

尝试使用JQ生成AWS参数文件,以便在对CloudFormation的调用中使用

aws cloudformation create-stack --stack-name test --parameters file://params.json --template-body file://cfn.yaml

我在考虑采用这样的模板:

'[{"ParameterKey":"KEY","ParameterValue":"VALUE","UsePreviousValue":false}]'

然后在JQ中添加一些参数并尝试对arg执行一些字符串操作,例如jq --arg params'key1,value1:key2,value2'然后拆分为':'以复制它并使用逗号分隔值。

我能做的最好的事情是提前创建正确数量的顶级节点,然后进行静态替换,分别提供每个参数。不够动态甚至不打扰 - 最好只编写一个bash脚本并在循环中进行替换。

任何帮助都将不胜感激。

目前我能做的最好的就是这个

echo '[{"ParameterKey":"KEY","ParameterValue":"VALUE","UsePreviousValue":false}]' | jq --arg vars "key1,val1:key2,val2" '.[0].ParameterKey = ($vars|split(":")|.[]|split(",")|.[0]) | .[0].ParameterValue = ($vars|split(":")|.[]|split(",")|.[1])'

但输出是所有值的组合(例如key1 val1,key1 val2等)

1 个答案:

答案 0 :(得分:0)