时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft网络
小提示:您能找到这篇{将Azure IoT Edge 设备配置为通过代理服务器进行通}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的将Azure IoT Edge 设备配置为通过代理服务器进行通内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">IoT Edge设备将发送HTTPS请求以与IoT中心进行通信。如果设备已连接到使用代理服务器的网络,则需要将IoT Edge运行时配置为通过该服务器进行通信。如果代理服务器发出不通过IoT Edge中心路由的HTTP或HTTPS请求,则可能还会影响各个IoT Edge模块。 < ">本文将引导你完成以下四个步骤,来配置并管理代理服务器后面的IoT Edge设备: < ">1.在设备上安装IoT Edge运行时 < ">IoT Edge安装脚本从Internet提取包和文件,因此,设备需要通过代理服务器通信,以发出这些请求。对于Windows设备,安装脚本还会提供脱机安装选项。 < ">此步骤是首次设置IoT Edge设备时对其进行配置的一次性过程。更新IoT Edge运行时时,也需要使用相同的连接。 < ">2.在设备上配置Docker守护程序和IoT Edge守护程序 < ">IoT Edge使用设备上的两个守护程序,这些守护程序需要通过代理服务器发出Web请求。IoT Edge守护程序负责与IoT中心通信。Moby守护程序负责容器管理,因此将与容器注册表通信。 < ">此步骤是首次设置IoT Edge设备时对其进行配置的一次性过程。 < ">3.在设备上的config.yaml文件中配置IoT Edge代理属性 < ">IoT Edge守护程序最初会启动edgeAgent模块。然后,edgeAgent模块从IoT中心检索部署清单,并启动其他所有模块。要使IoT Edge代理能够与IoT中心建立初始连接,请在设备本身上手动配置edgeAgent模块环境变量。建立初始连接后,可以远程配置edgeAgent模块。 < ">此步骤是首次设置IoT Edge设备时对其进行配置的一次性过程。 < ">4.针对将来的所有模块部署设置环境变量,使任何模块都可以通过代理进行通信 < ">设置IoT Edge设备并通过代理服务器将其连接到IoT中心后,需要在将来的所有模块部署中保持该连接。 < ">此步骤是远程执行的持续过程,目的是在每次更换新模块或更新部署后,设备仍可通过代理服务器通信。 < ">知道你的代理URL < ">在开始执行本文中的任何步骤之前,需要知道你的代理URL。 < ">代理URL采用以下格式:protocol://proxy_host:proxy_port。 < ">protocol是HTTP或HTTPS。Docker守护程序可以根据容器注册表设置使用任一协议,但IoT Edge守护程序和运行时容器应始终使用HTTP连接到代理。 < ">proxy_host是代理服务器的地址。如果代理服务器要求进行身份验证,则可采用user:password proxy_host格式将凭据作为proxy_host的一部分提供。 < ">proxy_port是代理用来响应网络流量的网络端口。 < ">通过代理安装运行时 < ">无论IoT Edge设备是在Windows还是Linux上运行,都需要通过代理服务器访问安装包。请据所用的操作系统,遵循相应的步骤通过代理服务器安装IoT Edge运行时。 < ">Linux设备 < ">若要在Linux设备上安装IoT Edge运行时,请将包管理器配置为通过代理服务器访问安装包。例如,设置apt-get以使用http-proxy。配置包管理器后,请按照安装Azure IoT Edge运行时中的说明照常进行操作。 < ">Windows设备 < ">若要在Windows设备上安装IoT Edge运行时,需要两次通过代理服务器执行操作。第一个连接用于下载安装程序脚本文件,第二个连接用于在安装过程中下载必需的组件。可以在Windows设置中配置代理信息,或直接在PowerShell命令中包含代理信息。 < ">以下步骤演示使用-proxy参数安装Windows的示例: < ">1.Invoke-WebRequest命令需要获得代理信息才能访问安装程序脚本。然后,Deploy-IoTEdge命令需要获得代理信息才能下载安装文件。 < ">PowerShell < ">.{Invoke-WebRequest-proxy<proxy URL>-useb aka.ms/iotedge-win}|Invoke-Expression;Deploy-IoTEdge-proxy<proxy URL> < ">2.Initialize-IoTEdge命令不需经过代理服务器,因此第二步仅需Invoke-WebRequest的代理信息。 < ">PowerShell < ">.{Invoke-WebRequest-proxy<proxy URL>-useb aka.ms/iotedge-win}|Invoke-Expression;Initialize-IoTEdge < ">如果拥有不能包含在URL中的复杂代理服务器凭据,请使用-InvokeWebRequestParameters中的-ProxyCredential参数。例如, < ">PowerShell < ">$proxyCredential=(Get-Credential).GetNetworkCredential() < ">.{Invoke-WebRequest-proxy<proxy URL>-ProxyCredential$proxyCredential-useb aka.ms/iotedge-win}|Invoke-Expression;` < ">Deploy-IoTEdge-InvokeWebRequestParameters {'-Proxy'='<proxy URL>';'-ProxyCredential'=$proxyCredential} < ">有关代理参数的详细信息,请参阅Invoke-WebRequest。有关Windows安装参数的详细信息,请参阅Windows上IoT Edge的PowerShell脚本。 < ">配置守护程序 < ">IoT Edge依赖于IoT Edge设备上运行的两个守护程序。Moby守护程序发出Web请求,以从容器注册表中拉取容器映像。IoT Edge守护程序发出Web请求,以与IoT中心进行通信。 < ">Moby和IoT Edge守护程序都需要配置为使用代理服务器持续获得设备功能。需在最初设置设备期间,在IoT Edge设备上执行此步骤。 < ">Moby守护程序 < ">由于Moby是基于Docker的,因此若要使用环境变量配置Moby守护程序,请参阅Docker文档。大多数容器注册表(包括DockerHub和Azure容器注册表)支持HTTPS请求,因此,你应当设置的变量为HTTPS_PROXY。如果要从不支持传输层安全性(TLS)的注册表中拉取映像,则应当设置HTTP_PROXY。 < ">选择适用于IoT Edge设备操作系统的文章: < ">在Linux上配置Docker守护程序Linux设备上的Moby守护程序保留“Docker”这一名称。 < ">在Windows上配置Docker守护程序Windows设备上的Moby守护程序名为iotedge-moby。之所以让这些名称保持不同,是因为可能会在Windows设备上并行运行Docker Desktop和Moby。 < ">IoT Edge守护程序 < ">IoT Edge守护程序以类似的方式配置为Moby守护程序。使用以下步骤根据所使用的操作系统为服务设置环境变量。 < ">IoT Edge守护程序始终使用HTTPS将请求发送到IoT中心。 < ">Linux < ">在终端中打开信息流标题编辑器以配置IoT Edge守护程序。 < ">Bash < ">sudo systemctl edit iotedge < ">输入以下文本,将<proxy URL>替换为代理服务器地址和端口。然后,保存并退出。 < ">ini < ">[Service] < ">Environment="https_proxy=<proxy URL>" < ">刷新服务管理器以选取IoT Edge的新配置。 < ">Bash < ">sudo systemctl daemon-reload < ">重新启动IoT Edge以使更改生效。 < ">Bash < ">sudo systemctl restart iotedge < ">确认已创建环境变量并加载了新配置。 < ">Bash < ">systemctl show--property=Environment iotedge < ">Windows < ">以管理员身份打开PowerShell窗口,运行以下命令来使用新的环境变量编辑注册表。将<proxy url>替换为代理服务器地址和端口。 < ">PowerShell < ">reg add HKLMSYSTEMCurrentControlSetServicesiotedge/v Environment/t REG_MULTI_SZ/d https_proxy=<proxy URL> < ">重新启动IoT Edge以使更改生效。 < ">PowerShell < ">Restart-Service iotedge < ">配置IoT Edge代理 < ">IoT Edge代理是在任意IoT E网络口碑营销是什么dge设备上启动的第一个模块。该代理基于IoT Edge config.yaml文件中的信息首次启动,IoT Edge代理随后连接到IoT中心以检索部署清单,其中声明了应在设备上部署的其他模块。 < ">需在最初设置设备期间,在IoT Edge设备上执行此步骤一次。 < ">1.打开IoT Edge设备上的config.yaml文件。在Linux系统上,此文件位于/etc/iotedge/config.yaml。在Windows系统上,此文件位于C:ProgramDataiotedgeconfig.yaml。配置文件是受保护的,因此,你需要管理权限才能对其进行访问。在Linux系统上,请使用sudo命令,然后在偏好的文本编辑器中打开该文件。在Windows上,请以管理员身份打开记事本之类的文本编辑器,然后打开该文件。 < ">2.在config.yaml文件中,找到“Edge代理模块规范”部分。IoT Edge代理定义包括可以在其中添加环境变量的env参数。 < ">3.删除作为env参数占位符的大括号,并在新行上添加新变量。请记住,YAML中的缩进为两个空格。 < ">YAML < ">https_proxy:"<proxy URL>" < ">4.默认情况下,IoT Edge运行时使用AMQP与IoT中心通信。某些代理服务器会阻止AMQP端口。如果是这种情况,则还需要将edgeAgent配置为使用基于WebSocket的AMQP。添加第二个环境变量。 < ">YAML < ">UpstreamProtocol:"AmqpWs" < ">5.将更改保存到config.yaml并关闭编辑器。重新启动IoT Edge以使更改生效。 < ">Linux: < ">Bash < ">sudo systemctl restart iotedge < ">Windows: < ">PowerShell < ">Restart-Service iotedge < ">配置部署清单 < ">将IoT Edge设备配置为与代理服务器配合使用后,还需要在将来的部署清单中声明HTTPS_PROXY环境变量。可以使用Azure门户向导或者通过编辑部署清单JSON文件,来编辑部署清单。 < ">始终配置两个运行时模块(edgeAgent和edgeHub),以通过代理服务器进行通信,从而维持与IoT中心的连接。如果从edgeAgent模块中删除了代理信息,则重新建立连接的唯一方法是根据前一部分中所述,编辑设备上的config.yaml文件。 < ">除了edgeAgent和edgeHub模块外,其他模块也可能需要代理配置。需要访问IoT中心以外的Azure资源(例如blob存储)的模块必须已在部署清单文件中指定HTTPS_PROXY变量。 < ">以下过程在IoT Edge设备的整个生命周期中适用。 < ">Azure门户 < ">使用“设置模块”向导为IoT Edge设备创建部署时,每个模块都有一个可在其中配置代理服务器连接的“环境变量”部分。 < ">若要配置IoT Edge代理和IoT Edge中心模块,请在向导的第一步中选择“运行时设置”。 < ">将https_proxy环境变量添加到IoT Edge代理和IoT Edge中心模块定义。如果在IoT Edge设备的config.yaml文件中包括UpstreamProtocol环境变量,也请将其添加到IoT Edge代理模块定义。 < ">添加到部署清单的所有其他模块都遵循相同的模式。 < ">JSON部署清单文件 < ">如果使用Visual Studio Code中的模板或通过手动创建JSON文件来为IoT Edge设备创建部署,则可以将环境变量直接添加到每个模块定义。 < ">使用以下JSON格式: < ">JSON < ">"env":{ < ">"https_proxy":{ < ">"value":"<proxy URL>" < ">} < ">} < ">如果包括环境变量,模块定义应类似以下edgeHub示例: < ">JSON < ">"edgeHub":{ < ">"type":"docker", < ">"settings":{ < ">"image":"mcr.microsoft.com/azureiotedge-hub:1.1", < ">"createOptions":"" < ">}, < ">"env":{ < ">"https_proxy":{ < ">"value":"http://proxy.example.com:3128" < ">} < ">}, < ">"status":"running", < ">"restartPolicy":"always" < ">} < ">如果在IoT Edge设备的confige.yaml文件中包括UpstreamProtocol环境变量,也请将其添加到IoT Edge代理模块定义。 < ">JSON < ">"env":{ < ">"https_proxy":{ < ">"value":"<proxy URL>" < ">}, < ">"UpstreamProtocol":{ < ">"value":"AmqpWs" < ">} < ">} < ">使用流量检查代理 < ">如果你尝试使用的代理对受TLS保护的连接执行流量检查,请务必注意,使用X.509证书的身份验证无效。IoT Edge建立了一个TLS通道,该通道使用提供的证书和密钥进行了端到端加密。如果断开该通道以进行流量检查,则代理无法使用正确的凭据重新建立该通道,并且IoT中心和IoT中心设备预配服务会返回“Unauthorized”错误。 < ">若要使用执行流量检查的代理,必须使用共享访问签名身份验证,或者将IoT中心和IoT中心设备预配服务添加到允许列表以避免检查。 |
上一篇:如何将Azure IoT Edge设备用作网关
下一篇:Airwallex空中云汇如何帮助Lazada卖家收款提现?
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“将Azure IoT Edge 设备配置为通过代理服务器进行通”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通将Azure IoT Edge 设备配置为通过代理服务器进行通的相关事宜。
关键词:将Azure,IoT,Edge,设备配置为