天蓝色点号/句点的嵌套JSON路径

时间:2019-08-07 05:44:55

标签: json azure command-line azure-iot-hub azure-iot-edge

目标是使用az iot edge deployment update命令来更改Azure物联网中心/边缘部署中的模块。尝试使用部署配置json中的property-path替换映像路径。问题是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

给予

  

在“ content.modulesContent。$ edgeAgent.properties.desired.modules.demoimage1-latest”中找不到“属性”。可用选项:['properties.desired']

状态

已经尝试使用bash(ubuntu LTS vm)和powershell(win10)进行许多尝试

  • [properties.desired]
  • '[properties.desired]'
  • ['properties.desired']
  • properties\.desired
  • properties。需要`
  • properties.desired
  • '..."properties.desired"...'
  • '...\"properties.desired\"...'
  • '$edgeAgent'[properties.desired]
  • '$edgeAgent'['properties.desired']
  • ^[properties.desired^]
  • ^^[properties.desired^^]
  • ``[properties.desired ]
  • ```[properties.desired``]`

1 个答案:

答案 0 :(得分:2)

您需要手动初始化$ edgeHub JSON。

az iot边缘部署更新--deployment-id testedge-集线器名称微波--set content.modulesContent。'$ edgeHub'=“ =” {'properties.desired':{'routes':{'route': 'FROM / messages / * INTO $ upstream'},'schemaVersion':'1.0','storeAndForwardConfiguration':{'timeToLiveSecs':7201}}}“”

但是,由于内容是不可变的,它什么也不做。可以通过“ az iot Edge部署更新”命令更新的项目:标签,指标,优先级和targetCondition。标签和指标不允许名称中带有“。”的值。