-1

下面是我的 taskdef.json 并且想使用 shell 脚本动态更新几个值,我正在尝试使用 JQ 但似乎没有按预期工作。

{
    "containerDefinitions": [{
      "logConfiguration": [{
        "logDriver": "fluentd",
        "options": {
          "tag": "fluentd demo"
        },
        "secretOptions": [{
          "name": "fluentd-address",
          "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter:parameter_name"
        },
        {
            "name": "fluentd-name",
          "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter:parameter_name"
        }
    ]
      }]
    }]
  }

我希望动态更新区域和 aws_account_id,而不是直接在 taskdef.json 中硬编码值。有没有办法更新这些值?

4

1 回答 1

0

不确定是否jq需要使用,但您可以简单地使用sed来进行替换:

region="us-east-1"
account_id="12345"

sed "s/region/${region}/g; s/aws_account_id/${account_id}/g" /path/to/taskdef.json

如果要永久更改输入文件中的值,请添加-i

sed -i "s/region/${region}/g; s/aws_account_id/${account_id}/g" /path/to/taskdef.json
于 2021-03-03T04:39:07.383 回答