Если вы хотите обновить стек и указать только список параметров, которые изменились, вы можете взглянуть на этот сценарий оболочки, который я написал.
Использование:
▶ bash update_stack.sh -h
Usage: update_stack.sh [-h] STACK_NAME KEY1=VAL1 [KEY2=VAL2 ...]
Updates CloudFormation stacks based on parameters passed here as key=value pairs. All
other parameters are based on existing values.
Чтобы решить вашу проблему, вы можете позаимствовать функцию edit()
:
PARAMS='sample-stack.json'
edit() {
local key value pair
for pair in "$@" ; do
IFS='=' read -r key value <<< "$pair"
jq --arg key "$key" \
--arg value "$value" \
'(.[] | select(.ParameterKey==$key)
| .ParameterValue) |= $value' \
"$PARAMS" > x ; mv x "$PARAMS"
done
}
cp $PARAMS $PARAMS.bak
edit param1=newval1 param2=newval2
А затем создайте свой стек как обычно.