嵌套 JSON 路径 dot/period 为天蓝色

Nested JSON path with dot/period in azure

目标是使用 az iot edge deployment update 命令更改 azure iot hub/edge 部署中的模块。执行此操作的尝试使用部署配置 json 中的 属性 路径来替换图像路径。问题是 json 属性 properties.desired 中有一个点,试图转义它是徒劳的。该文件是默认的 azure 部署配置文件。

命令格式

az iot edge deployment update --deployment-id <name-of-deployment> --hub-name <name-of-iot-hub> --set <json-path>=<new-value>

第一部分部署配置(json) 目标是改变 image

的值
{
    "content": {
        "modulesContent": {
            "$edgeAgent": {
                "properties.desired": {
                    "modules": {
                        "demoimage1-latest": {
                            "settings": {
                                "image": "demoworkspac2478a907.azurecr.io/demoimage1:6",

最明显的尝试

az iot edge deployment update --deployment-id demoimage1-6 --hub-name iot-hubski --set content.modulesContent.'$edgeAgent'.'properties.desired'.modules.'demoimage1-latest'.settings.image=demoworkspac2478a907.azurecr.io/demoimage1:5

给予

Couldn't find 'properties' in 'content.modulesContent.$edgeAgent.properties.desired.modules.demoimage1-latest'. Available options: ['properties.desired']

状态

使用 bash (ubuntu LTS vm) 和 powershell (win10)

已经尝试了很多东西

您需要手动控制 $edgeHub JSON。

az iot edge deployment update --deployment-id testedge --hub-name microwaves --set content.modulesContent.'$edgeHub'="{'properties.desired': {'routes' : {'route': 'FROM /messages/* INTO $upstream'},'schemaVersion': '1.0','storeAndForwardConfiguration': {'timeToLiveSecs': 7201}}}"

但是,由于内容是不可变的,因此它不会执行任何操作。可以通过 "az iot edge deployment update" 命令更新的项目:标签、指标、优先级和目标条件。标签和指标不允许名称中带有“.”的值。