尝试使用 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 等)
最佳答案
您可能需要考虑使用--argfile
。以下是一些证明这一点的答案:
关于amazon-web-services - 使用 JQ 生成 AWS CloudFormation 参数文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45592982/