IoT Edge提供下游設備(如Azure Sphere)和IoT中心之間的篩選和數(shù)據(jù)處理層。如果Azure Sphere設備生成需要后處理的大量數(shù)據(jù)或數(shù)據(jù),請考慮使用IoT Edge。
本主題介紹使用Azure Sphere設置IoT Edge設備的步驟。完成本主題中的任務后,Azure Sphere設備將配置為通過充當透明網關的IoT Edge設備將數(shù)據(jù)發(fā)送到IoT中心。可以按照IoT Edge模塊指南,使用IoT Edge設備上的模塊添加其他數(shù)據(jù)篩選和處理。
開始之前
本部分中的步驟假定:
你的Azure Sphere設備通過USB連接到你的電腦。
你有一個Azure訂閱。
概述
設置Azure IoT Edge設備并將其配置為使用Azure Sphere設備需要一個多步驟過程,你應該計劃大約8小時來完成這些步驟,尤其是在你不熟悉IoT Edge的情況下。如果這是你第一次使用IoT Edge,請按照每個部分中的快速入門說明進行操作,設置和配置在Linux虛擬機上運行的IoT Edge設備。
對于每個Azure Sphere租戶和IoT Edge設備,這些步驟必須僅完成一次;但是,必須在IoT中心中手動配置每個Azure Sphere設備,并且必須將IoT Edge設備設置為Azure Sphere設備的父級。
設置步驟可分為三個邏輯分組:
創(chuàng)建IoT Edge設備并將其配置為透明網關
步驟1.創(chuàng)建Azure IoT中心和Azure IoT Edge設備。
步驟2.將IoT Edge網關設備配置為服務器。
步驟3.打開IoT Edge網關設備端口進行通信。
步驟4.更新yaml中的網關主機名。
在IoT中心配置Azure Sphere設備
步驟5.在IoT中心設置Azure Sphere設備并對其進行身份驗證。
步驟6.將IoT Edge設備設置為Azure Sphere設備的父級。
在Azure Sphere設備與IoT Edge設備之間建立受信任的連接
步驟7.向IoT Edge設備提供Azure Sphere設備的租戶CA證書。
步驟8.向Azure Sphere設備提供IoT Edge設備的根CA證書。
步驟1.創(chuàng)建Azure IoT中心和Azure IoT Edge設備
必須設置IoT Edge設備并將其注冊到IoT中心(如果尚未這樣做)。
你可以使用設備預配服務來預配IoT Edge設備。但是,不能使用設備預配服務來預配Azure Sphere設備。不支持通過Azure IoT中心設備預配服務將IoT Edge設備下游的設備自動預配。
例如,你可以按照本快速入門中的步驟設置在Linux虛擬機上運行的IoT Edge設備,并將其注冊到IoT中心。
在快速入門中,你將:
創(chuàng)建IoT中心。
將IoT Edge設備注冊到IoT中心。
在IoT Edge設備上安裝并啟動Azure IoT Edge運行時。
在部署模塊之前停止。
重要
雖然可以免費創(chuàng)建Azure訂閱,但注冊過程要求輸入信用卡號。Azure提供多個級別的訂閱服務。默認情況下,創(chuàng)建IoT中心時會選擇標準層,需要按月收取服務費。若要避免每月收取費用,請選擇免費層。免費層包括將設備與IoT中心(包括設備克?。┡浜鲜褂盟璧姆?。如果沒有Azure訂閱,請在開始前創(chuàng)建一個免費帳戶。
步驟2.將IoT Edge網關設備配置為服務器
按照說明將網關設備配置為服務器,但在"在網關設備上打開端口"部分之前停止。
在本部分中,你將:
配置IoT Edge設備證書。
部署IoT Edge中心模塊。
配置通過IoT Edge路由消息。
如果你使用的是快速入門,請使用Linux說明來配置演示證書(如果你在其上生成證書的計算機是基于Linux的計算機)。如果生成證書的計算機是基于Windows的計算機,請使用Windows說明生成演示證書。請參閱將根證書復制到LINUX VM或本地Windows計算機的部分。
在步驟7中將修改IoT Edge根CA證書,但需要在步驟8中使用原始證書,因此請保留原始證書的副本,以便可以重用它。
注意:更新yaml文件的證書部分時,請確保yaml中的證書:行沒有前面的空格,并且每個嵌套證書都按兩個空格縮進。
更新文件后,驗證edgehub模塊是否正在IoT Edge設備上運行。
Linux:sudo iotedge list
有關詳細信息,請參閱如何將IoT Edge設備用作網關。
步驟3.打開IoT Edge網關設備端口進行通信
網關設備必須能夠從其下游設備接收消息。要使網關方案正常工作,必須為來自下游設備的入站流量打開至少一個IoT中心支持的協(xié)議。
Azure Sphere使用協(xié)議MQTT。此協(xié)議使用端口8883。
有關詳細信息,請參閱網關設備上的端口。
在快速入門中設置邊緣設備后,請按照以下步驟打開端口8883:
1.如有必要,請使用Azure帳戶登錄到Azure門戶。
2.在上面的"設置IoT Edge設備并將其注冊到IoT中心"部分中,導航到創(chuàng)建的虛擬機。
3.在"設置"下的左側菜單中,單擊"網絡>添加入站端口規(guī)則"。
4.在"添加入站端口規(guī)則"對話框的"目標端口范圍"下,將值更改為8883。
5.在"協(xié)議"下,單擊"TCP"。
6.在"名稱"下,將值更改為MQTT。
7.將所有其他設置保留為默認值,然后單擊"添加"。
這將定義一個入站安全規(guī)則,以允許MQTT協(xié)議與IoT Edge網關通信。
步驟4.更新yaml中的網關主機名
IoT Edge運行時支持少于64個字符的主機名。物理計算機通常不具有長主機名,但如果使用虛擬機作為IoT Edge設備,如快速入門中的示例,則必須手動配置主機名。
若要排除無效主機名的故障,請參閱常見錯誤解決方法。
在快速入門中配置MQTT端口后,請按照以下步驟配置IoT Edge設備主機名:
1.在Azure門戶中,導航到你的虛擬機。復制“概述”部分中的DNS名稱(計算機的FQDN)。
2.如有必要,請登錄到IoT Edge設備。
3.在文本編輯器中打開yaml文件。
Linux:/etc/iotedge/config.yaml
4.將FQDN粘貼到config.yml的主機名部分。確保該名稱全部小寫。
hostname:'<machinename>.<region>.cloudapp.azure.com'
5.重啟iotedge守護程序。
Linux:sudo systemctl restart iotedge
6.如果在狀態(tài)中看到"(以"[ERROR]"為前綴的彩色文本)出現(xiàn)錯誤,請檢查守護程序日志以獲取詳細的錯誤信息。
Linux:sudo journalctl-u iotedge--no-pager--no-full
步驟5.在IoT中心設置Azure Sphere設備并對其進行身份驗證
下游設備(有時稱為葉設備或子設備)需要IoT中心中的標識,就像任何其他設備一樣。有關詳細信息,請參閱在Azure IoT中心對下游設備進行身份驗證。
1.在Azure門戶中,導航到注冊了IoT Edge設備的Azure IoT中心。
2.按照步驟2-5手動預配Azure Sphere設備。
3.若要以小寫形式獲取Azure Sphere設備ID,請在Azure Sphere命令提示符下運行以下命令:
powershell-Command((azsphere device show-attached)[0]-split':')[1].ToLower()
步驟6.將IoT Edge設備設置為Azure Sphere設備的父級
按照以下步驟將IoT Edge設備設置為Azure Sphere設備的父級:
1.導航到上面手動預配的Azure Sphere設備。
2.單擊"設備ID"。
3.單擊"無父設備"下的齒輪圖標。
4.選擇要設置為父級的邊緣設備。
5.單擊"確定",然后單擊"保存"。
現(xiàn)在,你將看到IoT Edge設備是Azure Sphere設備的父級。
步驟7.向IoT Edge設備提供Azure Sphere設備的租戶CA證書
若要驗證Azure Sphere的設備證書,IoT Edge設備必須擁有自己的租戶CA副本。
1.下載租戶CA證書(如果尚未這樣做)。注意:你應該已在步驟5中下載此內容。
在命令提示符下,通過Azure Sphere登錄名登錄:
azsphere login
下載Azure Sphere租戶的CA證書。此命令將證書下載到當前工作目錄中名為CAcertificate.cer的文件。請確保將該文件下載到你具有寫入權限的目錄中,否則下載操作將失敗。另請注意,輸出文件的擴展名必須為.cer。
azsphere ca-certificate download--output CAcertificate.cer
2.將租戶CA證書轉換為PEM格式。在Windows計算機上轉換格式的示例說明如下所示。
找到計算機上證書的路徑,然后雙擊證書將其打開。
打開"詳細信息"選項卡,然后單擊"復制到文件"。
在證書導出向導中,單擊“下一步”。
選擇64編碼的x.509(。CER)格式,然后單擊"下一步"。
鍵入要導出的證書的文件名,然后單擊"下一步"。
單擊“完成”以完成向導。
重命名已下載的證書文件,使其具有pem文件擴展名。
3.將租戶證書追加到IoT Edge根證書。請記住在步驟2中創(chuàng)建了IoT Edge證書。
如有必要,請登錄到IoT Edge設備。
找到IoT Edge設備的根CA證書的路徑,并在文本編輯器中將其打開。如果你遵循了快速入門,然后使用了IoT Edge git存儲庫中提供的腳本創(chuàng)建演示證書,則根CA證書稱為azure-iot-test-only。
在文本編輯器中以PEM格式)打開Azure Sphere租戶CA證書(。復制內容并將其粘貼到IoT Edge根CA證書的末尾。
保存對IoT Edge根CA證書所做的更改,然后關閉該文件。
重新啟動IoT Edge設備。對于Linux IoT Edge設備,請運行:sudo systemctl restart iotedge。
驗證模塊是否正在IoT Edge設備上運行。對于Linux IoT Edge設備,請運行:sudo iotedge list。
步驟8.向Azure Sphere設備提供IoT Edge設備的根CA證書
若要驗證IoT Edge設備證書,下游設備)(Azure Sphere設備必須擁有自己在步驟2中配置的IoT Edge設備根CA證書副本。
有關詳細信息,請參閱將下游設備連接到Azure IoT Edge網關。
1.找到原始IoT Edge設備根證書。
請記住,原始IoT Edge設備根證書是你在步驟2中創(chuàng)建的證書。
如果你遵循了快速入門,然后使用了IoT Edge git存儲庫中提供的腳本創(chuàng)建演示證書,則根CA證書稱為azure-iot-test-only。
2.將IoT Edge根證書添加到Azure Sphere設備,方法是將其添加到應用程序包。
有關詳細步驟,請參閱創(chuàng)建映像包。
如果運行的是Azure IoT示例,請按照修改CMakeLists.txt文件中的步驟操作。
請參閱將根證書復制到LINUX VM或本地Windows計算機的部分。
復制IoT根證書
按照以下步驟將IoT Edge根證書復制到遠程Linux VM或本地Windows計算機:
可以安裝WinSCP工具以傳輸文件。該工具提供了GUI,因此更易于使用命令行方法。
若要使用命令行,請使用SCP(安全副本)命令行工具。
若要將文件從本地Windows計算機傳輸?shù)竭h程Linux VM,請在Powershell中運行以下命令:
powershell-Command scp-r<path-to-file-name><userName remote-ip>:<path-to-destination-directory>
示例語法:scp C:Documentscert.pem AzureUser edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
若要將文件從遠程Linux VM傳輸?shù)奖镜豔indows計算機,請在Powershell中運行以下命令:
powershell-Command scp-r<userName remote-ip>:<path-to-file-name><path-to-destination-dir>
示例語法:scp azureUser edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:Documents