首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure IoT集线器-未能创建分层部署

Azure IoT集线器-未能创建分层部署
EN

Stack Overflow用户
提问于 2021-01-20 16:44:55
回答 1查看 200关注 0票数 0

我正在尝试为Azure IoT集线器创建一个分层部署。

基地全员部署顺利。在这里,配置:

代码语言:javascript
复制
{
  "content": {
    "modulesContent": {
      "$edgeAgent": {
        "properties.desired": {
          "schemaVersion": "1.0",
          "runtime": {
            "type": "docker",
            "settings": {
              "minDockerVersion": "v1.25",
              "loggingOptions": "",
              "registryCredentials": {
                "docker": {
                  "username": "$CONTAINER_REGISTRY_USERNAME_docker",
                  "password": "$CONTAINER_REGISTRY_PASSWORD_docker",
                  "address": "docker.io"
                }
              }
            }
          },
          "systemModules": {
            "edgeAgent": {
              "type": "docker",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-agent:1.0",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.0",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
              }
            }
          },
          "modules": {
            "Sender": {
              "version": "1.0.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "${MODULEDIR<../Sender>}",
                "createOptions": "{}"
              }
            },
            "Module1": {
              "version": "1.0.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "${MODULEDIR<../Module1>}",
                "createOptions": "{}"
              }
            },
            "Module2": {
              "version": "1.0.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "${MODULEDIR<../Module2>}",
                "createOptions": "{}"
              }
            },
            "Module11": {
              "version": "1.0.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "${MODULEDIR<../Module11>}",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.0",
          "routes": {
            "SenderToModule1": "FROM /messages/modules/Sender/outputs/* WHERE $body.Receiver = 'Module1' INTO BrokeredEndpoint(\"/modules/Module1/inputs/input\")",
            "SenderToModule2": "FROM /messages/modules/Sender/outputs/* WHERE $body.Receiver = 'Module2' INTO BrokeredEndpoint(\"/modules/Module2/inputs/input\")",
            "SenderToModule11": "FROM /messages/modules/Sender/outputs/* WHERE $body.Receiver = 'Module11' INTO BrokeredEndpoint(\"/modules/Module11/inputs/input\")",
            "Module1ToModule11": "FROM /messages/modules/Module1/outputs/* INTO BrokeredEndpoint(\"/modules/Module11/inputs/input\")",
            "SenderToHub": "FROM /messages/modules/Module1/outputs/* WHERE $body.Receiver = 'Hub' INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      }
    }
  }
}

接下来,我尝试创建一个分层部署启动命令

代码语言:javascript
复制
az iot edge deployment create --layered --deployment-id deploy001 --hub-name <hubname> --content ./layeredtarget.json --target-condition "tags.deviceId='TargetDevice'" --priority 2

在这里,layeredtarget.json文件:

代码语言:javascript
复制
{
    "content": {
        "modulesContent": {
            "$edgeHub": {
                "properties.desired.routes.SenderToModule1": "FROM /messages/modules/Sender/outputs/* WHERE $body.Receiver = 'UPDATE_LAYERED' INTO BrokeredEndpoint(\"/modules/Module1/inputs/input\")"
            }
        }
    }
}

通过启动powershell命令,我收到了以下错误:

{“消息”:“错误代码:InvalidConfigurationContent;为配置提供的内容无效。>请检查并重试”,“ExceptionMessage”:“跟踪ID:f716a3c452914ea4a1ad1ee958a7b2ff-G:5->TimeStamp:01/20/2021 16:14:15”}

我不明白我做错了什么。我跟踪了这个文档,有人知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-20 17:10:43

如果您还包括$edgeAgent,您的分层部署将运行得很好。我所做的就是重新创建门户中的部署,检查JSON并注意到空的edgeAgent。我想没有多少人只使用一条路径来创建分层部署。不过主意不错。我使用CLI在我的集线器上测试了下面的JSON,它起了作用:

代码语言:javascript
复制
{
    "content": {
        "modulesContent": {
            "$edgeAgent": {},
            "$edgeHub": {
                "properties.desired.routes.SenderToModule1": "FROM /messages/modules/Sender/outputs/* WHERE $body.Receiver = 'UPDATE_LAYERED' INTO BrokeredEndpoint(\"/modules/Module1/inputs/input\")"
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65813825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档