Replace/Update json 使用 Azure 发布管道在开发、阶段和生产槽上部署期间的文件值

Replace/Update json file's values during deployment on Dev, Stage and Production slots using Azure Release pipelines

我是 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)而不同。

请帮助我如何 change/update 在部署时基于插槽的上述键的值?

以下 link 在我的案例中不起作用,因为我的 json 文件属于共享点数据模型。

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}#.

将此文件复制到工件并使用 Replace Tokens 任务更新键值:

并根据阶段在变量上定义键值:

阶段Stage的测试结果:

       {
           "name": "TDev456",
           "dataType": "int64",
           "sourceColumn": "CustomerNumber",
           "summarizeBy": "none",
           "isHidden": False
       }

键的值 name & isHidden 已更新为 TDev456 & False

希望这对您有所帮助。