Используя jq
, можно ли заменить значение каждого параметра в образце JSON значением переменной, являющейся начальным значением?
В моем сценарии Azure DevOps не выполняет подстановку переменных в файле JSON, поэтому мне нужно сделать это вручную. Так, например, скажем, $SUBSCRIPTION_ID
установлен на abc-123
, я хотел бы использовать jq
для обновления файла JSON.
Я могу вытащить значения, используя .parameters[].value
, но Кажется, я не могу найти способ установки каждого отдельного значения.
Основная проблема здесь заключается в том, что решение должно быть многократно используемым, и разные JSON файлы будут иметь разные parameters
, поэтому я не Я не могу использовать --argjson
.
Пример
Оригинал JSON
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/parametersTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"value": "$SUBSCRIPTION_ID"
},
"topicName": {
"value": "$TOPIC_NAME"
}
}
}
Переменные
SUBSCRIPTION_ID="abc-123"
TOPIC_NAME="SomeTopic"
Желаемый JSON
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/parametersTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"value": "abc-123"
},
"topicName": {
"value": "SomeTopic"
}
}
}