我是 Azure 新手,我的任务是在部署时更新 json 文件的值。我在 Azure 发布管道 Dev、Stage 和 Prod 中有 3 个部署槽。
我有以下 Json 文件需要更新。
"tables": [{
"name": "CustomerContract",
"columns": [{
"name": "Year",
"dataType": "int64",
"sourceColumn": "Year",
"summarizeBy": "none"
},
{
"name": "<devname>",
"dataType": "int64",
"sourceColumn": "CustomerNumber",
"summarizeBy": "none",
"isHidden": <trueifdev>
}
],
"partitions": [{
"name": "Partition",
"dataView": "full"
}]
},
}
在上面的 json 文件中,我需要更新以下键的值。
- “隐藏”
- “姓名”
以上两个键的值根据插槽(Dev、Stage 和 Prod)而有所不同。
请帮我解决如何在部署时根据插槽更改/更新上述键的值?
以下链接在我的情况下不起作用,因为我的 json 文件属于共享点数据模型。
Azure Dev ops replace tokens per environment in release pipeline
最佳答案
Please help me out how can i change/update the values of above keys at deployment time based on slots?
如果构建时没有生成Json文件。我们仍然可以使用任务 Replace Tokens 来更新键的值。
作为测试,更改键值的定义:
"tables": [{
"name": "CustomerContract",
"columns": [{
"name": "Year",
"dataType": "int64",
"sourceColumn": "Year",
"summarizeBy": "none"
},
{
"name": "#{DevName}#",
"dataType": "int64",
"sourceColumn": "CustomerNumber",
"summarizeBy": "none",
"isHidden": #{trueifdev}#
}
],
"partitions": [{
"name": "Partition",
"dataView": "full"
}]
},
}
.json
文件中变量的格式为 #{DevName}#
& #{trueifdev}#
。
将此文件复制到工件并使用替换 token 任务来更新 key 的值:
并根据阶段定义变量上的键值:
作为阶段阶段
的测试结果:
{
"name": "TDev456",
"dataType": "int64",
"sourceColumn": "CustomerNumber",
"summarizeBy": "none",
"isHidden": False
}
该键的值 name
和 isHidden
已更新为 TDev456
和 False
。
希望这有帮助。
关于json - 使用 Azure 发布管道在开发、阶段和生产槽上部署期间替换/更新 json 文件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57552329/