你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在嵌套网关上部署 Microsoft 联网缓存模块,包括在 IIoT 方案中(预览版)

Microsoft 联网缓存模块支持嵌套或分层网关,其中一个或多个 IoT Edge 网关设备位于有权访问 Internet 的单一网关之后。 本文介绍一个部署方案示例,其中包含两个嵌套的 Azure IoT Edge 网关设备(一个父网关和一个子网关),具有未经身份验证的出站代理。

注意

此信息与可用于早期测试和生产环境的预览功能相关。 此功能完全受支持,但仍在积极开发中,并且可能会在正式发布之前发生重大更改。

下图介绍了这样一种方案:其中一个 Azure IoT Edge 网关具有对 CDN 资源的直接访问权限,并充当另一个 Azure IoT Edge 网关的父级。 子 IoT Edge 网关充当 IoT 叶设备(如 Raspberry Pi)的父级。 IoT Edge 子网关和 IoT 设备都与 Internet 隔离。 此示例演示了两级 Azure IoT Edge 网关的配置,但对于 Microsoft 联网缓存将支持的上游主机深度没有限制。

显示将 Microsoft 联网缓存模块部署到两个嵌套的 IoT Edge 网关的图。

有关配置 Azure IoT Edge 网关的分层部署的更多详细信息,请参阅连接下游 IoT Edge 设备文档。 另外请注意,在部署 Azure IoT Edge、Microsoft 联网缓存和自定义模块时,所有模块都必须位于同一个容器注册表中。

注意

在部署 Azure IoT Edge、Microsoft 联网缓存和自定义模块时,所有模块都必须位于同一个容器注册表中。

父级网关配置

使用以下步骤在父网关设备上配置 Microsoft 联网缓存模块。

  1. 在 Azure IoT 中心将 Microsoft 联网缓存模块添加到 Azure IoT Edge 网关设备部署中(有关如何请求访问预览模块的详细信息,请参阅对离线设备的支持)。

  2. 添加用于部署的环境变量。 下表是环境变量的示例:

    名称 “值”
    CACHE_NODE_ID 请参阅环境变量说明
    CUSTOMER_ID 请参阅环境变量说明
    CUSTOMER_KEY 请参阅环境变量说明
    STORAGE_1_SIZE_GB 10
    CACHEABLE_CUSTOM_1_HOST Packagerepo.com:80
    CACHEABLE_CUSTOM_1_CANONICAL Packagerepo.com
    IS_SUMMARY_ACCESS_UNRESTRICTED true
  3. 添加用于部署的容器创建选项。 单一网关或嵌套网关的 MCC 容器创建选项没有区别。 以下示例显示了 MCC 模块的容器创建选项:

    {
        "HostConfig": {
            "Binds": [
                "/MicrosoftConnectedCache1/:/nginx/cache1/"
            ],
            "PortBindings": {
                "8081/tcp": [
                    {
                        "HostPort": "80"
                    }
                ],
                "5000/tcp": [
                    {
                        "HostPort": "5100"
                    }
                ]
            }
        }
    }
    

子级网关配置

使用以下步骤在子网关设备上配置 Microsoft 联网缓存模块。

注意

如果已在自己的专用注册表中的配置中使用了复制的容器,则需要在模块部署中修改 config.toml 设置和运行时设置。 有关详细信息,请参阅连接下游 IoT Edge 设备

  1. 修改 IoT Edge 代理的映像路径,如以下示例中所示:

    [agent]
    name = "edgeAgent"
    type = "docker"
    env = {}
    [agent.config]
    image = "<parent_device_fqdn_or_ip>:8000/iotedge/azureiotedge-agent:1.2.0-rc2"
    auth = {}
    
  2. 在 IoT Edge 部署中修改 IoT Edge 中心和代理运行时设置,如以下示例中所示:

    • 对于 IoT Edge 中心映像,请输入 $upstream:8000/iotedge/azureiotedge-hub:1.2.0-rc2
    • 对于 IoT Edge 代理映像,请输入 $upstream:8000/iotedge/azureiotedge-agent:1.2.0-rc2
  3. 在 Azure IoT 中心将 Microsoft 联网缓存模块添加到 Azure IoT Edge 网关设备部署中。

    • 为模块选择一个名称:ConnectedCache
    • 修改映像 URI:$upstream:8000/mcc/linux/iot/mcc-ubuntu-iot-amd64:latest
  4. 添加在父级部署中使用的一组相同环境变量和容器创建选项。

    注意

    CACHE_NODE_ID 应该是唯一的。 CUSTOMER_ID 和 CUSTOMER_KEY 值将与父级相同。 有关详细信息,请参阅模块环境变量

若要验证 Microsoft 联网缓存是否正常工作,请在托管模块的 IoT Edge 设备或网络上的任何设备的终端中执行以下命令。 将 <Azure IoT Edge 网关 IP> 替换为 IoT Edge 网关的 IP 地址或主机名。 有关此报告的可见性的信息,请参阅 Microsoft 联网缓存摘要报告

wget http://<CHILD Azure IoT Edge Gateway IP>/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com

工业 IoT (IIoT)配置

制造网络通常按照 Purdue 网络模型(包含在 ISA 95ISA 99 标准中)在层次结构层中进行组织。 在这些网络中,只有顶层与云具有连接性,层次结构中的较低层只能与相邻的南北层进行通信。

此 GitHub 示例(适用于工业 IoT 的 Azure IoT Edge)部署以下组件:

  • Azure 中的模拟 Purdue 网络
  • 工业资产
  • Azure IoT Edge 网关的层次结构

这些组件将用于获取工业数据并安全地将其上传到云,而不会影响网络的安全性。 可以部署 Microsoft 联网缓存,以支持在符合 ISA 95 标准的网络中的所有级别下载内容。

在符合 ISA 95 标准的网络中配置 Microsoft 联网缓存部署的关键是,在 L3 IoT Edge 网关上同时配置 OT 代理和上游主机。

  1. 按照两级嵌套 IoT Edge 网关示例中所述,在 L5 和 L4 级别配置 Microsoft 联网缓存部署

  2. L3 IoT Edge 网关上的部署必须指定:

    • UPSTREAM_HOST - L4 IoT Edge 网关的 IP/FQDN,这是 L3 Microsoft 联网缓存将请求内容。
    • UPSTREAM_PROXY - OT 代理服务器的 IP/FQDN:PORT。
  3. OT 代理必须将 L4 MCC FQDN/IP 地址添加到允许列表。

若要验证 Microsoft 联网缓存是否正常工作,请在托管模块的 IoT Edge 设备或网络上的任何设备的终端中执行以下命令。 将 <Azure IoT Edge 网关 IP> 替换为 IoT Edge 网关的 IP 地址或主机名。 有关此报告的可见性的信息,请参阅 Microsoft 联网缓存摘要报告

wget http://<L3 IoT Edge Gateway IP>/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com