Der Versuch, eine AWS Parameterdatei mit JQ zur Verwendung in einem Aufruf von CloudformationJQ Mit AWS erzeugen Cloudformation-Parameter-Datei
aws cloudformation create-stack --stack-name test --parameters file://params.json --template-body file://cfn.yaml
Ich dachte an unter Vorlage wie folgt zu generieren:
'[{"ParameterKey":"KEY","ParameterValue":"VALUE","UsePreviousValue":false}]'
Und dann einige Parameter in JQ hinzufügen und versuchen, einige String-Operationen für ein Argument wie jq --arg params 'key1, value1: key2, value2' und dann split on ':' auszuführen, um es zu duplizieren und jedes mit den durch Kommas getrennten Werten aufzufüllen .
Das Beste, was ich tun kann, ist die korrekte Anzahl der Top-Level-Knoten vor der Zeit zu erstellen und dann eine statische Ersetzung durchzuführen, jedes Argument einzeln liefernd. Nicht dynamisch genug, um überhaupt zu stören - besser, einfach ein Bash-Skript zu schreiben und Substitutionen in einer Schleife zu machen.
Jede Hilfe wäre willkommen.
Derzeit ist das Beste, was ich habe in der Lage zu tun, ist dies
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])'
Aber der Ausgang ist eine Kombination aller Werte (zB Schlüssel1 val1, val2 key1, etc.)
Ich denke, die Idee war, eine Variable von einem jenkins Job in eine Vorlage zu übergeben und sie dynamisch genug machen, dass Der Jenkins-Pipeline-Code kann ohne Änderungen wiederverwendet werden. Auf diese Weise können eine cfn-Vorlage und eine Liste von Parametern außerhalb des groovigen Codes angegeben werden. Wenn ich eine JSON-Datei für jq erstellen muss, dann kann ich auch die CFN-Parameter-Datei mit dem gleichen Werkzeug (nicht jq) erstellen – user1800959
Das klingt vernünftig. Auch hier ist eine andere Antwort, die für Sie von Interesse sein könnte: [Get json Feldwert mit JQ aus einem anderen Verzeichnis] (https://Stackoverflow.com/a/41387346/8379597), insbesondere 'jq --argfile p cloudformation/parameters_v13. json -f manage.jq input.json' – jq170727