json - azure 中带有点/句点的嵌套 JSON 路径

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

目标是使用 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) 尝试了很多事情

  • [properties.desired]
  • '[properties.desired]'
  • ['properties.desired']
  • 属性\.desired
  • 属性.desired`
  • properties.desired
  • '...“properties.desired”...'
  • '...\"properties.desired\"...'
  • '$edgeAgent'[properties.desired]
  • '$edgeAgent'['properties.desired']
  • ^[properties.desired^]
  • ^^[properties.desired^^]
  • ``[properties.desired]
  • ```[properties.desired``]`

最佳答案

您需要手动对 $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 命令更新的项目:标签、指标、优先级和 targetCondition。标签和指标不允许名称中包含“.”的值。

关于json - azure 中带有点/句点的嵌套 JSON 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57387665/

相关文章:

azure - 与 Azure AD 集成的应用程序缺少信息(SAML、OAuth)

git - 是否有命令行工具可以实时显示 git 状态?

google-chrome - 如何在 Windows 10 上的 Chrome 60 中使用 Headless Chrome?

javascript - JSON参数获取

python - 动态 html 使用 django 应用程序中 JSON 链接的数据选择下拉列表

java - 在android中使用自定义适配器的Listview

ruby-on-rails - 如何使用 Ruby on Rails 转换字符串 `to_json` 和 `to_xml`?

javascript - 将 sql 对象转换为 node.js 中的有效 Json 字符串 - Azure

git - 获取我过去 5 天在 git 中完成的所有提交

azure - Terraform 无法在 azure 上创建免费的 Web 应用程序