IotEdge 模块孪生更新被恢复

IotEdge module twin update gets reverted

更新模块孪生会导致使用旧值进行新的 'unknown' 更新。

重现步骤:

  1. 创建基于标签的自动部署。 deployment.template.json 包含

    "mymodule": { "properties.desired": { "telemetryTakeCount": 100 } }

  2. 通过 cli 更新模块孪生:

    az iot hub module-twin update -n myiothub -d mydevice -m mymodule--set properties.desired.telemetryTakeCount=126

  3. 模块接收到模块孪生更新

    [May 15 10:51:31]dbug: MyProject.AzureIotHubMethodHandlers[0] Desired property change: { "telemetryTakeCount": 126, "$version": 139 }

  4. 大约 25 秒后,收到新的模块更新,其中包含旧值。 [May 15 10:51:59]dbug: MyProject.AzureIotHubMethodHandlers[0] Desired property change: { "telemetryTakeCount": 100, "$version": 140 }

为什么会这样?据我所知,我没有开始新的更新。当我通过 Azure 门户更新模块孪生时也会发生这种情况。

IotEdge 版本 1.0.9

上次更新后检索到的模块孪生显示 $lastUpdatedBy 设置为上次部署。对于所有属性,不仅是我更新的属性。这可能与部署受阻有关吗?

混合 automatic deployment with a manual deployment does not work. We solved this by applying a layered deployment