目标是使用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^^]
]
答案 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。标签和指标不允许名称中带有“。”的值。