《阿里云:阿里云物聯網邊緣計算用戶指南(182頁).pdf》由會員分享,可在線閱讀,更多相關《阿里云:阿里云物聯網邊緣計算用戶指南(182頁).pdf(182頁珍藏版)》請在三個皮匠報告上搜索。
1、阿里云IoT Link Rack 一體機物聯網邊緣計算用戶指南產品版本:V1.1.0文檔版本:20200610物聯網邊緣計算用戶指南/法律聲明法律聲明阿里云提醒您在閱讀或使用本文檔之前仔細閱讀、充分理解本法律聲明各條款的內容。如果您閱讀或使用本文檔,您的閱讀或使用行為將被視為對本聲明全部內容的認可。1.您應當通過阿里云網站或阿里云提供的其他授權通道下載、獲取本文檔,且僅能用于自身的合法合規的業務活動。本文檔的內容視為阿里云的保密信息,您應當嚴格遵守保密義務;未經阿里云事先書面同意,您不得向任何第三方披露本手冊內容或提供給任何第三方使用。2.未經阿里云事先書面許可,任何單位、公司或個人不得擅自摘
2、抄、翻譯、復制本文檔內容的部分或全部,不得以任何方式或途徑進行傳播和宣傳。3.由于產品版本升級、調整或其他原因,本文檔內容有可能變更。阿里云保留在沒有任何通知或者提示下對本文檔的內容進行修改的權利,并在阿里云授權通道中不時發布更新后的用戶文檔。您應當實時關注用戶文檔的版本變更并通過阿里云授權渠道下載、獲取最新版的用戶文檔。4.本文檔僅作為用戶使用阿里云產品及服務的參考性指引,阿里云以產品及服務的“現狀”、“有缺陷”和“當前功能”的狀態提供本文檔。阿里云在現有技術的基礎上盡最大努力提供相應的介紹及操作指引,但阿里云在此明確聲明對本文檔內容的準確性、完整性、適用性、可靠性等不作任何明示或暗示的保證
3、。任何單位、公司或個人因為下載、使用或信賴本文檔而發生任何差錯或經濟損失的,阿里云不承擔任何法律責任。在任何情況下,阿里云均不對任何間接性、后果性、懲戒性、偶然性、特殊性或刑罰性的損害,包括用戶使用或信賴本文檔而遭受的利潤損失,承擔責任(即使阿里云已被告知該等損失的可能性)。5.阿里云文檔中所有內容,包括但不限于圖片、架構設計、頁面布局、文字描述,均由阿里云和/或其關聯公司依法擁有其知識產權,包括但不限于商標權、專利權、著作權、商業秘密等。非經阿里云和/或其關聯公司書面同意,任何人不得擅自使用、修改、復制、公開傳播、改變、散布、發行或公開發表阿里云網站、產品程序或內容。此外,未經阿里云事先書面
4、同意,任何人不得為了任何營銷、廣告、促銷或其他目的使用、公布或復制阿里云的名稱(包括但不限于單獨為或以組合形式包含“阿里云”、“Aliyun”、“萬網”等阿里云和/或其關聯公司品牌,上述品牌的附屬標志及圖案或任何類似公司名稱、商號、商標、產品或服務名稱、域名、圖案標示、標志、標識或通過特定描述使第三方能夠識別阿里云和/或其關聯公司)。6.如若發現本文檔存在任何錯誤,請與阿里云取得直接聯系。文檔版本:20200610I物聯網邊緣計算用戶指南/通用約定通用約定格式說明樣例該類警示信息將導致系統重大變更甚至故障,或者導致人身傷害等結果。禁止:重置操作將丟失用戶配置數據。該類警示信息可能會導致系統重大
5、變更甚至故障,或者導致人身傷害等結果。警告:重啟操作將導致業務中斷,恢復業務時間約十分鐘。用于警示信息、補充說明等,是用戶必須了解的內容。注意:權重設置為0,該服務器不會再接受新請求。用于補充說明、最佳實踐、竅門等,不是用戶必須了解的內容。說明:您也可以通過按Ctrl+A選中全部文件。多級菜單遞進。單擊設置 網絡 設置網絡類型。粗體表示按鍵、菜單、頁面名稱等UI元素。在結果確認頁面,單擊確定。Courier字體命令。執行cd/d C:/window命令,進入Windows系統文件夾。斜體表示參數、變量。bae log list-instanceidInstance_ID或者a|b表示可選項,至
6、多選擇一個。ipconfig-all|-t或者a|b表示必選項,至多選擇一個。switch active|stand文檔版本:20200610I物聯網邊緣計算用戶指南/目錄目錄法律聲明.I通用約定.I1 登錄物聯網平臺控制臺.12 環境搭建.22.1 專業版環境搭建.22.1.1 基于Ubuntu 16.04搭建環境.22.1.2 基于Windows搭建環境.102.2 標準版環境搭建.182.2.1 基于Ubuntu 16.04搭建環境.182.2.2 基于樹莓派搭建環境.262.3 輕量版搭建環境.353 設備接入.433.1 設備接入簡介.433.2 示例驅動.453.3 官方驅動.51
7、3.3.1 Modbus驅動.523.3.2 Modbus調試工具.623.3.3 OPC UA驅動.683.3.4 WebSocket驅動.733.4 驅動開發.783.4.1 概覽.783.4.2 驅動編碼.793.4.3 驅動調試.843.4.4 常見問題.1033.5 驅動發布.1043.5.1 云端發布.1043.5.2 內置發布.1114 場景聯動.1134.1 什么是場景聯動.1134.2 云端場景聯動.1144.3 邊緣場景聯動.1175 邊緣應用.1215.1 什么是邊緣應用.1215.2 新增邊緣應用.1215.3 分配邊緣應用到邊緣實例.1276 斷網續傳.1297 消息
8、路由.1367.1 什么是消息路由.136II文檔版本:20200610物聯網邊緣計算用戶指南/目錄7.2 設置消息路由.1377.3 消息路由設置示例.1418 遠程運維管理.1469 運維工具.1509.1 設備批量處理工具.1509.2 lectl管理運維工具.1519.3 設備模擬器.162文檔版本:20200610III物聯網邊緣計算用戶指南/目錄IV文檔版本:20200610物聯網邊緣計算用戶指南/1 登錄物聯網平臺控制臺1 登錄物聯網平臺控制臺本節主要介紹云產品一體機用戶如何通過ASCM(Apsara Stack Cloud Mangement)控制臺登錄到物聯網平臺控制臺。前提
9、條件登錄ASCM控制臺前,確認您已從部署人員處獲取ASCM控制臺的IP地址或服務域名地址。ASCM控制臺訪問地址為:https:/ASCM控制臺的IP地址或服務域名地址。推薦使用Chrome瀏覽器。操作步驟1.打開瀏覽器。2.在瀏覽器地址欄中,輸入ASCM控制臺的訪問地址,按回車鍵。3.輸入正確的用戶名及密碼。請向運營管理員獲取登錄控制臺的用戶名和密碼。說明:首次登錄ASCM控制臺時,需要修改登錄用戶名的密碼,請按照提示完成密碼修改。為提高安全性,密碼長度必須為 820 位,且至少包含以下兩種類型:英文大寫或小寫字母(AZ、az)阿拉伯數字(09)特殊符號(感嘆號(?。?、at()、井號(#)、
10、美元符號($)、百分號(%)等)4.單擊登錄,進入ASCM控制臺頁面。5.在頁面上方的導航欄中,選擇產品 物聯網平臺,單擊前往物聯網平臺。文檔版本:202006101物聯網邊緣計算用戶指南/2 環境搭建2 環境搭建2.1 專業版環境搭建2.1.1 基于Ubuntu 16.04搭建環境本文介紹如何在Ubuntu 16.04的系統中搭建Link IoT Edge專業版(LE Pro)的Docker運行環境,實現網關與云端連接的步驟。專業版(LE Pro)規格的詳細說明請參見 物聯網邊緣計算產品簡介 文檔中產品規格章節。準備工作LE Pro版需要您提前安裝好Docker環境,請參見Docker官方文
11、檔安裝使用您Ubuntu 16.04系統的Docker客戶端。要求Docker版本大于V17.03。創建邊緣實例和網關1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例。3.新增一個邊緣實例。單擊新增實例,在彈出對話框中設置相關參數。a)在實例名稱下輸入新增實例的名稱。說明:2文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建實例名稱支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。b)在網關產品下拉框中為實例選擇已有網關產品或者單擊新建網關產品新增一個網關產品。物聯網邊緣計算中的網關承載邊緣計算能力,每個實例必
12、須分配一個網關設備,并且該網關設備同一時間只能被分配到一個邊緣實例。c)非新建網關產品請忽略本操作。在創建產品頁面中,設置網關產品參數,然后單擊完成。物聯網邊緣計算中的新建網關產品,繼承了物聯網平臺設備管理 產品中的產品功能,此處已自動為您簡化了創建產品的步驟,以便您更快速地創建適合物聯網邊緣計算中使用的網關產品。文檔版本:202006103物聯網邊緣計算用戶指南/2 環境搭建表 2-1:參數說明參數說明產品名稱為網關產品設置名稱,用于后續的查詢及識別網關產品。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()、英文圓括號(),長度限制430位,一個中文漢字算2位。4文檔版本:20
13、200610物聯網邊緣計算用戶指南/2 環境搭建參數說明所屬品類選擇品類,為該產品定義物模型??蛇x擇的值為:標準品類:選擇任一物聯網平臺預定義的品類,快速完成產品的功能定義。選擇產品模板后,您可以在該模板基礎上,編輯、修改、新增功能。自定義品類:需根據實際需要,定義產品功能。若您需要的網關沒有特殊功能定義,建議您選擇自定義品類。產品描述可輸入文字,用來描述產品信息。字數限制為100??梢詾榭?。產品創建成功后,頁面自動跳轉回新增實例頁面,并且網關產品參數下自動分配了剛創建的網關產品。d)在網關設備中選擇已有的網關設備或單擊新建網關設備創建一個新的網關設備。物聯網邊緣計算中的新建網關設備功能繼承物
14、聯網平臺設備管理 設備的功能。說明:文檔版本:202006105物聯網邊緣計算用戶指南/2 環境搭建選擇網關產品后,新增實例對話框才會出現參數網關設備。e)非新建網關設備請忽略本步操作。根據界面提示設置參數后,單擊確認。表 2-2:參數說明參數描述產品新添加網關設備所屬產品的名稱,此處系統已自動關聯上一步創建的網關產品。6文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建參數描述設備名稱為該網關設備命名。設備名稱需保持產品內唯一。如不填寫,系統將自動生成。說明:設備名稱長度為432個字符,可包含英文字母、數字和特殊字符,包括短劃線(-)、下劃線(_)、at()、英文句點(.)和英文
15、冒號(:)。f)根據所搭建的環境,選擇對應的Link IoT Edge產品規格。Link IoT Edge的產品規格,請參見物聯網邊緣計算產品簡介 文檔中產品規格章節。g)(可選)在新增實例頁面,單擊新增標簽,可以設置實例標簽。通過標簽您可以更加有效地歸類及識別實例。您也可以不設置標簽。若設置實例標簽,請填寫標簽key和標簽value。表 2-3:參數說明參數描述標簽key不可為空,僅支持英文字母大小寫,長度不超過20個字符,同一個邊緣實例不可以重復定義標簽key。標簽value不可為空,支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。
16、4.實例參數設置完成后,單擊確定,至此您已創建邊緣實例和網關。安裝并啟動Link IoT Edge根據本文上方創建邊緣實例和網關部分,完成邊緣實例的創建和網關分配后,您需要在網關上安裝并啟動Link IoT Edge。1.登錄您的x86_64 Ubuntu 16.04機器。2.以root用戶執行以下命令解壓并安裝Link IoT Edge軟件包。sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge.sh&sudo./link-iot-edge.sh v2.4.2 YourProductKey YourDevic
17、eName YourDeviceSecret說明:將YourProductKey YourDeviceName YourDeviceSecret替換為網關設備的設備證書信息。文檔版本:202006107物聯網邊緣計算用戶指南/2 環境搭建例如,網關設備證書信息為ProductKey:a1*gs、DeviceName:gateway、DeviceSecret:2Px*H1S,則執行的實際命令如下:sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge.sh&sudo./link-iot-edge.sh v2.4.2
18、 a1*gs gateway 2Px*H1S3.配置網關連接地址。cd/linkedge/gateway/build/bin&./tool_config-s gw_system_as_host MQTT連接host&./tool_config-s gw_system_as_port MQTT連接端口&./tool_config-s gw_system_ver_ca 0&./tool_config-s gw_remoteaccess_cloud_host 遠程隧道連接host&./tool_config-s gw_remoteaccess_cloud_port 遠程隧道連接端口&./tool_c
19、onfig-s gw_remoteaccess_tls_type 0說明:請將MQTT連接host MQTT連接端口 遠程隧道連接host 遠程隧道連接端口替換為實際連接的host和端口。4.重啟Link IoT Edge核心服務。cd/linkedge/gateway/build/scriptsudo./iot_gateway_stop.sh allsudo./iot_gateway_start.sh5.執行如下命令查看Link IoT Edge核心服務的運行狀態。cd/linkedge/gateway/build/scriptsudo./iot_gateway_status.sh您也可以在
20、物聯網平臺控制臺,左側導航欄選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看進入實例詳情頁面,選擇網關,查看網關狀態。6.(可選)在實例詳情頁面選擇網關,單擊操作欄下的遠程SSL終端,可對網關進行遠程管理,詳細步驟請參見 遠程運維管理章節。8文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建Link IoT Edge的其它操作重新配置 Link IoT Edge。如果您希望對當前已安裝的 Link IoT Edge版本配置進行修改可以使用如下命令。./link-iot-edge.sh-reconfig Version其中,Version替換為目標版本號,例如目標版本號為V1
21、.8.2,則實際命令為./link-iot-edge.sh-reconfig v1.8.2。停止Link IoT Edge。使用如下命令可以停止所有Link IoT Edge運行的容器,但是不會刪除。./link-iot-edge.sh-stop重新啟動Link IoT Edge。在容器已存在且沒有運行的狀態下,執行如下命令可重新啟動Link IoT Edge。./link-iot-edge.sh-restart Version其中,Version替換為目標版本號,例如目標版本號為V1.8.2,則實際命令為./link-iot-edge.sh-restart v1.8.2。清理Link IoT
22、 Edge。執行如下命令可停止當前運行的Link IoT Edge相關容器,并會刪除所有已安裝的相關鏡像,刪除相關數據卷以及啟動配置文件。./link-iot-edge.sh-clean提取Link IoT Edge的日志。執行如下命令可打包Link IoT Edge的所有日志,并拷貝到當前目錄。./link-iot-edge.sh-packagelog下一步環境搭建完成后,您可以根據設備接入部分內容,把您的設備接入到物聯網邊緣計算,請參見設備接入。同時也可以為邊緣實例分配其他資源(如函數計算、消息路由等)管理您的設備。接入設備或分配其他資源到邊緣實例后,需要根據如下步驟部署邊緣實例。1.在實
23、例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。2.當部署狀態顯示為部署成功,表示部署實例完成。您可以通過單擊實例詳情頁面右上角的查看部署日志,查看歷史部署情況。文檔版本:202006109物聯網邊緣計算用戶指南/2 環境搭建2.1.2 基于Windows搭建環境本文介紹如何在Windows7和Windows10的系統中搭建Link IoT Edge專業版(LE Pro)的Docker運行環境,實現網關與云端連接的操作步驟。專業版(LE Pro)規格的詳細說明請參見 物聯網邊緣計算產品簡介 文檔中產品規格章節。準備工作LE Pro版需要您提前安裝好Docker環境,Windo
24、ws7系統請參見Install Docker Toolbox on Windows,Windows10系統請參見Install Docker for Windows。要求Docker版本大于v17.03。在您的Windows 7或Windows 10系統機器上安裝最新版本的Git bash。安裝包以及安裝操作請參見官方文檔。約束條件目前僅支持在Windows 7和Windows 10系統中搭建專業版運行環境。LE Pro版需要bash的運行環境,用于運行Link IoT Edge的腳本工具,請務必安裝好Git bash。創建邊緣實例和網關1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算
25、邊緣實例。3.新增一個邊緣實例。單擊新增實例,在彈出對話框中設置相關參數。a)在實例名稱下輸入新增實例的名稱。說明:10文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建實例名稱支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。b)在網關產品下拉框中為實例選擇已有網關產品或者單擊新建網關產品新增一個網關產品。物聯網邊緣計算中的網關承載邊緣計算能力,每個實例必須分配一個網關設備,并且該網關設備同一時間只能被分配到一個邊緣實例。c)非新建網關產品請忽略本操作。在創建產品頁面中,設置網關產品參數,然后單擊完成。物聯網邊緣計算中的新建
26、網關產品,繼承了物聯網平臺設備管理 產品中的產品功能,此處已自動為您簡化了創建產品的步驟,以便您更快速地創建適合物聯網邊緣計算中使用的網關產品。文檔版本:2020061011物聯網邊緣計算用戶指南/2 環境搭建表 2-4:參數說明參數說明產品名稱為網關產品設置名稱,用于后續的查詢及識別網關產品。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()、英文圓括號(),長度限制430位,一個中文漢字算2位。12文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建參數說明所屬品類選擇品類,為該產品定義物模型??蛇x擇的值為:標準品類:選擇任一物聯網平臺預定義的品類,快速完成產品的功能
27、定義。選擇產品模板后,您可以在該模板基礎上,編輯、修改、新增功能。自定義品類:需根據實際需要,定義產品功能。若您需要的網關沒有特殊功能定義,建議您選擇自定義品類。產品描述可輸入文字,用來描述產品信息。字數限制為100??梢詾榭?。產品創建成功后,頁面自動跳轉回新增實例頁面,并且網關產品參數下自動分配了剛創建的網關產品。d)在網關設備中選擇已有的網關設備或單擊新建網關設備創建一個新的網關設備。物聯網邊緣計算中的新建網關設備功能繼承物聯網平臺設備管理 設備的功能。說明:文檔版本:2020061013物聯網邊緣計算用戶指南/2 環境搭建選擇網關產品后,新增實例對話框才會出現參數網關設備。e)非新建網關
28、設備請忽略本步操作。根據界面提示設置參數后,單擊確認。表 2-5:參數說明參數描述產品新添加網關設備所屬產品的名稱,此處系統已自動關聯上一步創建的網關產品。14文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建參數描述設備名稱為該網關設備命名。設備名稱需保持產品內唯一。如不填寫,系統將自動生成。說明:設備名稱長度為432個字符,可包含英文字母、數字和特殊字符,包括短劃線(-)、下劃線(_)、at()、英文句點(.)和英文冒號(:)。f)根據所搭建的環境,選擇對應的Link IoT Edge產品規格。Link IoT Edge的產品規格,請參見物聯網邊緣計算產品簡介 文檔中產品規格章
29、節。g)(可選)在新增實例頁面,單擊新增標簽,可以設置實例標簽。通過標簽您可以更加有效地歸類及識別實例。您也可以不設置標簽。若設置實例標簽,請填寫標簽key和標簽value。表 2-6:參數說明參數描述標簽key不可為空,僅支持英文字母大小寫,長度不超過20個字符,同一個邊緣實例不可以重復定義標簽key。標簽value不可為空,支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。4.實例參數設置完成后,單擊確定,至此您已創建邊緣實例和網關。安裝并啟動Link IoT Edge根據本文上方創建邊緣實例和網關部分,完成邊緣實例的創建和網關分配后
30、,您需要在網關上安裝并啟動Link IoT Edge。1.登錄您的x86_64 Ubuntu 16.04機器。2.以root用戶執行以下命令解壓并安裝Link IoT Edge軟件包。curl-O http:/link-iot-edge-packet.oss-cn- link-iot-edge.sh&./link-iot-edge.sh v2.4.2 YourProductKey YourDeviceName YourDeviceSecret說明:請將YourProductKey YourDeviceName YourDeviceSecret替換為網關設備的設備證書信息。文檔版本:202006
31、1015物聯網邊緣計算用戶指南/2 環境搭建例如,網關設備證書信息為ProductKey:a1*gs、DeviceName:gateway、DeviceSecret:2Px*H1S,則執行的實際命令如下:curl-O http:/link-iot-edge-packet.oss-cn- link-iot-edge.sh&./link-iot-edge.sh v2.4.2 a1*gs gateway 2Px*H1S3.配置網關連接地址。cd/linkedge/gateway/build/bin&./tool_config-s gw_system_as_host MQTT連接host&./tool
32、_config-s gw_system_as_port MQTT連接端口&./tool_config-s gw_system_ver_ca 0&./tool_config-s gw_remoteaccess_cloud_host 遠程隧道連接host&./tool_config-s gw_remoteaccess_cloud_port 遠程隧道連接端口&./tool_config-s gw_remoteaccess_tls_type 0說明:請將MQTT連接host MQTT連接端口 遠程隧道連接host 遠程隧道連接端口替換為實際連接的host和端口。4.重啟Link IoT Edge核心服
33、務。cd/linkedge/gateway/build/script./iot_gateway_stop.sh all./iot_gateway_start.sh5.執行如下命令查看Link IoT Edge核心服務的運行狀態。cd/linkedge/gateway/build/script./iot_gateway_status.sh您也可以在物聯網平臺控制臺,左側導航欄選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看進入實例詳情頁面,選擇網關,查看網關狀態。6.(可選)在實例詳情頁面選擇網關,單擊操作欄下的遠程連接,可對網關進行遠程管理,詳細步驟請參見遠程運維管理。16文檔版本:2
34、0200610物聯網邊緣計算用戶指南/2 環境搭建Link IoT Edge的其它操作重新配置 Link IoT Edge。如果您希望對當前已安裝的 Link IoT Edge版本配置進行修改可以使用如下命令。./link-iot-edge.sh-reconfig Version其中,Version替換為目標版本號,例如目標版本號為V1.8.2,則實際命令為./link-iot-edge.sh-reconfig v1.8.2。停止Link IoT Edge。使用如下命令可以停止所有Link IoT Edge運行的容器,但是不會刪除。./link-iot-edge.sh-stop重新啟動Link
35、 IoT Edge。在容器已存在且沒有運行的狀態下,執行如下命令可重新啟動Link IoT Edge。./link-iot-edge.sh-restart Version其中,Version替換為目標版本號,例如目標版本號為V1.8.2,則實際命令為./link-iot-edge.sh-restart v1.8.2。清理Link IoT Edge。執行如下命令可停止當前運行的Link IoT Edge相關容器,并會刪除所有已安裝的相關鏡像,刪除相關數據卷以及啟動配置文件。./link-iot-edge.sh-clean提取Link IoT Edge的日志。執行如下命令可打包Link IoT E
36、dge的所有日志,并拷貝到當前目錄。./link-iot-edge.sh-packagelog下一步環境搭建完成后,您可以根據設備接入部分內容,把您的設備接入到物聯網邊緣計算,請參見設備接入。同時也可以為邊緣實例分配其他資源(如函數計算、消息路由等)管理您的設備。接入設備或分配其他資源到邊緣實例后,需要根據如下步驟部署邊緣實例。1.在實例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。2.當部署狀態顯示為部署成功,表示部署實例完成。您可以通過單擊實例詳情頁面右上角的查看部署日志,查看歷史部署情況。文檔版本:2020061017物聯網邊緣計算用戶指南/2 環境搭建2.2 標準版環
37、境搭建2.2.1 基于Ubuntu 16.04搭建環境本文介紹基于Ubuntu 16.04系統,如何快速將網關連接到物聯網邊緣計算控制臺,并將網關數據上傳至云端。Link IoT Edge標準版軟件包支持在Ubuntu 16.04 Ubuntu 18.04系統上運行,并在下列平臺上進行測試和驗證。架構操作系統x86_64Ubuntu 16.04 Ubuntu 18.04ARMv7Ubuntu 16.04 Ubuntu 18.04ARMv8(AArch64)Ubuntu 16.04 Ubuntu 18.04盡管Link IoT Edge可以在其它版本的Ubuntu操作系統上運行,但為了最佳的穩定
38、性和安全性,建議您選擇在官方支持的系統版本上運行。接下來,我們將基于x86_64 Ubuntu 16.04的平臺上為您介紹Link IoT Edge標準版安裝部署的方法。準備工作準備Ubuntu 16.04系統的PC或者虛擬機,并且該PC或者虛擬機能夠正常連接網絡。如果您不熟悉Ubuntu 16.04的安裝,可參考Ubuntu 16.04安裝指南。創建邊緣實例和網關1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例。3.新增一個邊緣實例。單擊新增實例,在彈出對話框中設置相關參數。a)在實例名稱下輸入新增實例的名稱。說明:18文檔版本:20200610物聯網邊緣計算用戶指南/2 環
39、境搭建實例名稱支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。b)在網關產品下拉框中為實例選擇已有網關產品或者單擊新建網關產品新增一個網關產品。物聯網邊緣計算中的網關承載邊緣計算能力,每個實例必須分配一個網關設備,并且該網關設備同一時間只能被分配到一個邊緣實例。c)非新建網關產品請忽略本操作。在創建產品頁面中,設置網關產品參數,然后單擊完成。物聯網邊緣計算中的新建網關產品,繼承了物聯網平臺設備管理 產品中的產品功能,此處已自動為您簡化了創建產品的步驟,以便您更快速地創建適合物聯網邊緣計算中使用的網關產品。文檔版本:2020061019物
40、聯網邊緣計算用戶指南/2 環境搭建表 2-7:參數說明參數說明產品名稱為網關產品設置名稱,用于后續的查詢及識別網關產品。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()、英文圓括號(),長度限制430位,一個中文漢字算2位。20文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建參數說明所屬品類選擇品類,為該產品定義物模型??蛇x擇的值為:標準品類:選擇任一物聯網平臺預定義的品類,快速完成產品的功能定義。選擇產品模板后,您可以在該模板基礎上,編輯、修改、新增功能。自定義品類:需根據實際需要,定義產品功能。若您需要的網關沒有特殊功能定義,建議您選擇自定義品類。產品描述可輸入
41、文字,用來描述產品信息。字數限制為100??梢詾榭?。產品創建成功后,頁面自動跳轉回新增實例頁面,并且網關產品參數下自動分配了剛創建的網關產品。d)在網關設備中選擇已有的網關設備或單擊新建網關設備創建一個新的網關設備。物聯網邊緣計算中的新建網關設備功能繼承物聯網平臺設備管理 設備的功能。說明:文檔版本:2020061021物聯網邊緣計算用戶指南/2 環境搭建選擇網關產品后,新增實例對話框才會出現參數網關設備。e)非新建網關設備請忽略本步操作。根據界面提示設置參數后,單擊確認。表 2-8:參數說明參數描述產品新添加網關設備所屬產品的名稱,此處系統已自動關聯上一步創建的網關產品。22文檔版本:202
42、00610物聯網邊緣計算用戶指南/2 環境搭建參數描述設備名稱為該網關設備命名。設備名稱需保持產品內唯一。如不填寫,系統將自動生成。說明:設備名稱長度為432個字符,可包含英文字母、數字和特殊字符,包括短劃線(-)、下劃線(_)、at()、英文句點(.)和英文冒號(:)。f)根據所搭建的環境,選擇對應的Link IoT Edge產品規格。Link IoT Edge的產品規格,請參見物聯網邊緣計算產品簡介 文檔中產品規格章節。g)(可選)在新增實例頁面,單擊新增標簽,可以設置實例標簽。通過標簽您可以更加有效地歸類及識別實例。您也可以不設置標簽。若設置實例標簽,請填寫標簽key和標簽value。表
43、 2-9:參數說明參數描述標簽key不可為空,僅支持英文字母大小寫,長度不超過20個字符,同一個邊緣實例不可以重復定義標簽key。標簽value不可為空,支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。4.實例參數設置完成后,單擊確定,至此您已創建邊緣實例和網關。安裝并啟動Link IoT Edge根據本文上方創建邊緣實例和網關內容,完成邊緣實例創建并分配網關后,您需要在網關上安裝并啟動Link IoT Edge。1.登錄您的x86_64 Ubuntu 16.04機器。2.以root用戶執行以下命令解壓并安裝Link IoT Edge軟
44、件包。sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge-standard.sh&sudo./link-iot-edge-standard.sh-install x86-64 v2.4.2&sudo./link-iot-edge-standard.sh-config YourProductKey YourDeviceName YourDeviceSecret&sudo./link-iot-edge-standard.sh-start說明:請將YourProductKey YourDeviceName Your
45、DeviceSecret替換為已在本地保存的網關設備的設備證書信息。文檔版本:2020061023物聯網邊緣計算用戶指南/2 環境搭建例如,網關設備證書信息為ProductKey:a1*gs、DeviceName:gateway、DeviceSecret:2Px*H1S,則執行的實際命令如下:sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge-standard.sh&sudo./link-iot-edge-standard.sh-install x86-64 v2.4.2&sudo./link-iot-edg
46、e-standard.sh-config a1*gs gateway 2Px*H1S&sudo./link-iot-edge-standard.sh-start3.配置網關連接地址。cd/linkedge/gateway/build/bin&./tool_config-s gw_system_as_host MQTT連接host&./tool_config-s gw_system_as_port MQTT連接端口&./tool_config-s gw_system_ver_ca 0&./tool_config-s gw_remoteaccess_cloud_host 遠程隧道連接host&./
47、tool_config-s gw_remoteaccess_cloud_port 遠程隧道連接端口&./tool_config-s gw_remoteaccess_tls_type 0說明:請將MQTT連接host MQTT連接端口 遠程隧道連接host 遠程隧道連接端口替換為實際連接的host和端口。4.重啟Link IoT Edge核心服務。cd/linkedge/gateway/build/scriptsudo./iot_gateway_stop.sh allsudo./iot_gateway_start.sh5.執行如下命令查看Link IoT Edge核心服務的運行狀態。cd/lin
48、kedge/gateway/build/scriptsudo./iot_gateway_status.sh您也可以在物聯網平臺控制臺,左側導航欄選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看進入實例詳情頁面,選擇網關,查看網關狀態。6.(可選)在實例詳情頁面選擇網關,打開遠程訪問按鈕后,可對網關進行遠程管理,具體步驟請參見遠程運維管理。24文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建使用systemd管理Link IoT Edge您可以使用systemd來管理Link IoT Edge服務的啟動(start)、停止(stop)和查看狀態(status)。Link I
49、oT Edge的systemd service如下所示。UnitDescription=Link IoT EdgeServiceType=forkingRestart=on-failureExecStart=/linkedge/gateway/build/script/iot_gateway_start.shExecReload=/linkedge/gateway/build/script/iot_gateway_start.shExecStop=/linkedge/gateway/build/script/iot_gateway_stop.shInstallWantedBy=multi-us
50、er.target您可保存上述service文件,并拷貝到/etc/systemd/system/目錄??梢允褂萌缦旅顔踊蛘咧貑⒎?。啟動命令:sudo systemctl start LinkIoTEdge.service重啟命令:sudo systemctl restart LinkIoTEdge.service可以使用如下命令停止服務。sudo systemctl stop LinkIoTEdge.service可以使用如下命令設置開機自動啟動服務。sudo systemctl enable LinkIoTEdge.service下一步環境搭建完成后,您可以根據設備接入部分內容,把您
51、的設備接入到物聯網邊緣計算,請參見設備接入。同時也可以為邊緣實例分配其他資源(如函數計算、消息路由等)管理您的設備。接入設備或分配其他資源到邊緣實例后,需要根據如下步驟部署邊緣實例。1.在實例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。2.當部署狀態顯示為部署成功,表示部署實例完成。您可以通過單擊實例詳情頁面右上角的查看部署日志,查看歷史部署情況。文檔版本:2020061025物聯網邊緣計算用戶指南/2 環境搭建2.2.2 基于樹莓派搭建環境本文介紹基于樹莓派(Raspberry Pi)系統,如何快速將網關連接到物聯網邊緣計算控制臺,并將網關數據上傳至云端。Link IoT
52、 Edge標準版軟件包支持在樹莓派系統上運行,并在下面平臺上進行了測試和驗證。硬件操作系統樹莓派3BRaspbian理論上Link IoT Edge也可以在其它版本的樹莓派操作系統(樹莓派2B/3B/3B+)上運行,但為了最佳的穩定性和安全性,建議您選擇在官方支持的系統版本上運行。準備工作準備符合如下表格中要求的樹莓派設備。項目規格樹莓派樹莓派3B操作系統Raspbian Stretch with desktop內核4.13Micro SD卡8GB外設HDMI線、鍵盤、鼠標、MicroUSB線環境設置在樹莓派設備上需要設置Link IoT Edge運行所依賴的環境,如果您的樹莓派設備上已經安裝
53、好Raspbian,請跳過步驟1至步驟3。1.下載Raspbian鏡像和SD鏡像燒寫工具。操作系統鏡像:Raspbian Stretch with desktopSD卡鏡像燒寫工具:Etcher說明:下載適合您計算機操作系統的SD卡鏡像燒寫工具。2.使用Etcher將Raspbian鏡像燒寫到SD卡。將Micro SD卡插入讀卡器,并接入到您的計算機。Raspbian鏡像燒寫到Micro SD卡,具體操作步驟,請參見樹莓派操作系統鏡像安裝指南。26文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建3.啟動并配置Raspbian操作系統。將Micro SD卡插入您的樹莓派設備上,連接
54、好鼠標和鍵盤,通過HDMI線連接到監視器上,使用MicroUSB線進行供電,啟動您的樹莓派設備。a)通過Wi-Fi網絡或者以太網將樹莓派設備連接到Internet,配置方法請參見樹莓派配置Wi-Fi無線網絡。b)配置SSH服務。執行sudo systemctl start ssh命令開啟SSH服務。執行sudo systemctl status ssh命令查看SSH服務。執行sudo systemctl enable ssh設置開機自動啟動SSH服務。在啟動SSH服務之后,執行hostname-I命令獲取樹莓派的IP地址,通過網絡SSH遠程登錄的方式登錄樹莓派設備。創建邊緣實例和網關1.登錄物
55、聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例。3.新增一個邊緣實例。單擊新增實例,在彈出對話框中設置相關參數。a)在實例名稱下輸入新增實例的名稱。說明:文檔版本:2020061027物聯網邊緣計算用戶指南/2 環境搭建實例名稱支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。b)在網關產品下拉框中為實例選擇已有網關產品或者單擊新建網關產品新增一個網關產品。物聯網邊緣計算中的網關承載邊緣計算能力,每個實例必須分配一個網關設備,并且該網關設備同一時間只能被分配到一個邊緣實例。c)非新建網關產品請忽略本操作。在創建產品頁面中,設置網關
56、產品參數,然后單擊完成。物聯網邊緣計算中的新建網關產品,繼承了物聯網平臺設備管理 產品中的產品功能,此處已自動為您簡化了創建產品的步驟,以便您更快速地創建適合物聯網邊緣計算中使用的網關產品。28文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建表 2-10:參數說明參數說明產品名稱為網關產品設置名稱,用于后續的查詢及識別網關產品。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()、英文圓括號(),長度限制430位,一個中文漢字算2位。文檔版本:2020061029物聯網邊緣計算用戶指南/2 環境搭建參數說明所屬品類選擇品類,為該產品定義物模型??蛇x擇的值為:標準品類:選
57、擇任一物聯網平臺預定義的品類,快速完成產品的功能定義。選擇產品模板后,您可以在該模板基礎上,編輯、修改、新增功能。自定義品類:需根據實際需要,定義產品功能。若您需要的網關沒有特殊功能定義,建議您選擇自定義品類。產品描述可輸入文字,用來描述產品信息。字數限制為100??梢詾榭?。產品創建成功后,頁面自動跳轉回新增實例頁面,并且網關產品參數下自動分配了剛創建的網關產品。d)在網關設備中選擇已有的網關設備或單擊新建網關設備創建一個新的網關設備。物聯網邊緣計算中的新建網關設備功能繼承物聯網平臺設備管理 設備的功能。說明:30文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建選擇網關產品后,新
58、增實例對話框才會出現參數網關設備。e)非新建網關設備請忽略本步操作。根據界面提示設置參數后,單擊確認。表 2-11:參數說明參數描述產品新添加網關設備所屬產品的名稱,此處系統已自動關聯上一步創建的網關產品。文檔版本:2020061031物聯網邊緣計算用戶指南/2 環境搭建參數描述設備名稱為該網關設備命名。設備名稱需保持產品內唯一。如不填寫,系統將自動生成。說明:設備名稱長度為432個字符,可包含英文字母、數字和特殊字符,包括短劃線(-)、下劃線(_)、at()、英文句點(.)和英文冒號(:)。f)根據所搭建的環境,選擇對應的Link IoT Edge產品規格。Link IoT Edge的產品規
59、格,請參見物聯網邊緣計算產品簡介 文檔中產品規格章節。g)(可選)在新增實例頁面,單擊新增標簽,可以設置實例標簽。通過標簽您可以更加有效地歸類及識別實例。您也可以不設置標簽。若設置實例標簽,請填寫標簽key和標簽value。表 2-12:參數說明參數描述標簽key不可為空,僅支持英文字母大小寫,長度不超過20個字符,同一個邊緣實例不可以重復定義標簽key。標簽value不可為空,支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。4.實例參數設置完成后,單擊確定,至此您已創建邊緣實例和網關。安裝并啟動Link IoT Edge根據本文上方創
60、建邊緣實例和網關內容,完成邊緣實例創建并分配網關后,您需要在網關上安裝并啟動Link IoT Edge。1.登錄您的x86_64 Ubuntu 16.04機器。2.以root用戶執行以下命令解壓并安裝Link IoT Edge軟件包。sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge-standard.sh&sudo./link-iot-edge-standard.sh-install armv7-hf v2.4.2&sudo./link-iot-edge-standard.sh-config YourPro
61、ductKey YourDeviceName YourDeviceSecret&sudo./link-iot-edge-standard.sh-start說明:請將YourProductKey YourDeviceName YourDeviceSecret替換為已在本地保存的網關設備的設備證書信息。32文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建例如,網關設備證書信息為ProductKey:a1*gs、DeviceName:gateway、DeviceSecret:2Px*H1S,則執行的實際命令如下:sudo curl-O http:/link-iot-edge-packe
62、t.oss-cn- chmod+x link-iot-edge-standard.sh&sudo./link-iot-edge-standard.sh-install armv7-hf v2.4.2&sudo./link-iot-edge-standard.sh-config a1*gs gateway 2Px*H1S&sudo./link-iot-edge-standard.sh-start3.配置網關連接地址。cd/linkedge/gateway/build/bin&./tool_config-s gw_system_as_host MQTT連接host&./tool_config-s
63、gw_system_as_port MQTT連接端口&./tool_config-s gw_system_ver_ca 0&./tool_config-s gw_remoteaccess_cloud_host 遠程隧道連接host&./tool_config-s gw_remoteaccess_cloud_port 遠程隧道連接端口&./tool_config-s gw_remoteaccess_tls_type 0說明:請將MQTT連接host MQTT連接端口 遠程隧道連接host 遠程隧道連接端口替換為實際連接的host和端口。4.重啟Link IoT Edge核心服務。cd/linke
64、dge/gateway/build/scriptsudo./iot_gateway_stop.sh allsudo./iot_gateway_start.sh5.執行如下命令查看Link IoT Edge核心服務的運行狀態。cd/linkedge/gateway/build/scriptsudo./iot_gateway_status.sh您也可以在物聯網平臺控制臺,左側導航欄選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看進入實例詳情頁面,選擇網關,查看網關狀態。6.(可選)在實例詳情頁面選擇網關,打開遠程訪問按鈕后,可對網關進行遠程管理,詳細步驟請參見遠程運維管理。文檔版本:202
65、0061033物聯網邊緣計算用戶指南/2 環境搭建使用systemd管理Link IoT Edge您可以使用systemd來管理Link IoT Edge服務的啟動(start)、停止(stop)和查看狀態(status)。Link IoT Edge的systemd service如下所示。UnitDescription=Link IoT EdgeServiceType=forkingRestart=on-failureExecStart=/linkedge/gateway/build/script/iot_gateway_start.shExecReload=/linkedge/gatewa
66、y/build/script/iot_gateway_start.shExecStop=/linkedge/gateway/build/script/iot_gateway_stop.shInstallWantedBy=multi-user.target您可運行如下命令下載該service文件,并拷貝到/etc/systemd/system/目錄。wget http:/iotedge-web.oss-cn- cp LinkIoTEdge.service/etc/systemd/system/LinkIoTEdge.service可以使用如下命令啟動或者重啟服務。啟動命令:sudo system
67、ctl start LinkIoTEdge.service重啟命令:sudo systemctl restart LinkIoTEdge.service可以使用如下命令停止服務。sudo systemctl stop LinkIoTEdge.service可以使用如下命令設置開機自動啟動服務。sudo systemctl enable LinkIoTEdge.service下一步環境搭建完成后,您可以根據設備接入部分內容,把您的設備接入到物聯網邊緣計算,請參見設備接入。同時也可以為邊緣實例分配其他資源(如函數計算、消息路由等)管理您的設備。接入設備或分配其他資源到邊緣實例后,需要根據如下步驟部
68、署邊緣實例。1.在實例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。2.當部署狀態顯示為部署成功,表示部署實例完成。您可以通過單擊實例詳情頁面右上角的查看部署日志,查看歷史部署情況。34文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建2.3 輕量版搭建環境本文介紹基于Ubuntu 16.04系統搭建Link IoT Edge輕量版本(LE Lite)運行環境的方法。前提條件Link IoT Edge的遠程登錄功能依賴設備的SSH服務,請確保設備上已經開啟了SSH服務。SSH的詳細信息可參考OpenSSH的使用。請確保設備的本地環回端口已啟用,即在設備上執行pin
69、g 127.0.0.1命令時,返回結果正常。創建邊緣實例和網關1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例。3.新增一個邊緣實例。單擊新增實例,在彈出對話框中設置相關參數。a)在實例名稱下輸入新增實例的名稱。說明:文檔版本:2020061035物聯網邊緣計算用戶指南/2 環境搭建實例名稱支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。b)在網關產品下拉框中為實例選擇已有網關產品或者單擊新建網關產品新增一個網關產品。物聯網邊緣計算中的網關承載邊緣計算能力,每個實例必須分配一個網關設備,并且該網關設備同一時間只能被分配到
70、一個邊緣實例。c)非新建網關產品請忽略本操作。在創建產品頁面中,設置網關產品參數,然后單擊完成。物聯網邊緣計算中的新建網關產品,繼承了物聯網平臺設備管理 產品中的產品功能,此處已自動為您簡化了創建產品的步驟,以便您更快速地創建適合物聯網邊緣計算中使用的網關產品。36文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建表 2-13:參數說明參數說明產品名稱為網關產品設置名稱,用于后續的查詢及識別網關產品。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()、英文圓括號(),長度限制430位,一個中文漢字算2位。文檔版本:2020061037物聯網邊緣計算用戶指南/2 環境搭建
71、參數說明所屬品類選擇品類,為該產品定義物模型??蛇x擇的值為:標準品類:選擇任一物聯網平臺預定義的品類,快速完成產品的功能定義。選擇產品模板后,您可以在該模板基礎上,編輯、修改、新增功能。自定義品類:需根據實際需要,定義產品功能。若您需要的網關沒有特殊功能定義,建議您選擇自定義品類。產品描述可輸入文字,用來描述產品信息。字數限制為100??梢詾榭?。產品創建成功后,頁面自動跳轉回新增實例頁面,并且網關產品參數下自動分配了剛創建的網關產品。d)在網關設備中選擇已有的網關設備或單擊新建網關設備創建一個新的網關設備。物聯網邊緣計算中的新建網關設備功能繼承物聯網平臺設備管理 設備的功能。說明:38文檔版本
72、:20200610物聯網邊緣計算用戶指南/2 環境搭建選擇網關產品后,新增實例對話框才會出現參數網關設備。e)非新建網關設備請忽略本步操作。根據界面提示設置參數后,單擊確認。表 2-14:參數說明參數描述產品新添加網關設備所屬產品的名稱,此處系統已自動關聯上一步創建的網關產品。文檔版本:2020061039物聯網邊緣計算用戶指南/2 環境搭建參數描述設備名稱為該網關設備命名。設備名稱需保持產品內唯一。如不填寫,系統將自動生成。說明:設備名稱長度為432個字符,可包含英文字母、數字和特殊字符,包括短劃線(-)、下劃線(_)、at()、英文句點(.)和英文冒號(:)。f)根據所搭建的環境,選擇對應
73、的Link IoT Edge產品規格。Link IoT Edge的產品規格,請參見物聯網邊緣計算產品簡介 文檔中產品規格章節。g)(可選)在新增實例頁面,單擊新增標簽,可以設置實例標簽。通過標簽您可以更加有效地歸類及識別實例。您也可以不設置標簽。若設置實例標簽,請填寫標簽key和標簽value。表 2-15:參數說明參數描述標簽key不可為空,僅支持英文字母大小寫,長度不超過20個字符,同一個邊緣實例不可以重復定義標簽key。標簽value不可為空,支持中文、英文字母大小寫、數字、下劃線(_)和短劃線(-),長度不超過20個字符,1個中文漢字算2個字符。4.實例參數設置完成后,單擊確定,至此您
74、已創建邊緣實例和網關。安裝并啟動Link IoT Edge根據本文上方創建邊緣實例和網關部分,完成邊緣實例的創建和網關分配后,您需要在網關上安裝并啟動Link IoT Edge。1.登錄您的x86_64 Ubuntu 16.04機器。2.以root用戶執行以下命令解壓并安裝Link IoT Edge軟件包。sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-iot-edge-lite.sh&./link-iot-edge-lite.sh-install x86-64 v2.4.2&./link-iot-edge-lite.sh
75、-start YourProductKey YourDeviceName YourDeviceSecret說明:請將YourProductKey YourDeviceName YourDeviceSecret替換為已在本地保存的網關設備的設備證書信息。40文檔版本:20200610物聯網邊緣計算用戶指南/2 環境搭建例如,網關設備證書信息為ProductKey:a1*gs、DeviceName:gateway、DeviceSecret:2Px*H1S,則執行的實際命令如下:sudo curl-O http:/link-iot-edge-packet.oss-cn- chmod+x link-i
76、ot-edge-lite.sh&./link-iot-edge-lite.sh-install x86-64 v2.4.2&./link-iot-edge-lite.sh-start a1*gs gateway 2Px*H1S3.配置網關連接地址。cd/linkedge/gateway/build/bin&./tool_config-s gw_system_as_host MQTT連接host&./tool_config-s gw_system_as_port MQTT連接端口&./tool_config-s gw_system_ver_ca 0&./tool_config-s gw_remo
77、teaccess_cloud_host 遠程隧道連接host&./tool_config-s gw_remoteaccess_cloud_port 遠程隧道連接端口&./tool_config-s gw_remoteaccess_tls_type 0說明:請將MQTT連接host MQTT連接端口 遠程隧道連接host 遠程隧道連接端口替換為實際連接的host和端口。4.重啟Link IoT Edge核心服務。cd/linkedge/gateway/build/scriptsudo./iot_gateway_stop.sh allsudo./iot_gateway_start.sh5.執行如下
78、命令查看Link IoT Edge核心服務的運行狀態。cd/linkedge/gateway/build/scriptsudo./iot_gateway_status.sh您也可以在物聯網平臺控制臺,左側導航欄選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看進入實例詳情頁面,選擇網關,查看網關狀態。6.(可選)在實例詳情頁面選擇網關,單擊操作欄下的遠程連接,可對網關進行遠程管理,詳細步驟請參見遠程運維管理。文檔版本:2020061041物聯網邊緣計算用戶指南/2 環境搭建使用systemd管理Link IoT Edge下載service文件。wget http:/remote-acce
79、ss-oxs.oss-cn- cp LinkIoTEdgeLite.service/etc/systemd/system/LinkIoTEdgeLite.service啟動Link IoT Edge。sudo systemctl start LinkIoTEdgeLite.service停止Link IoT Edge。sudo systemctl restart LinkIoTEdgeLite.service開機自啟動Link IoT Edge。sudo systemctl enable LinkIoTEdgeLite.service下一步1.實例詳情頁面單擊設置頁簽,并在實例信息下,打開遠程
80、訪問后的按鈕。2.實例詳情頁面單擊網關頁簽,在網關名稱右側的操作欄中單擊遠程連接、遠程文件管理或者更多遠程服務,遠程控制網關設備或對網關設備上的文件進行管理。詳細說明請參見遠程運維管理。42文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入3 設備接入3.1 設備接入簡介設備接入是Link IoT Edge提供的基礎能力,設備接入模塊在Link IoT Edge中稱為驅動(driver)或設備接入驅動。所有連接到Link IoT Edge的設備都需要通過驅動實現接入。設備接入驅動在Link IoT Edge框架位置如圖所示。設備接入驅動一個完整的驅動(設備接入模塊)由設備的連接管理
81、、設備的數據(協議)轉換和設備的數據交互三個模塊組成。連接管理指設備與網關建立通信連接。Link IoT Edge不限制建立通信連接的協議,您可根據業務需求靈活選擇。數據轉換指設備接入驅動將獲取到的終端設備數據轉換為符合阿里云IoT物模型規范的數據格式,并上報到阿里云IoT Cloud。阿里云物聯網平臺物模型規范請參考 物聯網平臺用戶指南 文檔設備接入 物模型下的所有章節。數據與命令處理指驅動可以處理云端對于設備的操作請求,并完成對設備的服務調用和處理調用結果,最終將結果返回到阿里云物聯網平臺。設備接入驅動是Link IoT Edge中獨立的服務模塊,您可以根據業務協議需求開發自定義設備接入驅
82、動。下圖展示了自定義驅動的功能和數據流向,并指出了開發一個自定義驅動需要做的開發工作。文檔版本:2020061043物聯網邊緣計算用戶指南/3 設備接入驅動使用介紹Link IoT Edge針對不同用戶需求提供了兩種形態的驅動。一是由Link IoT Edge提供常用協議驅動(又稱官方驅動),如Modbus、OPC UA驅動。二是提供設備接入驅動開發SDK,設備廠商或開發者使用驅動開發SDK開發私有協議驅動(又稱自定義驅動)。您可通過示例驅動提供的兩個官方示例驅動快速熟悉驅動使用流程,具體操作步驟,請參見示例驅動。44文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入Link Io
83、T Edge提供官方驅動,官方驅動是由阿里云提供的通信協議驅動,包括Modbus、OPC UA官方驅動。您可以使用官網驅動做設備接入,具體操作步驟,請參見官方驅動。Link IoT Edge也提供設備接入SDK,您可以使用設備接入SDK,完成自定義協議驅動的開發。詳細介紹,請參見驅動開發。3.2 示例驅動本章介紹Link IoT Edge提供的Light和LightSensor兩個示例驅動,通過這兩個示例驅動幫助您快速熟悉驅動的使用流程。Light驅動是Link IoT Edge提供的一款智能燈的模擬驅動。Light驅動支持智能燈的開關操作,可以用于模擬燈設備。LightSensor驅動是Li
84、nk IoT Edge提供的一款光照度傳感器的模擬驅動,光照強度數據按照一定周期重復,可以用于模擬光照度傳感器設備。文檔版本:2020061045物聯網邊緣計算用戶指南/3 設備接入示例驅動使用方法1.分配驅動和子設備到邊緣實例。a)登錄物聯網平臺控制臺。b)在左側導航欄選擇邊緣計算 邊緣實例,在實例列表中找到待分配驅動和子設備的邊緣實例,單擊操作欄下的查看,進入實例詳情頁面。單擊設備與驅動頁簽,單擊全部驅動右側的“+”圖標,選擇官方驅動分配驅動名稱為Light的驅動到邊緣實例。c)(可選)選擇Light驅動,單擊設備列表右側的驅動配置,可對當前驅動進行配置。配置完成后單擊確定。本示例可以不進
85、行驅動配置。46文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入表 3-1:參數說明參數描述配置格式配置格式有如下三種:鍵值對配置單擊新增配置,通過設置配置名稱、值、注釋來配置驅動。最多添加100個鍵值對。JSON格式編寫JSON格式配置內容,內容不超過1 KB。編寫內容完成后需要單擊校驗格式,通過校驗。配置文件需要在本地編寫配置文件,并上傳。d)選擇Light驅動,單擊分配子設備,為邊緣實例分配子設備。在右側彈出的分配子設備對話框中,單擊添加子設備。e)在添加設備對話框中,單擊新建產品,創建客廳燈產品。文檔版本:2020061047物聯網邊緣計算用戶指南/3 設備接入表 3-2
86、:參數說明參數描述產品名稱此處設置為客廳燈。所屬品類選擇品類,為該產品定義物模型。此處選擇智能生活 電工照明 燈。接入網關協議此處選擇自定義。48文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述認證方式選擇適合您設備的認證方式。f)在添加設備對話框中,產品自動分配已創建的客廳燈產品,在DeviceName輸入Light后單擊確定,添加一個客廳燈設備。g)在分配子設備對話框中,分配客廳燈產品下的Light設備到邊緣實例中。h)參考分配Light驅動和客廳燈產品及其設備的步驟,分配LightSensor官方示例驅動到邊緣實例,并在該驅動下創建名稱為光照度傳感器的產品和名稱為L
87、ightSensor的設備。創建光照度傳感器產品的參數設置如下所示。參數描述產品名稱設置為光照度傳感器。所屬品類此處選擇智能生活 家居安防 光照度傳感器。接入網關協議此處選擇自定義。文檔版本:2020061049物聯網邊緣計算用戶指南/3 設備接入參數描述認證方式選擇適合您設備的認證方式。至此您已成功分配LightSensor設備和Light設備到邊緣實例。i)(可選)分配設備到邊緣實例后,單擊設備名稱對應操作欄中的設備配置,可對當前設備進行配置,例如配置設備序列號,方便驅動處理指定序列號設備的相關信息。本示例可以不進行設備配置。編寫JSON格式配置內容(內容不可超過1 KB),在校驗格式通過
88、后,單擊確定,完成配置。2.部署邊緣實例。在實例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。您可以通過部署進程來查看部署進度及結果。3.查看設備上線狀態。部署實例后,您可以在實例的設備與驅動 全部驅動的設備列表中看到Light設備和LightSensor設備狀態已顯示在線。50文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入4.查看設備運行狀態。分別單擊LightSensor驅動和Light驅動下設備右側操作欄中的查看,系統跳轉到Light設備的設備詳情頁面。您可以查看具體的設備詳情,單擊物模型數據頁簽下的運行狀態,看到設備數據已經發送至云端。LightSen
89、sor運行狀態如下所示。Light設備狀態如下所示。至此,您已經完成示例驅動設備接入操作流程。如果您想進一步熟悉官方驅動和驅動開發,請參考官方驅動和驅動開發章節。如果您想了解更多業務邏輯的開發和運行框架,可參考邊緣應用和場景聯動章節內容。3.3 官方驅動文檔版本:2020061051物聯網邊緣計算用戶指南/3 設備接入3.3.1 Modbus驅動Link IoT Edge提供Modbus官方驅動,用于支持工業領域廣泛應用的Modbus通信協議設備。本文主要介紹Modbus驅動及其用法。概覽Modbus是常用的應用層數據通信協議,阿里云官方Modbus驅動(以下簡稱Modbus驅動)支持Modb
90、us-RTU和Modbus-TCP兩種交互。Modbus驅動可以直接連接Modbus從設備,示意圖如下所示。Modbus驅動也可以通過Modbus網關連接Modbus從設備,示意圖如下所示。Modbus驅動支持的功能有讀取輸入狀態和輸入寄存器,讀/寫線圈狀態和保持寄存器。Link IoT Edge提供C和Python語言Modbus驅動,同時根據CPU架構的不同,有多種C語言Modbus驅動。您可以直接從控制臺部署Modbus驅動到網關,也可以從控制臺下載Modbus驅動代碼進行修改,作為您的自定義驅動使用。本文以示例方式介紹Modbus官方驅動的使用步驟,具體操作如下文所示。說明:使用Mod
91、bus官方驅動之前請確保已根據環境搭建內容,創建邊緣實例并上線網關。一、分配驅動1.登錄物聯網平臺控制臺。52文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入2.在左側導航欄選擇邊緣計算 邊緣實例,在實例列表中選擇已創建的邊緣實例,單擊右側的查看。3.在實例詳情頁面,單擊設備與驅動頁簽,然后單擊全部驅動右側的“+”圖標。4.在彈出的分配驅動中,選擇官方驅動,根據網關CPU架構選擇需要使用的Modbus驅動,單擊對應操作欄中的分配。然后單擊關閉。二、配置驅動1.單擊已分配的Modbus驅動,在設備列表右側單擊驅動配置。2.單擊添加通道,根據界面提示設置參數,參數設置完成后單擊確定,
92、然后單擊關閉。通道是網關與具體物理設備之間的連接介質。具體參數說明如下表所示。參數描述通道名稱設置通道名稱,需在網關維度具有唯一性。支持中文漢字、英文字母、數字和下劃線(_),長度不超過130個字符,1個中文漢字算2個字符。傳輸模式支持RTU和TCP兩種。當傳輸模式為RTU時,需設置以下參數:串口設置串口,如/dev/ttyUSB0、/dev/ttyUSB1。支持英文字母、數字、正斜杠(/)和下劃線(_),長度限制164字符。波特率表示每秒傳送的符號個數,從下拉列表中選擇。數據位表示一組數據實際包含的數據位數,從下拉列表中選擇。文檔版本:2020061053物聯網邊緣計算用戶指南/3 設備接入
93、參數描述校驗位從下拉列表中選擇奇偶校驗、或者無校驗。停止位用于表示單個包的最后一位,從下拉列表中選擇。當傳輸模式為TCP時,需設置以下參數:IP地址輸入點分十進制格式的地址。端口號輸入165535范圍的整數。3.(可選)在設備列表右側,單擊容器配置,根據如下參數說明,對當前驅動進行容器配置。配置完成后單擊保存。說明:僅在產品規格為專業版的邊緣實例中,允許設置容器配置。參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。是:表示不隔離容器的網絡,直接使用宿主機網絡環境。否:表示隔離容器的網絡,需要設置網絡端口映射。網絡端口映射當是否使用宿主機host模式為否時出現的
94、參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿主機容器內的fc-http-server函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序,無法通過訪問宿主機的80端口,訪問到fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主機的IP地址:8080,訪問到容器內部的f
95、c-http-server函數。54文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。說明:特權模式下,容器內部擁有宿主機的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文
96、件系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。三、驅動關聯子設備1.單擊設備列表頁面中的分配子設備,在Modbus驅動下為邊緣實例分配設備。您可以分配已有的Modbus設備,也可以根據下面的步驟,新建Modbus設備。說明:分配已有的Modbus設備時,該設備所屬產品必須接入網關,且接入網關協議為Modbus。詳細說明請參見 物聯網平臺用戶指南 中設備接入 創建產品下的所有章節。2.在右側彈出的分配子設備對話框中,單擊添加子設備。文檔版本:2020061055物聯網邊緣計算用戶指南/3 設備接入3.在添加設備對話
97、框,單擊新建產品,創建Modbus設備所屬產品。56文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入4.在創建產品對話框設置參數后,單擊完成。表 3-3:參數說明參數描述產品名稱設置產品名稱,產品名稱在賬號內具有唯一性。支持中文、英文字母、數字、下劃線(_)、連接號(-)、符號和英文圓括號,長度限制430個字符,一個中文漢字算2個字符。文檔版本:2020061057物聯網邊緣計算用戶指南/3 設備接入參數描述所屬品類選擇品類,為該產品定義物模型,物聯網平臺物模型規范請參見 物聯網平臺用戶指南 中設備接入 物模型下的所有章節。此處選擇自定義品類。接入網關協議此處必須選擇Modbus
98、。認證方式選擇適合您設備的認證方式。詳情請參見 物聯網平臺用戶指南中設備接入 設備安全認證下的所有章節。5.在添加設備對話框,產品自動分配已創建的產品,單擊產品下的前往配置,為產品添加自定義功能。說明:您也可以使用 物聯網平臺用戶指南 中設備接入 官方驅動 Modbus調試工具章節配置Modbus產品,但需要先完成添加設備并分配到邊緣實例的操作,再使用調試工具。系統跳轉到產品詳情頁面的功能定義頁簽下,單擊編輯草稿,然后單擊添加自定義功能。參考物聯網平臺用戶指南 文檔中設備管理 物模型 單個添加物模型,在添加自定義功能對話框,根據實際情況設置屬性參數。58文檔版本:20200610物聯網邊緣計算
99、用戶指南/3 設備接入6.在配置物模型屬性的過程中,單擊新增擴展描述設置如下擴展描述參數,將屬性映射到寄存器中,配置完成后單擊確認。官方Modbus驅動會將所有的屬性聚合為Modbus數據請求,驅動收到Modbus數據之后再轉換為物模型數據。參數說明如下所示,詳細的參數解釋請參見 物聯網平臺用戶指南 文檔中設備管理 物模型 單個添加物模型中擴展描述的說明。名稱描述操作類型指操作Modbus的功能碼。此處選擇保持寄存器(讀寫,讀取使用0 x03,寫入使用0 x06)。寄存器地址填寫十六進制,以0 x開頭。根據您自己設備的屬性地址設置寄存器地址。例如,要調試溫度屬性,您設備的溫度屬性地址為1,則寄
100、存器地址可設置為0 x1。原始數據類型如采集的溫度值的數據類型為浮點型。取值范圍取值范圍指的是原始數據經過縮放因子處理之后的取值范圍,超出取值范圍的數據會被丟棄。交換寄存器內高低字節此處設置為true。交換寄存器順序此處設置為false??s放因子指縮放系數,如采集的值為100,但真實的值為10,因此需要縮放10倍,故縮放因子填寫0.1即可。如放大10倍(即真實的值為1000),則放大因子為10。數據上報方式有兩種數據上報方式。按時上報:根據采集間隔指定的時間采集并上報。變更上報:采集后的值發生變化后才會上報。文檔版本:2020061059物聯網邊緣計算用戶指南/3 設備接入7.返回實例詳情頁面
101、,添加DeviceName。8.將新建的Modbus設備分配到邊緣實例。60文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入9.分配設備到邊緣實例后,單擊設備名稱對應操作欄中的設備配置,通過關聯通道,關聯設備與Modbus驅動。表 3-4:參數說明參數描述關聯通道選擇已創建的通道。請參見二、配置驅動中步驟2。從站號從站號是Modbus設備標識信息,在同一個通道中是唯一的。數據采集間隔Modbus協議是半雙工協議,由網關主動請求數據,因此需要指定對數據點的采集間隔時間。單位為毫秒。說明:單個屬性點的采集耗時時間大概為60毫秒(ms),則采集間隔的計算方式為:采集耗時時間(60 ms
102、)*該通道的所有屬性點個數例如,當前Modbus總線通道上有10個設備,且每個設備有10個屬性點,即采集間隔時間應大于等于6000 ms(60 ms*10*10=6000ms),這樣才能保證每個屬性點能正常上報。四、部署邊緣實例1.(可選)在部署實例前,可以使用 物聯網平臺用戶指南 中設備接入 官方驅動 Modbus調試工具章節,測試網關能否連接該Modbus設備,同時也可以測試Modbus設備所屬產品的物模型是否配置正確。2.在實例詳情頁面,單擊右上角部署,重新部署邊緣實例。文檔版本:2020061061物聯網邊緣計算用戶指南/3 設備接入常見問題Modbus官方驅動上報消息到云端時,是按照
103、設備維度上報,還是屬性維度上報?答:Modbus官方驅動在每個采集周期內,按照設備維度進行采集和上報數據。例如,1個Modbus設備有100個屬性,數據采集間隔為5秒,那么Modbus驅動每5秒上報云端1條消息(因為是1個設備)。3.3.2 Modbus調試工具Modbus調試工具用于測試網關能否連接指定的Modbus設備,同時也可以測試該Modbus設備所屬產品的物模型是否配置正確。前提條件請您確保已根據環境搭建內容創建完成邊緣實例。根據官方驅動的內容,為邊緣實例分配Modbus驅動和子設備。操作步驟1.登錄物聯網平臺控制臺。2.單擊左側導航欄中邊緣計算 邊緣實例。找到已分配Modbus設備
104、的實例,單擊對應操作欄中的查看。3.在實例詳情頁面單擊設備與驅動頁簽,選擇全部驅動下的Modbus驅動,單擊設備名稱右側的調試。62文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入4.在通信通道調試頁面,單擊添加屬性點,配置調試。線圈配置參數說明如下:表 3-5:線圈參數說明參數描述地址線圈的地址。十六進制,以0 x開頭。根據您自己設備的屬性地址設置線圈地址。例如,要調試溫度屬性,您設備的溫度屬性地址為1,則線圈地址可設置為0 x1。屬性名稱方便閱讀的功能名稱。設置屬性名稱,并保存配置后,在該調試設備所屬產品的產品詳情頁面功能定義頁簽自定義功能區域框中,功能名稱一列中可看到已設置
105、的屬性名稱。讀取功能碼用于讀取或輸入該線圈狀態的功能碼。寫入功能碼用于寫入該線圈的功能碼。說明:讀取功能碼設置為0 x02(輸入狀態)的線圈不支持此功能。當前值顯示被調試的Modbus設備所屬產品物模型中設置的測量值,例如光照度、溫度、濕度等的當前值。文檔版本:2020061063物聯網邊緣計算用戶指南/3 設備接入參數描述操作-讀?。合蚓W關發送讀取測量值的指令。網關會嘗試向該設備發送讀取指令并將結果返回到當前值一欄。-寫入:向網關發送寫入測量值的指令。網關會嘗試向該設備發送寫入指令,并根據結果更新當前值一欄。說明:讀取功能碼設置為0 x02(輸入狀態)時不支持寫入指令。-刪除:從設備所屬產品
106、的物模型中刪除此線圈。注意:執行刪除操作,并保存配置后,該操作會影響此產品下的所有設備。寄存器配置參數說明如下所示。表 3-6:寄存器參數說明參數描述地址屬性的起始地址。十六進制,以0 x開頭。注意:添加多個配置項時寄存器地址不可重疊,若產生重疊,在保存配置時會提示配置異常。根據您自己設備的屬性地址設置寄存器地址。例如,要調試溫度屬性,您設備的溫度屬性地址為1,則寄存器地址可設置為0 x1。屬性名稱方便閱讀的功能名稱。讀取功能碼用于讀取該寄存器的功能碼。64文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述寫入功能碼用于寫入該寄存器的功能碼。說明:-讀取功能碼設置為0 x0
107、4(輸入寄存器)的寄存器不支持此功能。-對于除int16和uint16之外的數據類型,如果想要寫入保持寄存器,請選擇0 x10功能碼。數據類型寄存器的數據類型,可選數據類型有int16、uint16、int32、uint32、int64、uint64、float、double。不同數據類型使用的寄存器個數不同,如本文下方“各數據類型寄存器個數說明”表格所示。單位選擇被調試Modbus設備的測量值單位。當前值顯示被調試Modbus設備的所屬產品物模型中設置的測量值,例如光照度、溫度、濕度等的當前值。文檔版本:2020061065物聯網邊緣計算用戶指南/3 設備接入參數描述操作-讀?。合蚓W關發送讀
108、取測量值的指令。網關會嘗試向該設備發送讀取指令并將結果返回到當前值一欄。-寫入:向網關發送寫入指令,輸入十進制數字。網關會嘗試向該設備發送寫入指令,并根據結果更新當前值一欄。說明:讀取功能碼設置為0 x04(輸入寄存器)時不支持寫入指令。-高級:為寄存器配置更多配置項,參數說明請參考本文下方“高級參數配置說明”表格。-刪除:從設備所屬產品的物模型中刪除此寄存器。注意:執行刪除操作,并保存配置后,該操作會影響此產品下的所有設備。表 3-7:高級參數配置說明參數描述交換字節此開關控制解析寄存器內部的字節順序。系統默認使用大端序(big-endian)的解析方式。-true:使用小端序(little
109、-endian)的解析方式。-false:使用大端序的解析方式。示例1,當寫入12345時,對應的十六進制值為0 x3039,當該功能設置為false時,發送/接收順序為30 39;設置為true時,發送/接收順序為39 30。示例2,若使用0 x10功能碼向slaveID為1的從站發送寫入保持寄存器的RTU報文,當該功能設置為false時,報文完整內容是:01 10 0200 01 30 39 F7 E1;設置為true時,報文完整內容是:01 10 02 0001 39 30 33 14。交換寄存器此開關控制解析寄存器的順序(僅在除int16、uint16的數據類型中有效)。系統默認認為較
110、高位的數值在較低地址的寄存器中,因此先解析較低地址的寄存器,即先發送較高位的數據。例如,發送int64數據類型的數據:0 x1234567890ABCDEF到設備端,會拆分成4個寄存器發送(假設上文中交換字節設置為false),當該功能設置為false時,發送順序為12 34 56 78 90 ABCD EF;設置為true時,發送順序為CD EF 90 AB 56 78 12 34。66文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述縮放因子設置如何縮放設備的原始數據。通常情況下,浮點運算性能較差時會以整數型表示浮點型,如果設備使用此方案,則可以使用縮放因子縮放設備的原
111、始數據。例如設備使用1234表示12.34時,縮放因子參數應當設置為0.01。此時所有向該設備設置的數值,會被自動乘以100并發送到設備上,當云端或控制臺設置12.34數值時,驅動會自動將12.34轉換為1234發送到設備上。反過來,設備發送的1234也會被驅動轉換為12.34發送到云端或其他設備上。表 3-8:各數據類型寄存器個數說明數據類型暫用寄存器個數描述int16116位有符號整型uint16116位無符號整型int32232位有符號整型uint32232位無符號整型int64464位有符號整型uint64464位無符號整型float2單精度浮點型(32位)double4雙精度浮點型(
112、64位)5.配置調試完成后,單擊保存配置,將產品的功能定義更新到服務器中。系統彈出保存成功的提示,表示數據已經保存到服務器中。說明:保存配置后,配置項所設置的內容會在該調試設備所屬產品的產品詳情頁面功能定義頁簽的自定義功能區域框中,生成一條自定義功能,該條自定義功能中的標識符,是在保存配置后系統自動生成標識符。生成原理如下:標識符是物模型中Identifier參數的值,Identifier參數是由:寄存器類型_4位十六進制地址該規范生成。例如,設置配置項中的讀取功能碼為01時,寄存器類型為coilStatus;設置地址為0 x00,則4位十六進制地址是0000,因此Identifier的值(即
113、標識符)為coilStatus_0000。其他操作重置:在配置調試頁面左下方單擊重置,可重置當前已配置的內容文檔版本:2020061067物聯網邊緣計算用戶指南/3 設備接入通道設置:在配置調試頁面右上方單擊通道設置,可修改該Modbus通信通道的參數,設置完成后需單擊確定保存修改。調試日志:在通信通道調試頁面選擇調試日志,可查看調試日志信息;單擊清屏可清除該頁面日志信息。功能碼與寄存器/線圈類型對應表類型功能碼對應操作類型(operateType)線圈(線圈狀態)0 x01coilState輸入狀態(輸入線圈)0 x02inputState保持寄存器0 x03holdingRegister輸
114、入寄存器0 x04inputRegister3.3.3 OPC UA驅動Link IoT Edge產品提供用于接入OPC UA設備的驅動(簡稱OPC UA驅動)。您可以直接從控制臺部署OPC UA驅動到網關,也可以從控制臺下載OPC UA驅動代碼進行修改,作為您的自定義驅動使用。前提條件已在網關上安裝python3.5.2運行時環境,安裝完成后,OPC UA驅動才能支持在Link IoT Edge標準版上運行。概述OPC UA驅動和OPC UA設備的連接是通過OPC UA服務器關聯的,OPC UA驅動通過操作OPC UA服務器對外暴露的協議接口操作OPC UA設備,示意圖如下所示。本文以示例方
115、式介紹OPC UA官方驅動的使用步驟,具體操作如下文所示。68文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入說明:使用OPC UA官方驅動之前請確保已根據環境搭建內容,創建邊緣實例并上線網關。一、分配驅動1.登錄物聯網平臺控制臺。2.選擇邊緣計算 邊緣實例。3.在邊緣實例頁面,選擇選擇已創建的邊緣實例,單擊右側的查看。4.在實例詳情頁面,單擊設備與驅動頁簽,然后單擊全部驅動右側的“+”圖標。5.在分配驅動對話框中,選擇官方驅動,找到OPC UA驅動,單擊對應操作欄中的分配。然后單擊完成。二、配置驅動1.單擊已分配的OPC UA驅動,在設備列表右側單擊驅動配置。2.在彈出對話框中
116、單擊添加通道。3.根據界面提示設置參數,然后單擊確定。參數描述通道名稱需在網關維度具有唯一性。支持中文、英文字母、數字和下劃線,長度限制130,中文算2位。通道地址如opc.tcp:/localhost:4840。安全策略指加密算法策略。有無、Basic128Rsa15、Basic256三種。安全模式指簽名類型。有無、Sign、SignAndEncrypt三種。用戶名非必填。密碼非必填。方法調用超時時間單位為秒。4.(可選)在設備列表右側,單擊容器配置,根據如下參數說明,對當前驅動進行容器配置。配置完成后單擊保存。說明:文檔版本:2020061069物聯網邊緣計算用戶指南/3 設備接入僅在產品
117、規格為專業版的邊緣實例中,允許設置容器配置。參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。是:表示不隔離容器的網絡,直接使用宿主機網絡環境。否:表示隔離容器的網絡,需要設置網絡端口映射。網絡端口映射當是否使用宿主機host模式為否時出現的參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿主機容器內的fc-http-server函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序,無法通過訪
118、問宿主機的80端口,訪問到fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主機的IP地址:8080,訪問到容器內部的fc-http-server函數。是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。說明:特權模式下,容器內部擁有宿主機的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。
119、設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文件系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。70文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入三、驅動關聯子設備1.單擊設備列表頁面中的分配子設備,在OPC UA驅動下為邊緣實例分配設備。您可以分配已有的OPC UA設備,也可以根據下面的步驟,新建OPC UA設備。說明:分配已有的OPC UA設備時
120、,該設備所屬產品必須接入網關,且接入網關協議為OPC UA。詳細說明請參見 物聯網平臺用戶指南 文檔設備接入 創建產品章節。2.在右側彈出的分配子設備中,單擊添加子設備。3.在添加設備對話框,單擊新建產品,創建OPC UA設備所屬產品。文檔版本:2020061071物聯網邊緣計算用戶指南/3 設備接入4.在創建產品對話框設置參數后,單擊完成。表 3-9:參數說明參數描述產品名稱設置產品名稱,產品名稱在賬號內具有唯一性。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()和英文圓括號(()),長度限制430,一個中文漢字算2位。72文檔版本:20200610物聯網邊緣計算用戶指南/3
121、設備接入參數描述所屬品類選擇品類,為該產品定義物模型,物聯網平臺物模型規范請參見 物聯網平臺用戶指南 中設備接入 物模型下的所有章節。此處選擇自定義品類。接入網關協議此處必須選擇OPC UA。5.在添加設備對話框,輸入DeviceName,然后單擊確定。6.在分配子設備對話框,將新建的OPC UA設備分配到邊緣實例。7.分配設備到邊緣實例后,單擊設備名稱對應操作欄中的設備配置,通過關聯通道,關聯設備與OPC UA驅動。表 3-10:參數說明參數描述關聯通道選擇已添加的通道。已添加通道請參見二、配置驅動步驟2。節點路徑設備在OPC UA Server中,從Objects開始到設備節點的絕對路徑。
122、四、部署邊緣實例在實例詳情頁面,單擊右上角部署,重新部署邊緣實例。3.3.4 WebSocket驅動Link IoT Edge提供用于接入WebSocket通信協議設備的驅動。根據網關設備使用架構的不同,LinkIoT Edge提供多種WebSocket驅動。您可以直接從控制臺部署WebSocket驅動到網關。使用WebSocket驅動接入設備時需要遵循Link IoT Egde的WebSocket接入協議。詳情請參見物聯網邊緣計算設備接入協議(WebSocket版)。WebSocket驅動可以直接接受設備的接入,示意圖如下所示。WebSocket驅動也可以通過網關接受設備的接入,示意圖如下所
123、示。文檔版本:2020061073物聯網邊緣計算用戶指南/3 設備接入本文以示例方式介紹WebSocket官方驅動的使用步驟,具體操作如下文所示。說明:使用WebSocket官方驅動之前請確保已根據 物聯網邊緣計算用戶指南 手冊環境搭建章節內容,創建邊緣實例并上線網關。一、分配驅動1.登錄物聯網平臺控制臺.2.在邊緣計算 邊緣實例頁面,選擇已創建的邊緣實例,單擊右側的查看。3.在實例詳情頁面,單擊設備與驅動頁簽,單擊全部驅動右側的“+”圖標。4.在分配驅動中選擇官方驅動,在搜索框輸入WebSocket并搜索,根據網關CPU架構選擇需要使用的WebSocket驅動,單擊對應操作欄中的分配。然后單
124、擊關閉。二、配置驅動1.在全部驅動下單擊已分配的WebSocket驅動,單擊驅動配置。根據界面提示設置參數,然后單擊確定。表 3-11:參數說明參數描述IP地址WebSocket驅動監聽地址,默認為驅動所在本機地址。端口號WebSocket驅動監聽端口,范圍為1 65535,默認端口為17682。是否加密是否使用TLS加密,默認不加密。若選擇是,需要上傳公鑰和私鑰文件。公鑰文件:上傳公鑰證書文件,證書文件格式必須為.cer,名稱不支持中文字符。私鑰文件:上傳私鑰文件,文件格式必須為.pvk,名稱不支持中文字符。74文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入2.(可選)在設備
125、列表右側,單擊容器配置,根據如下參數說明,對當前驅動進行容器配置。配置完成后單擊保存。說明:僅在產品規格為專業版的邊緣實例中,允許設置容器配置。參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。是:表示不隔離容器的網絡,直接使用宿主機網絡環境。否:表示隔離容器的網絡,需要設置網絡端口映射。網絡端口映射當是否使用宿主機host模式為否時出現的參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿主機容器內的f
126、c-http-server函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序,無法通過訪問宿主機的80端口,訪問到fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主機的IP地址:8080,訪問到容器內部的fc-http-server函數。是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。說明:特權模式
127、下,容器內部擁有宿主機的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文件系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。文檔版本:2020061075物聯網邊緣計算用戶指南/3 設備接入三、驅動關聯子設備1.在設備列表頁面中,單擊分配子設備,在WebSocket驅動下為邊緣實例分配設備。您可
128、以分配已有的WebSocket設備,也可以根據下面的步驟2步驟4,新建WebSocket設備。2.在右側彈出的分配子設備頁面,單擊添加子設備。76文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入3.在添加設備對話框中,單擊新建產品,創建WebSocket設備所屬產品。配置完參數后,單擊完成。文檔版本:2020061077物聯網邊緣計算用戶指南/3 設備接入表 3-12:參數說明參數描述產品名稱設置產品名稱,產品名稱在賬號內具有唯一性。支持中文、英文字母、數字、下劃線(_)、短劃線(-)、at()和英文圓括號(()),長度限制430位字符,一個中文漢字算2位。所屬分類選擇品類,為該
129、產品定義物模型。此處選擇自定義品類。接入網關協議此處必須選擇自定義。認證方式選擇適合您設備的認證方式。產品描述添加對該產品的描述,可以為空。4.在添加設備對話框,輸入DeviceName,添加WebSocket設備。5.將新建的WebSocket設備分配到邊緣實例。6.分配設備到邊緣實例后,單擊設備名稱對應操作欄中的設備配置,關聯設備與WebSocket驅動。四、部署邊緣實例在實例詳情頁面,單擊右上角部署,重新部署邊緣實例。3.4 驅動開發3.4.1 概覽Link IoT Edge提供設備接入SDK(Link Edge Device Access,簡稱LEDA)方便您開發自己的驅動,SDK目前
130、支持C、Node.js和Python三種版本的語言。本章節通過實現一個LED燈設備接入LinkIoT Edge,介紹自定義驅動開發流程。設備接入SDK支持的三種開發語言詳細內容,請參見 物聯網邊緣計算開發指南 文檔中邊緣端開發指南 C版本SDK、Nodejs版本SDK、Python版本SDK章節。背景信息本驅動示例實現如下場景:通過自定義驅動,實現一個LED燈設備接入Link IoT Edge,您可以通過物聯網平臺控制臺,控制LED燈設備的開關操作,也可以主動查詢燈設備的當前溫度。78文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入在Link IoT Edge官方驅動中并沒有可以
131、完成該需求的驅動,因此需要在Link IoT Edge上開發LED設備驅動。下面章節將基于C語言SDK,詳細介紹LED設備驅動開發過程。3.4.2 驅動編碼本章主要描述,在驅動開發中如何進行驅動編碼。驅動與設備信息配置進行驅動編碼前,需要了解Link IoT Edge的設備信息配置和驅動信息配置相關內容。驅動信息配置驅動信息配置在阿里云物聯網平臺進行配置。部署邊緣實例時,驅動配置信息會被部署到邊緣網關,其內容以json格式存儲在Link IoT Edge配置中心,可以通過leda_get_driver_info接口獲取。驅動信息配置有如下三種配置格式:鍵值對配置 kv:key:ip,value
132、:127.0.0.1,note:ip地址 ,key:port,value:54321,note:port端口 格式參數說明如下:參數名稱說明kv驅動配置的格式為鍵值對配置。文檔版本:2020061079物聯網邊緣計算用戶指南/3 設備接入參數名稱說明key鍵名稱。value值內容。note鍵值注釋。JSON格式 json:ip:127.0.0.1,port:54321 格式參數說明如下:參數名稱說明json驅動配置的格式為JSON格式配置。配置內容為自定義內容。配置文件 fileList:path:device_config.json 格式參數說明如下:參數名稱說明fileList驅動配置格式
133、為配置文件列表。path配置文件路徑。配置文件在驅動當前目錄中。設備信息配置設備信息配置在阿里云物聯網平臺控制臺配置。部署邊緣實例時,設備信息配置會被部署到邊緣網關,其內容以json格式存儲,可以通過leda_get_device_info接口獲取。設備信息配置格式定義:deviceList:custom:ip:127.0.0.1,port:22322 ,/設備自定義配置 productKey:xxxxxxxxxxx,/產品ProductKey,在創建產品時生成 deviceName:demo_led,/設備DeviceName,在創建設備時生成80文檔版本:20200610物聯網邊緣計算用戶
134、指南/3 設備接入 設備信息配置參數說明:配置名稱配置解釋deviceList當前驅動下所有已進行設備配置的設備列表。custom設備自定義配置。productKey設備所在產品唯一標識符。deviceName設備名稱。操作步驟1.初始化驅動資源。調用leda_init接口完成資源初始化。int main(int argc,char*argv)./*init driver*/if(LE_SUCCESS!=(ret=leda_init(WORKER_THREAD_NUMS)log_e(TAG_NAME_LED_DRIVER,leda_init failedn);return ret;.retur
135、n LE_SUCCESS;2.解析驅動配置,完成設備上線。通過leda_get_device_info_size接口和leda_get_device_info接口獲取設備配置,按照驅動配置格式解析,根據解析后的驅動配置連接設備并調用leda_register_and_online_by_device_name接口完成設備注冊上線到物聯網平臺。驅動信息配置格式定義請參見驅動與設備信息配置。static int online_devices()./*獲取驅動設備配置*/size=leda_get_device_info_size();if(size 0)device_config=(char*)m
136、alloc(size);if(NULL=device_config)log_e(TAG_DEMO_LED,allocate memory failedn);return LE_ERROR_INVAILD_PARAM;文檔版本:2020061081物聯網邊緣計算用戶指南/3 設備接入 if(LE_SUCCESS!=(ret=leda_get_device_info(device_config,size)log_e(TAG_DEMO_LED,get device config failedn);return ret;/*解析驅動設備配置*/devices=cJSON_Parse(device_co
137、nfig);if(NULL=devices)log_e(TAG_DEMO_LED,device config parser failedn);return LE_ERROR_INVAILD_PARAM;cJSON_ArrayForEach(item,devices)if(cJSON_Object=item-type)/*解析配置內容*/result =cJSON_GetObjectItem(item,productKey);productKey =result-valuestring;result =cJSON_GetObjectItem(item,deviceName);deviceName
138、 =result-valuestring;result =cJSON_GetObjectItem(item,custom);if(NULL!=result)log_i(TAG_DEMO_LED,custom content:%sn,cJSON_Print(result);/*注冊并上線設備*/device_cb.get_properties_cb =get_properties_callback_cb;device_cb.set_properties_cb =set_properties_callback_cb;device_cb.call_service_cb =call_service_c
139、allback_cb;device_cb.service_output_max_count =5;dev_handle=leda_register_and_online_by_device_name(productKey,deviceName,&device_cb,NULL);if(dev_handle 物模型部分。/*上報數據*/while(1)/*上報屬性*/leda_device_data_t dev_proper_data1=.type =LEDA_TYPE_INT,.key =temperature,.value=0 ;sprintf(dev_proper_data0.value,%
140、d,g_dev_temperature);leda_report_properties(g_dev_handle,dev_proper_data,1);/*上報事件*/if(g_dev_temperature 50)leda_device_data_t dev_event_data1=.type =LEDA_TYPE_INT,.key =temperature,.value=0 ;sprintf(dev_event_data0.value,%d,g_dev_temperature);leda_report_event(g_dev_handle,high_temperature,dev_even
141、t_data,1);sleep(5);4.處理云端服務請求。實現服務請求的三個回調函數如下所示。get接口:處理獲取設備屬性的請求。set接口:處理設置設備屬性的請求。service接口:處理調用設備自定義方法的請求。說明:文檔版本:2020061083物聯網邊緣計算用戶指南/3 設備接入本示例使用get_properties_callback_cb、set_properties_callback_cb和call_service_callback_cb三個回調函數實現服務請求。static int get_properties_callback_cb(device_handle_t devic
142、e_handle,leda_device_data_t properties,int properties_count,void*usr_data).return ret;static int set_properties_callback_cb(device_handle_t device_handle,const leda_device_data_t properties,int properties_count,void*usr_data).return ret;static int call_service_callback_cb(device_handle_t device_hand
143、le,const char*service_name,const leda_device_data_t data,int data_count,leda_device_data_t output_data,void*usr_data).return ret;說明:本示例的完整工程源碼請參見Github源碼庫LED設備驅動。至此,您已完成驅動編碼過程。3.4.3 驅動調試設備接入驅動編碼完成后,需進行驅動的調試。調試階段包括:編譯打包、上傳驅動、搭建環境、創建物模型、創建設備、部署驅動、查看調試信息、調試數據交互和本地替換更新驅動。前提條件在開始操作本章內容前,請您確保已根據環境搭建內容完成邊緣
144、實例的創建,為C語言SDK開發的設備驅動準備運行環境。編譯打包驅動打包相關要求,請參見本文下方驅動打包注意事項。84文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入1.下載示例代碼。git clone https:/ linkedge-thing-access-sdk-cmake prepare&make&make install3.查看示例編譯產物。cd build/bin/demo/demo_led/&ls-l系統顯示類似如下圖表示已完成編譯并打包。上傳并發布驅動更多操作詳情及參數說明,請參見驅動發布。1.登錄物聯網平臺控制臺。文檔版本:2020061085物聯網邊緣計算用戶
145、指南/3 設備接入2.選擇邊緣計算 驅動管理 自研驅動。在自研驅動頁簽,單擊新建驅動。本示例中,驅動是否內置需要選擇否,然后在驅動文件下,上傳已完成編譯并打包的led_driver.zip文件。設置驅動信息參數。86文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入文檔版本:2020061087物聯網邊緣計算用戶指南/3 設備接入表 3-13:驅動信息參數說明參數描述驅動名稱自定義驅動的名稱。支持大小寫英文字母、數字和英文下劃線(_),必須以英文字母開頭,不超過20個字符。通信協議類型驅動開發所依賴的行業標準通信協議。當前支持的協議類型有Modbus、OPCUA、LoRa WAN和
146、自定義。語言類型驅動的語言類型,支持Node.js 8、Python 3.5、C和Java 8類型。其中,若選擇C類型,則還需要選擇驅動的CPU架構。驅動適配的邊緣版本選擇驅動適配的邊緣版本,即該驅動只能在該邊緣版本及以上版本的網關中運行。驅動版本設置驅動的版本,必須是該驅動唯一的版本號,即一個驅動不可以設置兩個相同的版本號。驅動版本描述描述您創建的驅動,可以為空。驅動是否內置選擇是否內置驅動文件。是:無需上傳驅動文件,使用本地內置驅動。否:需要上傳驅動文件,通過云端部署通道直接部署驅動。云端發布必須選擇否。88文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述驅動文件驅動
147、是否內置選擇否后,單擊上傳文件,上傳您的驅動文件。說明:僅支持上傳.zip格式的文件,文件大小不能超過50 MB。設置驅動配置參數:表 3-14:驅動配置參數說明參數描述配置格式配置格式有如下三種:鍵值對配置JSON格式配置文件配置格式為鍵值對配置時單擊新增配置,通過設置配置名稱、值、注釋來配置驅動。最多添加100個鍵值對。配置格式為JSON格式時編寫JSON格式配置內容,內容不超過1 KB。編寫內容時,系統自動校驗格式。若格式錯誤,可根據系統提示編寫正確格式的內容。文檔版本:2020061089物聯網邊緣計算用戶指南/3 設備接入參數描述配置格式為配置文件時 需要在本地編寫配置文件,并上傳。
148、設置容器配置參數。表 3-15:容器配置參數說明參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。是:表示不隔離容器的網絡,直接使用宿主機網絡環境。否:表示隔離容器的網絡,需要設置網絡端口映射。90文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述網絡端口映射當是否使用宿主機host模式為否時出現的參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿主機容器內的fc-http-serv
149、er函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序,無法通過訪問宿主機的80端口,訪問到fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主機的IP地址:8080,訪問到容器內部的fc-http-server函數。是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。說明:特權模式下,容器內部擁有宿主機
150、的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文件系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。文檔版本:2020061091物聯網邊緣計算用戶指南/3 設備接入參數描述內存限制設置容器的內存上限。當容器內存使用超過限制時,容器會被重啟。如果內存限制值過小,可能會導致容器內的應用運行失敗。
151、默認內存為1024 MB,請根據容器內應用大小,上調內存限制。設置配置校驗參數。表 3-16:配置校驗參數說明參數描述驅動配置選中表示將該驅動配置到邊緣實例并關聯子設備后,必須設置驅動配置,才可以將驅動部署到邊緣實例。設備配置選中表示將該驅動配置到邊緣實例并關聯子設備后,必須設置設備配置,才可以將驅動部署到邊緣實例。3.完成參數的設置并上傳成功驅動文件后,單擊確認。您可以在自研驅動列表中看到剛剛創建的驅動。分配驅動和設備到邊緣實例部署驅動依賴邊緣實例,即您在前提條件中完成的環境搭建操作。1.在物聯網平臺控制臺,選擇邊緣計算 邊緣實例,在已創建好的邊緣實例右側單擊查看。2.在實例詳情頁面,選擇設
152、備與驅動,單擊全部驅動右側的“+”圖標。3.在分配驅動頁面,選擇自研驅動并在已創建的自定義驅動對應操作欄中單擊分配,然后單擊關閉。92文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入4.選擇已分配的自定義驅動demo_driver,單擊分配子設備,在demo_driver驅動下為邊緣實例分配設備。a)在右側彈出的分配子設備對話框中,單擊添加子設備。b)在添加設備對話框,單擊新建產品,創建一個產品。c)在創建產品對話框完成參數設置后,單擊完成。表 3-17:參數說明參數描述產品名稱設置產品名稱,產品名稱在賬號內具有唯一性。支持中文、英文字母、數字、下劃線(_)、連接號(-)、at(
153、)和英文圓括號(()),長度限制430個字符,一個中文漢字算2個字符。所屬品類選擇品類,為該產品定義物模型,物聯網平臺物模型規范請參見 物聯網平臺用戶指南 中設備接入 物模型下的所有章節。此處選擇自定義品類。接入網關協議此處必須選擇自定義。認證方式選擇適合您設備的認證方式。詳情請參見 物聯網平臺用戶指南中設備接入 設備安全認證下的所有章節。文檔版本:2020061093物聯網邊緣計算用戶指南/3 設備接入參數描述產品描述添加對產品的描述,可以為空。d)返回添加設備對話框,單擊前往配置,為產品添加自定義功能。系統跳轉到產品詳情頁面,在功能定義頁簽下,參考 物聯網平臺用戶指南 中單個添加物模型章節
154、內容,為產品添加屬性和事件。添加屬性添加事件94文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入輸出參數設置如下圖所示。文檔版本:2020061095物聯網邊緣計算用戶指南/3 設備接入e)返回添加設備對話框,添加DeviceName,然后單擊確定。96文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入f)在分配子設備對話框中,單擊剛創建的設備右側的分配,將設備分配到邊緣實例。5.分配設備到邊緣實例后,單擊設備名稱對應操作欄中的設備配置,配置設備信息。編寫JSON格式配置內容(內容不可超過1 KB),并校驗格式通過后,單擊確定。部署邊緣實例1.在實例詳情頁面,右上角單
155、擊部署,部署邊緣實例。部署成功后邊緣實例名稱后顯示部署成功。文檔版本:2020061097物聯網邊緣計算用戶指南/3 設備接入2.查看調試信息。實例部署成功后,可以查看設備連接狀態和運行狀態,這些信息可以在阿里云物聯網平臺查看,也可以通過在邊緣網關運行環境查看驅動運行日志。云端查看:a.在實例詳情頁面設備驅動配置頁簽,選擇自定義驅動demo_driver,查看設備連接狀態。b.單擊設備名稱右側操作欄中的查看,跳轉到物聯網平臺設備詳情頁面。c.選擇物模型數據 運行狀態頁簽,查看設備上報的數據。本地查看:a.通過./fctl show命令,可以查看到部署驅動的具體位置。cd/linkedge/ga
156、teway/build/bin/98文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入./fctl show系統顯示類似如下圖所示。表 3-18:參數說明字段名稱字段解釋DriverName驅動名稱,該名稱為在阿里云物聯網平臺上傳驅動時填寫名稱。CodePath驅動部署到邊緣網關中的位置路徑。Process PID驅動啟動后的進程ID。b.驅動在運行過程中會產生運行日志,通過查看運行日志可以了解驅動運行狀態,每個自定義驅動生成的日志文件統一放在/linkedge/run/logger/fc-base路徑下。每個驅動日志文件路徑為/linkedge/run/logger/fc-bas
157、e/xxxx/log_xxxx.txt。說明:文檔版本:2020061099物聯網邊緣計算用戶指南/3 設備接入驅動日志文件路徑中的xxxx為在上傳驅動時填寫的名稱。cd/linkedge/run/logger/fc-base/demo_driver&ls-l詳情如下圖所示。驅動運行日志可以查看大部分驅動的運行狀態,但是有時還需要查看其它日志配合了解當前驅動的運行情況,例如設備上線異常時可以查看dimu日志,日志文件路徑為/linkedge/run/logger/dimu/log_xxxxx.txt。cd/linkedge/run/logger/dimuls-l詳情如下圖所示。設備上線成功后,
158、如果設備數據上報有異常,則可以查看cloud_proxy日志。cloud_proxy產生的運行日志文件路徑格式和內容為/linkedge/run/logger/cloud-proxy/log_xxxxx.txt。cd/linkedge/run/logger/cloud-proxyls-l詳情如下圖所示。100文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入調試數據交互如果設備上線成功,則可以使用阿里云物聯網平臺在線調試功能調試驅動和設備,該功能頁面還可以實時查看設備上報的數據信息,也可以觸發對設備服務的調用請求。1.在物聯網平臺控制臺,選擇監控運維 在線調試,在在線調試頁面,選擇
159、調試產品和調試設備。2.選擇調試設備待調功能和服務,進行調試,并查看設備實時運行日志。六、(可選)本地替換驅動如果在驅動調試過程中發現問題,需要修改驅動代碼重新生成新的驅動進行調試,這時只需要在本地替換修改編譯后的驅動即可。1.找到驅動的位置??梢酝ㄟ^fctl命令進行查找,具體字段解釋查看調試信息。cd/linkedge/gateway/build/bin/./fctl show文檔版本:20200610101物聯網邊緣計算用戶指南/3 設備接入2.根據CodePath找到驅動所在位置路徑,完成替換。3.根據Process PID得到驅動進程ID,使用kill-9 Pid命令重新啟動驅動。ki
160、ll-9 Pid#Pid為驅動進程ID,即通過fctl命令查看得到的Process PID4.替換驅動并完成驅動調試后,可參見本文上方上傳并發布驅動步驟,將驅動發布到物聯網平臺控制臺。至此,您已完成驅動的調試與發布過程。驅動依賴注意事項設備接入驅動根據協議和業務場景的不同,可能會涉及第三方庫依賴。Link IoT Edge針對開發設備接入驅動所用不同開發語言,分別制定了第三方庫依賴規則。C版本SDK:C語言屬于編譯型語言,如果編譯目標環境和運行環境不一致,則很可能導致不可運行。所以對于使用設備接入C版本SDK開發驅動,需要保證開發編譯目標環境和運行環境相同。驅動包中包含驅動程序和依賴動態庫。如
161、果該驅動依賴于第三方庫,則需要將動態庫和驅動程序一起打包生成最終驅動程序包。Node.js版本SDK:使用設備接入SDK Node.js版本開發驅動時,若依賴第三方庫,需要到Link IoT Edge運行環境上開發驅動,并在驅動目錄中使用如下命令安裝依賴。npm install 第三方庫名Python版本SDK:使用設備接入SDK Python版本開發驅動時,若依賴第三方庫,需要到Link IoT Edge運行環境上開發驅動,并在驅動目錄中使用如下命令安裝依賴。pip3 install-t.第三方庫名驅動打包注意事項基于Link IoT Edge提供的SDK開發驅動并完成調試后,需將產物打包為
162、.zip包,并確保驅動Binary或index源文件在.zip包第一級目錄。每個版本SDK開發的驅動在打包時,有不同的打包規則。102文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入基于C SDK開發的驅動對于C語言開發的驅動,驅動包中包含驅動程序和驅動依賴的動態庫。如果驅動程序包含依賴庫,則需要將依賴庫放置指定的位置,即在驅動程序當前路徑下的lib文件夾下。具體操作步驟如下:1.規定驅動程序需命名為main。2.在main當前路徑下創建lib文件夾。3.將main依賴的動態庫全部拷貝到lib文件夾下。4.使用zip命令對當前路徑下的main和lib進行壓縮處理生成zip包。zi
163、p-r your_driver_name.zip main lib基于Python SDK開發的驅動驅動包文件中須包含index.py,并且在該文件中定義handler函數。驅動是一個在函數計算引擎中持續運行的函數,所以在驅動包中須包含index.py文件,并且在該文件中定義handler函數。驅動運行時,會加載index.py文件。而該文件中,函數計算定義的handler函數是不會被調用,因此驅動代碼須放在handler函數外,保證加載index.py文件時能直接執行。詳情請參考物聯網邊緣計算開發指南 文檔中邊緣端開發指南 Python版本SDK章節?;贜ode.js SDK開發的驅動驅動
164、包文件中須包含index.js,并且在該文件中定義handler函數。驅動運行時,會加載index.js文件。而該文件中,函數計算定義的handler函數是不會被調用,因此驅動代碼須放在handler函數外,保證加載index.js文件時能直接執行。詳情請參考 物聯網邊緣計算開發指南 文檔中邊緣端開發指南 Nodejs版本SDK章節。3.4.4 常見問題本章主要描述,在驅動開發過程中遇到的問題及其解決方法。leda_register_and_online_by_device_name(const char*product_key,const char*device_name,leda_devi
165、ce_callback_t*device_cb,void*usr_data)接口的device_cb作用是什么?答:用于接收來自云端或其他邊緣應用對設備的服務請求調用。分別是請求獲取設備屬性、請求設置設備屬性,請求調用設備服務。typedef struct leda_device_callback get_properties_callback get_properties_cb;/*設備屬性獲取回調*/set_properties_callback set_properties_cb;/*設備屬性設置回調*/文檔版本:20200610103物聯網邊緣計算用戶指南/3 設備接入call_ser
166、vice_callback call_service_cb;/*設備服務回調*/int service_output_max_count;/*設備服務回調結果數組最大長度*/leda_device_callback_t;字段service_output_max_count表示什么意思?答:用于設置call_service_cb回調接口output_data數組的最大長度。leda_init(const char*module_name,int worker_thread_nums)接口的worker_thread_nums是用來做什么的?答:用于初始化驅動的線程池。初始的線程池處理來自云端或邊
167、緣應用對設備的請求調用,具體大小可根據接入設備量進行合理設置。leda_register_and_online_by_device_name和leda_register_and_online_by_local_name有什么區別?答:-by_device_name表示用此接口實現設備注冊的設備名稱device_name,必須與在阿里云物聯網平臺創建設備時的名稱一樣。-by_local_name表示用此接口實現設備注冊的設備名稱device_name,可使用自定義名稱。說明:針對同一ProductKey下的設備注冊,必須保證只能使用同一接口。即by_device_name和by_local_na
168、me接口不允許在同一ProductKey下同時使用。設備正常上線且從設備所在驅動的日志中看到設備數據正常上報,但在物聯網平臺控制臺,設備數據上報內容沒有被更改?答:確認是否在物聯網平臺控制臺配置了消息路由,具體操作請參見設置消息路由章節。3.5 驅動發布3.5.1 云端發布驅動支持云端發布和內置發布兩種形式,云端發布驅動是將驅動文件托管到控制臺中驅動管理頁面,內置發布是在本地管理驅動文件。本文主要描述通過云端發布使用驅動的步驟。前提條件104文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入已根據驅動開發內容,完成了驅動的開發,并按照驅動打包注意事項中的要求打包已開發的驅動。請參見
169、驅動開發、驅動打包注意事項。操作步驟1.登錄物聯網平臺控制臺。2.在物聯網平臺控制臺左側導航欄中,單擊邊緣計算 驅動管理。3.在驅動管理頁面,選擇自研驅動,單擊右側的新建驅動。文檔版本:20200610105物聯網邊緣計算用戶指南/3 設備接入4.在新建驅動對話框,根據提示設置驅動參數。設置驅動信息參數。106文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入表 3-19:驅動信息參數說明參數描述驅動名稱自定義驅動的名稱。支持大小寫英文字母、數字和英文下劃線(_),必須以英文字母開頭,不超過20個字符。通信協議類型驅動開發所依賴的行業標準通信協議。當前支持的協議類型有Modbus、
170、OPCUA、LoRa WAN和自定義。語言類型驅動的語言類型,支持Node.js 8、Python 3.5、C和Java 8類型。其中,若選擇C類型,則還需要選擇驅動的CPU架構。驅動適配的邊緣版本選擇驅動適配的邊緣版本,即該驅動只能在該邊緣版本及以上版本的網關中運行。驅動版本設置驅動的版本,必須是該驅動唯一的版本號,即一個驅動不可以設置兩個相同的版本號。驅動版本描述描述您創建的驅動,可以為空。驅動是否內置選擇是否內置驅動文件。是:無需上傳驅動文件,使用本地內置驅動。否:需要上傳驅動文件,通過云端部署通道直接部署驅動。云端發布必須選擇否。文檔版本:20200610107物聯網邊緣計算用戶指南/
171、3 設備接入參數描述驅動文件驅動是否內置選擇否后,單擊上傳文件,上傳您的驅動文件。說明:僅支持上傳.zip格式的文件,文件大小不能超過50 MB。設置驅動配置參數:表 3-20:驅動配置參數說明參數描述配置格式配置格式有如下三種:鍵值對配置JSON格式配置文件配置格式為鍵值對配置時單擊新增配置,通過設置配置名稱、值、注釋來配置驅動。最多添加100個鍵值對。配置格式為JSON格式時編寫JSON格式配置內容,內容不超過1 KB。編寫內容時,系統自動校驗格式。若格式錯誤,可根據系統提示編寫正確格式的內容。108文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述配置格式為配置文件時
172、 需要在本地編寫配置文件,并上傳。設置容器配置參數。表 3-21:容器配置參數說明參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。是:表示不隔離容器的網絡,直接使用宿主機網絡環境。否:表示隔離容器的網絡,需要設置網絡端口映射。文檔版本:20200610109物聯網邊緣計算用戶指南/3 設備接入參數描述網絡端口映射當是否使用宿主機host模式為否時出現的參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿
173、主機容器內的fc-http-server函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序,無法通過訪問宿主機的80端口,訪問到fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主機的IP地址:8080,訪問到容器內部的fc-http-server函數。是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。
174、說明:特權模式下,容器內部擁有宿主機的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文件系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。110文檔版本:20200610物聯網邊緣計算用戶指南/3 設備接入參數描述內存限制設置容器的內存上限。當容器內存使用超過限制時,容器會被重啟。如果內存限制值
175、過小,可能會導致容器內的應用運行失敗。默認內存為1024 MB,請根據容器內應用大小,上調內存限制。設置配置校驗參數。表 3-22:配置校驗參數說明參數描述驅動配置選中表示將該驅動配置到邊緣實例并關聯子設備后,必須設置驅動配置,才可以將驅動部署到邊緣實例。設備配置選中表示將該驅動配置到邊緣實例并關聯子設備后,必須設置設備配置,才可以將驅動部署到邊緣實例。5.完成參數的設置并上傳成功驅動文件后,單擊確認。您可以在自研驅動列表中看到剛剛創建的驅動。后續步驟在云端發布驅動后,即可將驅動分配到邊緣實例,關聯子設備,通過邊緣實例的部署,將驅動和子設備部署到邊緣端。詳情請參見驅動調試。3.5.2 內置發布
176、物聯網邊緣計算提供驅動內置能力,支持將驅動內置到網關。驅動內置發布功能適用于有協議版權,不能在互聯網環境公開設備接入驅動的場景,支持您在本地管理驅動文件,再結合云端配置驅動和驅動信息,將驅動部署到邊緣端使用。驅動內置的詳細操作說明文檔,請按照如下模板發送郵件至link-iot-edge-supportlist.alibaba-聯系我們獲取。郵件主題:獲取驅動內置發布操作說明文檔郵件內容:公司名稱:文檔版本:20200610111物聯網邊緣計算用戶指南/3 設備接入公司所屬行業信息:產品和設備信息:聯系人:聯系電話:112文檔版本:20200610物聯網邊緣計算用戶指南/4 場景聯動4 場景聯動
177、4.1 什么是場景聯動場景聯動是規則引擎中,一種開發自動化業務邏輯的可視化編程方式,您可以通過可視化的方式定義設備之間聯動規則,并將規則部署至云端或者邊緣端。您需在物聯網平臺控制臺,規則引擎 場景聯動頁面中創建場景聯動規則。每個場景聯動規則由觸發器(Trigger)、執行條件(Condition)、執行動作(Action)三個部分組成。這種規則模型稱為TCA 模型。當觸發器指定的事件或屬性變化事件發生時,系統通過判斷執行條件是否已滿足,來決定是否執行規則中定義的執行動作。如果滿足執行條件,則直接執行定義的執行動作;反之則不執行。例如,您每天18:00下班回家。在炎熱的夏天,您希望您到家后,家里
178、的溫度是涼爽、舒適的。您可以創建一條規則,使空調設備自動化,實現這個需求。參數說明如下:參數描述并列關系觸發器定時為每天18:00。時間的cron表達式寫作方法,請參見CRONTAB網頁?;颍▅)文檔版本:20200610113物聯網邊緣計算用戶指南/4 場景聯動參數描述并列關系執行條件溫度傳感器探測到室內溫度高于 26 攝氏度。與(&)執行動作空調開關設置為打開;空調控制溫度設置為 26 攝氏度。與(&)創建場景聯動規則的更多設置說明,請參見云端場景聯動。4.2 云端場景聯動場景聯動類型的規則是一種開發自動化業務邏輯的可視化編程方式,可以通過設備或時間維度的條件觸發,經過執行條件的過濾,執行
179、預定的業務邏輯,輸出數據到設備或者其他規則,實現海量設備根據場景的聯動。創建場景聯動1.登錄物聯網平臺控制臺。2.在左側導航欄中,選擇規則引擎 場景聯動。3.在場景聯動頁面,單擊創建規則,在彈出的對話框中設置相關參數,然后單擊確認。參數描述規則名稱設置具體規則的名稱。支持中文、英文字母、數字、下劃線和短劃線,長度限制130個字符,中文字算兩位字符。規則描述為規則添加描述,可以為空。114文檔版本:20200610物聯網邊緣計算用戶指南/4 場景聯動4.完成場景聯動的創建后,等待頁面自動跳轉或在彈出的對話框中單擊前往編輯,管理配置場景聯動。您也可以在場景聯動頁面,單擊場景規則右側查看,管理配置場
180、景聯動。單擊頁面右上角編輯,可更改場景聯動規則名稱,其余參數說明請見下表。參數描述觸發器即規則入口??稍O置為設備觸發或定時觸發。當設備上報的數據或當前時間滿足設定的觸發器時,觸發執行條件判斷??梢詾橐粋€規則創建多個觸發器,觸發器之間是或(or)關系。設置為設備觸發,則需選擇已創建的產品名稱、設備名稱、和設備屬性或事件。設置為定時觸發,則需填寫時間點。時間點格式為 cron 表達式。cron表達式的構成:分、小時、日、月、一周內的某天(0或7表示周日,1-6分別表示周一至周六),每項之間用空格隔開。如,每天18點整的cron表達式為:0 18*(其中星號(*)是通配符);每周五18點整的表達式為
181、:0 18*5。cron表達式具體寫作方法,請參見CRONTAB 網頁。上圖示例中,設置為設備觸發:以溫度傳感器上報的室內溫度低于16攝氏度作為觸發器。文檔版本:20200610115物聯網邊緣計算用戶指南/4 場景聯動參數描述執行條件執行條件集。只有滿足執行條件的數據,才能觸發執行動作??稍O置為設備狀態或時間范圍??梢詾橐粋€規則創建多個執行條件,執行條件之間是和(and)關系。設置為設備狀態,則需選擇已創建的產品名稱、設備名稱、和設備功能中的屬性或事件。設置為時間范圍,則需設置起始時間和結束時間,格式為yyyy-mm-dd hh24:mi:ss。上圖示例中,設置為時間范圍:時間在12:00至
182、23:59之間,則觸發執行動作。執行動作需執行的動作??稍O置為設備輸出或規則輸出。您可以設置多個動作。某一動作執行失敗時,不影響其他動作。設置為設備輸出,則需選擇已創建的產品名稱、設備名稱、和設備屬性或服務(只有可寫的屬性或服務才能被設為執行動作)。當觸發器和執行條件均被滿足時,執行已定義的設備屬性或服務的相關動作。設置為規則輸出,則需嵌套另外一個規則,即調用其他規則。被調用規則中的觸發器將被跳過,直接進行執行條件檢查。若執行條件滿足,則執行該規則中定義的執行動作。上圖示例中,設置為設備輸出:指定的空調設備執行控制溫度為26攝氏度。延時執行展開高級選項后的參數。設置延時時間后,執行動作將延遲執
183、行。取值范圍為086400秒。在邊緣實例中運行場景聯動場景聯動創建成功后,您需要根據如下步驟,將場景聯動部署到邊緣實例中。注意:請確保已停止場景聯動在云端的運行。1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例,查找環境搭建中創建完成的邊緣實例,并單擊邊緣實例右側操作列下的查看。3.在實例詳情頁面,單擊場景聯動頁簽,然后單擊分配場景。4.單擊待分配場景聯動規則名稱后的分配,然后單擊關閉。5.分配場景聯動后,單擊頁面右上方的部署,重新部署邊緣實例。116文檔版本:20200610物聯網邊緣計算用戶指南/4 場景聯動刪除場景聯動已創建的場景聯動規則可進行刪除操作。1.在場景聯動頁面
184、中,找到需要刪除的場景聯動規則名稱。2.單擊規則名稱右側的刪除,在彈出的對話框中單擊確認,刪除該條場景聯動規則。4.3 邊緣場景聯動部署至邊緣實例的場景聯動能夠快速響應本地的消息,并且可在斷網環境下正常運行。本文介紹利用規則計算和設置消息路由,實現當光照度傳感器(LightSensor設備)檢測到光照度大于等于500流明的時候,控制燈(Light設備)關閉,當光照度小于等于200流明的時候,控制燈打開。流程如下圖所示。前提條件請您確保已根據環境搭建內容完成邊緣實例的創建。請根據示例驅動章節內容,使用官方示例驅動完成LightSensor和Light設備的創建,并將設備分配到邊緣實例中。文檔版本
185、:20200610117物聯網邊緣計算用戶指南/4 場景聯動操作步驟1.創建場景聯動規則。a)在邊緣實例頁面,選擇已在前提條件中創建完成的LinkIoTEdge_Node實例,單擊右側的查看。b)在實例詳情頁面,單擊場景聯動頁簽,然后單擊分配場景。您可以為實例分配已創建的場景聯動規則,若沒有可分配的規則,請繼續參考下方的步驟創建新的場景聯動規則。c)在分配場景對話框中,單擊添加場景聯動。系統自動跳轉到規則引擎頁面場景聯動頁簽中的創建場景聯動規則對話框。d)創建名為Rule_Light_Open的場景聯動規則,請參考云端場景聯動。e)創建完成后,管理配置場景聯動規則,具體參數設置如下圖所示。11
186、8文檔版本:20200610物聯網邊緣計算用戶指南/4 場景聯動f)配置場景聯動后保存設置內容。g)參考創建Rule_Light_Open場景聯動的步驟,創建名為Rule_Light_Close的場景聯動。h)管理配置Rule_Light_Close場景聯動,具體參數如下圖所示。i)配置完成場景聯動后,保存配置。2.分配場景聯動到邊緣實例。a)返回到實例詳情頁面場景聯動頁簽中的分配場景對話框。b)單擊刷新,刷新規則名稱列表。c)分別在已創建的Rule_Light_Open和Rule_Light_Close規則后單擊分配,將場景聯動規則分配到邊緣實例。然后單擊關閉。完成場景聯動的添加后,便可在該
187、實例的實例詳情頁面上,查看已分配的場景聯動信息。文檔版本:20200610119物聯網邊緣計算用戶指南/4 場景聯動3.部署邊緣實例。a)在實例詳情頁面,單擊右上角部署后在彈出對話框中單擊確定,部署邊緣實例。b)當部署狀態顯示為部署成功,表示部署實例完成。您可以單擊查看日志,查看部署詳情。您也可以在實例詳情頁面,右上角單擊查看部署日志,查看歷史部署情況。如果部署失敗,在部署詳情頁面,可以單擊部署失敗的資源名稱前的+號圖標,進行查看具體失敗原因。部署實例成功后,已分配到該實例的場景聯動規則將會在邊緣端開始運行、監聽及觸發執行。120文檔版本:20200610物聯網邊緣計算用戶指南/5 邊緣應用5
188、 邊緣應用5.1 什么是邊緣應用應用管理是Link IoT Edge提供的邊緣應用管理能力,可以幫助您標準化的管理邊緣端應用的版本、配置等。當前,Link IoT Edge支持函數計算類型的邊緣應用。目前,標準版Link IoT Edge(LE Standard)不支持使用Python版本函數計算。應用優勢邊緣函數計算的優勢如下:靈活的編程模型:可以有效地支撐設備驅動和傳統的服務端常駐程序的開發。高實時性:函數運行在邊緣端網關,可以更靠近信息源進行數據的收集和分析,提升響應速度。離線運行:設備數據可傳輸到本地網絡處理,不必連接到云端,從而在斷網情況下設備依然可以正常工作。組成部分邊緣函數計算主
189、要由如下幾部分組成:邊緣端程序管理:負責管理部署到網關的函數,提供程序運行、服務?;?、日志查詢、性能監控、資源監控和定時觸發等。開發API:邊緣函數計算提供了設備驅動開發和應用開發的API,降低程序開發成本。觸發事件源在觸發事件時,Link IoT Edge會調用函數代碼中的handler函數進行處理,而按需運行模式的函數,只有當首次事件觸發時才會被加載運行。能夠觸發函數計算的事件源如下:消息觸發:通過消息路由流轉到函數計算的多種來源(例如設備、函數計算等消息源)的消息,觸發函數計算。函數調用者:邊緣網關提供調用本地函數計算的API,從外部程序中直接調用本地函數計算或在函數計算代碼中調用其它的
190、函數時,觸發函數計算。5.2 新增邊緣應用本章主要介紹如何通過本地文件創建函數計算類型的邊緣應用。操作步驟1.登錄物聯網平臺控制臺。文檔版本:20200610121物聯網邊緣計算用戶指南/5 邊緣應用2.在左側導航欄選擇邊緣計算 應用管理。3.在應用管理頁面,單擊新增應用。122文檔版本:20200610物聯網邊緣計算用戶指南/5 邊緣應用4.設置應用參數,設置完成后單擊確認。應用信息文檔版本:20200610123物聯網邊緣計算用戶指南/5 邊緣應用表 5-1:應用信息參數說明參數描述應用名稱設置您應用的名稱,允許英文字母、數字和下劃線(_),最多不超過128個字符。應用類型本地上傳:使用本
191、地開發的函數。開發語言選擇您的本地函數的開發語言。目前支持Node.js、Python、C三種開發語言。注意:使用Python語言開發的函數,僅支持在Link IoT Edge專業版實例中使用。應用版本設置應用的版本,必須是該應用唯一的版本號,即一個應用不可以設置兩個相同的版本號。代碼包單擊上傳文件,上傳您在本地已完成開發的代碼包。注意:僅支持上傳.zip格式的代碼包,且文件大小不超過50M.。版本描述描述您的應用版本,例如版本功能等??梢詾榭?。124文檔版本:20200610物聯網邊緣計算用戶指南/5 邊緣應用參數描述環境變量自定義配置的環境變量,在函數代碼運行時可以直接讀取到。單擊新增環境
192、變量,通過設置變量名稱、變量值增加環境變量。最多可配置10條環境變量。該功能是為了做到代碼和配置的分離,增強代碼的可移植能力。例如,函數代碼需要請求網絡上其它主機的服務,在不同環境下服務器的IP地址和端口通常是不同的。通過環境變量將IP和端口信息作為配置參數傳入,不同環境下的網關就可以共用同一份函數代碼。容器配置文檔版本:20200610125物聯網邊緣計算用戶指南/5 邊緣應用表 5-2:容器配置參數說明參數描述是否使用宿主機host模式選擇是否隔離容器的網絡。直接使用宿主機網絡環境。-是:表示不隔離容器的網絡,直接使用宿主機網絡環境。-否:表示隔離容器的網絡,需要設置網絡端口映射。網絡端口
193、映射當是否使用宿主機host模式為否時出現的參數。函數的網絡環境和宿主機的環境是完全隔離的。通過網絡端口映射,將容器內函數的監聽端口映射到宿主機的某一個端口上,實現不同主機上的客戶端程序,能夠訪問該函數提供的服務。最多支持映射10條網絡端口。例如,運行在宿主機容器內的fc-http-server函數,通過80端口對外界提供服務。此時,其它主機上的客戶端程序訪問宿主機的80端口,是無法直接訪問fc-http-server函數。因此需要將fc-http-server函數所在的容器端口映射到宿主機的某一個端口上(例如將容器內的80端口映射到宿主機8080端口),允許其它主機上的客戶端程序通過訪問宿主
194、機的IP地址:8080,訪問到容器內部的fc-http-server函數。是否啟動特權模式容器內的root用戶實際上只是宿主機的一個普通用戶。若在容器內部做修改系統時間、使用mount命令等需要root權限的操作,則需要賦予容器privileged特權。說明:特權模式下,容器內部擁有宿主機的root權限,而且宿主機的所有設備會默認映射到容器內部,即無需配置設備映射。設備映射當是否啟動特權模式為否時出現的參數。設備管理系統和宿主機的環境是完全隔離的。當一個函數需要訪問宿主機的設備(例如串口)時,需要將設備映射到運行函數的容器內部。最多可添加10個設備映射。卷映射文件系統和宿主機的環境是完全隔離的
195、。當一個函數需要訪問宿主機的文件時,需要將文件映射到運行函數的容器內部。最多可添加10個卷映射。內存限制設置容器的內存上限。當容器內存使用超過限制時,容器會被重啟。如果內存限制值過小,可能會導致容器內的應用運行失敗。默認內存為1024 MB,請根據容器內應用大小,上調內存限制。126文檔版本:20200610物聯網邊緣計算用戶指南/5 邊緣應用5.完成應用創建后,可在邊緣計算 應用管理頁面的應用列表中查看。您也可以通過操作欄按鈕,對應用進行版本管理或刪除。版本管理單擊版本管理,可對該應用的版本進行新增、修改和刪除操作。刪除單擊刪除,可刪除該應用。刪除應用時,會刪除該應用的所有版本,請謹慎操作。
196、后續步驟將創建好的邊緣應用分配到邊緣實例,詳細操作請參見分配邊緣應用到邊緣實例。5.3 分配邊緣應用到邊緣實例本文介紹將已創建的邊緣應用分配到邊緣實例的步驟。通過分配應用到邊緣實例,您可以更好的管理邊緣端業務。前提條件已完成邊緣應用的創建,請參見新增邊緣應用。操作步驟1.登錄物聯網平臺控制臺。2.單擊左側導航欄中邊緣計算 邊緣實例。找到要分配邊緣應用的邊緣實例,單擊對應操作欄中的查看,進入該實例的實例詳情頁面。3.在實例詳情頁面,單擊邊緣應用頁簽,然后單擊分配應用。文檔版本:20200610127物聯網邊緣計算用戶指南/5 邊緣應用4.在彈出的分配應用頁面中,選擇要分配給邊緣實例的應用,單擊右
197、側的分配。分配成功后,單擊關閉。完成應用分配后,便可在該邊緣實例的實例詳情頁面的邊緣應用頁簽下,查看邊緣應用信息。5.部署邊緣實例。單擊實例詳情頁面右上角的部署,并在彈出對話框中,單擊確定。128文檔版本:20200610物聯網邊緣計算用戶指南/6 斷網續傳6 斷網續傳物聯網邊緣計算提供斷網續傳服務。當本地斷網或數據上傳云端后超過15秒未接收到回復,上傳云端的數據將在本地進行持久化。網絡恢復后,歷史數據將重新上傳。使用斷網續傳功能,需要在物聯網平臺上配置消息路由,同時您也可以自定義邊緣端持久化設置。物聯網平臺配置消息路由邊緣端的消息主要來源于設備,物聯網邊緣計算支持為每個消息來源配置獨立的消息
198、路由。若希望某個來源的消息被本地持久化、支持斷網續傳,則您需要為該消息配置消息路由,且必須將消息目標設置為IoT Hub,服務級別設置為1(即QoS=1)。本文將在示例驅動章節的基礎上進行操作,舉例說明如何配置斷網續傳。1.完成示例驅動章節的操作。具體操作步驟,請參見示例驅動。2.為上一步中的邊緣實例分配消息路由。具體操作步驟,請參見設置消息路由。說明:文檔版本:20200610129物聯網邊緣計算用戶指南/6 斷網續傳設置分配消息路由的參數時,必須將消息目標設置為IoT Hub,將服務級別設置為1。3.在實例詳情頁面,右上角單擊部署,重新部署邊緣實例。邊緣端持久化配置項邊緣端持久化涉及文件存
199、儲目錄、節點個數和節點存儲空間三個配置項。說明:整個持久化文件最大存儲空間=持久化節點個數 x 持久化節點大小。當整個持久化文件占用存儲空間 閾值,最久的數據持久化節點將會被刪除。默認配置:130文檔版本:20200610物聯網邊緣計算用戶指南/6 斷網續傳配置項默認配置文件存儲目錄gw_history_record_storage_path/linkedge/run/history_record節點最大個數gw_history_record_node_num10個節點最大存儲空間gw_history_record_node_size104857600(100 MB)自定義配置:配置項操作獲取
200、文件存儲目錄命令:/linkedge/gateway/build/bin/tool_config-g gw_history_record_storage_path返回值:-Set config success./linkedge/storage表示獲取配置項成功,存儲路徑為/linkedge/storage-Get config fail,code:100100表示持久化存儲路徑未配置,將使用默認路徑/linkedge/run/history_record設置文件存儲目錄命令:/linkedge/gateway/build/bin/tool_config-s gw_history_record
201、_storage_path$存儲路徑返回值:-Set config success表示設置成功。-Get config fail,code:100100表示設置失敗,請檢查Link IoTEdge服務狀態。邊緣計算服務未對實際的存儲路徑進行限制,如果該路徑下當前用戶無讀寫權限,會造成message-router服務異常。獲取節點個數命令:/linkedge/gateway/build/bin/tool_config-g gw_history_record_node_num返回值:-Set config success.20表示獲取配置項成功,節點個數20。-Get config fail,co
202、de:100100表示節點個數未配置,將使用默認值10。文檔版本:20200610131物聯網邊緣計算用戶指南/6 斷網續傳配置項操作設置節點個數命令:/linkedge/gateway/build/bin/tool_config-s gw_history_record_node_num$節點個數返回值:-Set config success表示設置成功。-Get config fail,code:100100表示設置失敗,請檢查Link IoTEdge服務狀態。節點個數可配范圍1-INT_MAX,如果配置越界,日志將會打印the node num must be between 1 and
203、INT32_MAX錯誤。獲取節點最大存儲空間命令:/linkedge/gateway/build/bin/tool_config-g gw_history_record_node_size返回值:-Set config success.10485760表示獲取配置項成功,節點最大存儲空間10485760(10 MB)。-Get config fail,code:100100表示節點最大存儲空間未配置,將使用默認值104857600(100 MB)。設置節點最大存儲空間命令:/linkedge/gateway/build/bin/tool_config-s gw_history_record_n
204、ode_size$節點最大存儲空間返回值:-Set config success表示設置成功。-Get config fail,code:100100表示設置失敗,請檢查Link IoTEdge服務狀態。存儲空間可配范圍1-LONGLONG_MAX,如果配置越界,日志將會打印the node size must be between 1 and INT64_MAX錯誤。功能驗證以下將使用示例驅動章節的光照度傳感器為例,驗證斷網續傳功能。請參見示例驅動。該實例的消息路由目標已設置為IoT Hub,服務級別已設置為1;邊緣端持久化配置項使用默認配置。1.查看歷史數據空間占用。查看當前持久化文件占用
205、空間,數據結構會占用一部分磁盤空間。說明:持久化文件目錄空間!=0并不意味著有歷史數據存在。#du/linkedge/run/history_record/-d 0-h132文檔版本:20200610物聯網邊緣計算用戶指南/6 斷網續傳28.0K/linkedge/run/history_record/2.仿真網絡異常狀態。拔掉網線,間隔幾秒時間執行命令,可以看到持久化文件目錄空間占用持續遞增。#du/linkedge/run/history_record/-d 0-h28.0K/linkedge/run/history_record/#du/linkedge/run/history_reco
206、rd/-d 0-h56.0K/linkedge/run/history_record/#du/linkedge/run/history_record/-d 0-h文檔版本:20200610133物聯網邊緣計算用戶指南/6 斷網續傳92.0K/linkedge/run/history_record/3.恢復網絡。重新插上網線,網絡恢復后,登錄控制臺查看光照傳感器運行狀態頁面,檢查斷網期間是否有數據丟失。a)登錄物聯網平臺控制臺。b)在左側導航欄中選擇邊緣計算 邊緣實例。c)選中之前創建的實例,單擊查看。本示例中,查看LinkIoTEdge_Node實例。d)單擊設備與驅動頁簽,然后單擊全部驅動下
207、的目標驅動,在設備列表找到待查看的設備,單擊查看,即可跳轉到設備詳情頁。本示例中,查看LightSensor設備。e)在設備詳情頁,單擊物模型數據下的運行狀態頁簽,打開實時刷新,查看設備上報的最新屬性數據。f)單擊查看數據,可以看到該屬性的歷史數據。您可以根據時間戳判斷斷網期間是否有數據。本示例中,斷網期間的數據,也上傳到了云端。134文檔版本:20200610物聯網邊緣計算用戶指南/6 斷網續傳常見問題斷網續傳會對磁盤IO有影響嗎?答:斷網期間Link IoT Edge會對上云數據進行本地持久化操作,具體視消息量大小。網絡恢復后,在控制臺查看發現斷網期間有數據未上報?答:目前對歷史數據上報限
208、流為10條數據/秒。如果邊緣端有大量的歷史數據等待上報,完成這一動作將會花費較長的時間。如何自定義持久化文件存儲路徑及最大存儲空間?答:可參考邊緣端持久化配置項部分的內容,請參見邊緣端持久化配置項。斷網期間,數據持久化文件占用空間達到設定的閾值,新的數據會保存嗎?答:會的。當歷史數據持久化文件占用空間達到閾值,最久的歷史數據將會被刪除。如何查看斷網續傳模塊日志?答:-cd/linkedge/run/logger/message-router/-tail-f log.INFO文檔版本:20200610135物聯網邊緣計算用戶指南/7 消息路由7 消息路由7.1 什么是消息路由消息路由即通過路由規
209、則動態規劃消息的傳輸路徑,使消息按照過濾條件,從消息源路由到目標節點。通過消息路由,可實現對數據路由的靈活控制和提高數據安全性。IoT邊緣計算基于消息路由,將數據在設備、函數計算、IoT Hub之間進行流轉。支持同時存在多條路由路徑。目前支持以下幾種消息路由路徑:設備至函數計算。設備至IoT Hub。函數計算至函數計算。函數計算至 IoT Hub。IoT Hub至函數計算。關于消息路由QoS(消息投遞質量),目前Link IoT Edge五種消息路由路徑全部支持QoS=0;目的端為IoT Hub的消息路由路徑還支持QoS=1。說明:136文檔版本:20200610物聯網邊緣計算用戶指南/7 消
210、息路由QoS=0代表最多一次,QoS=1代表最少一次,QoS=2代表有且僅有一次。后續所有路由路徑將完全支持其他兩種QoS標準。圖 7-1:消息路由示意圖7.2 設置消息路由消息路由即通過路由規則動態規劃消息的傳輸路徑,使消息按照過濾條件,從消息源路由到目標節點。前提條件消息路由需在邊緣實例中設置。您需在設置消息路由之前,先創建邊緣實例,并為該實例分配網關、驅動、設備和邊緣應用。操作步驟1.登錄物聯網平臺控制臺。2.在左側導航欄中,單擊邊緣計算 邊緣實例。3.找到您要設置消息路由的實例,單擊操作欄中的查看。文檔版本:20200610137物聯網邊緣計算用戶指南/7 消息路由4.在實例詳情頁面,
211、單擊消息路由頁簽,然后單擊分配路由。5.在彈出的分配消息路由對話框中,設置分配消息路由的配置項。配置完成后,單擊確定。參數名稱參數說明路由名稱設置一個消息路由名稱。長度限制為432個字符,漢字和中文符號算2個字符。消息來源選擇消息的發送者。設備:表示已分配至該實例的設備發送消息。-全部產品:該實例下的全部設備都是消息來源。-全部設備:具體產品下分配至該實例的全部設備都是消息來源。-您也可以指定具體產品和設備名稱,表示該指定設備是消息來源。邊緣應用:表示消息由邊緣應用發出,需選擇已分配給該邊緣實例的邊緣應用名稱。IoT Hub:表示消息由云端發出。此時,依賴網關產品下的如下自定義Topic類,請
212、確認您的網關產品下是否已存在該Topic類。若沒有,請添加該Topic類。操作方法請參見 物聯網平臺用戶指南 文檔中設備接入 消息通信Topic 自定義Topic。-Topic類:/YourProductKey/$deviceName/user/#,其中YourProductKey為變量,表示網關產品的ProductKey;$deviceName通配DeviceName。-設備操作權限:訂閱138文檔版本:20200610物聯網邊緣計算用戶指南/7 消息路由參數名稱參數說明消息主題過濾設置消息過濾條件。只有滿足此條件的消息才能到達消息目標。設置方法如下:當消息來源為設備時:可選擇為設備的屬性、
213、事件或全部。當消息來源為邊緣應用時:需自定義,定義方法請參見 物聯網平臺用戶指南 文檔中設備接入 消息通信Topic 什么是Topic??墒褂猛ㄅ浞?”和“#”。當消息來源為IoT Hub時:從下拉框中選擇需要過濾的Topic類。消息目標消息的接收者。邊緣應用:需要指定應用的名稱。IoT Hub:表示消息需要上傳到云端。則需要設置服務級別,請參見下方服務級別參數說明。文檔版本:20200610139物聯網邊緣計算用戶指南/7 消息路由參數名稱參數說明服務級別當消息目標為IoT Hub時,需要設置服務級別來確定您的設備數據是否支持斷網續傳。0:表示需要上傳到云端的消息在網絡異常狀態下會丟失。1
214、:表示在網絡異常時,需要上傳到云端的消息將被保存在本地存儲區,在網絡恢復后Link IoT Edge將存儲區中的歷史數據續傳到云端。當消息路由路徑是邊緣應用至IoT Hub,并選擇服務級別為1時,需在網關產品下,自定義如下Topic類(操作方法請參見 物聯網平臺用戶指南 文檔中設備接入 消息通信Topic 自定義opic章節,并重啟網關。-Topic類:/YourProductKey/YourDeviceName/user/restore,其中,將YourProductKey和YourDeviceName替換為網關的設備證書信息。-設備操作權限:訂閱斷網續傳的歷史數據會通過此Topic上傳至云
215、端。您可以通過云端規則引擎,分類處理網絡恢復后續傳的歷史數據。歷史數據格式如下:topic:yyyyy,payload:.#string型或object型 其中topic為原上云數據的Topic,payload為原上云的數據內容。說明:服務級別選擇1時,在網絡異常狀態下CPU和磁盤IO占用量會增加,當數據量很大時可能會耗盡系統磁盤和CPU資源。不同的系統性能其承受的負載上限有所不同,請您根據自身需求選擇是否支持斷網續傳。說明:有相同消息來源和消息目標、不同消息主題過濾的路由,其消息最多轉發一次。即路由執行后,如果有一條路由匹配成功,則剩余的路由不再匹配執行。有不同消息來源或消息目標的所有路由,
216、會依次匹配執行。此時可能會有邏輯上的重復執行轉發消息的情況。例如,一條路由消息來源是全部設備,消息目標是IoT Hub,另一條路由消息來源是設備A,消息目標也是IoT Hub;當設備A發送消息時,上述兩條路由都會匹配執行,即設備A的數據向IoT Hub發送兩次。140文檔版本:20200610物聯網邊緣計算用戶指南/7 消息路由7.3 消息路由設置示例一個邊緣實例可以設置一個或多個消息路由路徑。本節將以示例來展示Link IoT Edge支持的五種消息路由路徑的設置方法和消息查看方法。設置消息路由的操作,請參見設置消息路由。消息路由路徑:從設備路由到IoT Hub新建邊緣實例后,會自動分配一個
217、從設備路由到IoT Hub的默認路由,將設備的全部消息(屬性和事件)上報至云端(IoT Hub)。如果邊緣實例中的默認路由被移除,或者您需要將單個設備的屬性、事件或全部消息上報到云端,您可以手動添加從設備路由到IoT Hub的消息路由。下圖示例表示,Light設備的屬性及事件信息會上報到云端,并且在斷網后設備數據無法上報到云端時,Link IoT Edge會將這些數據存儲到本地,在恢復網絡后把本地數據重新傳到云端。文檔版本:20200610141物聯網邊緣計算用戶指南/7 消息路由查看消息:通過消息主題過濾后的設備數據發送到云端后,您便可以在物聯網平臺控制臺,該子設備所屬產品的日志服務頁面查看
218、設備上報的數據。消息路由路徑:從設備路由到邊緣應用將設備的屬性或全部消息(屬性和事件)發送至邊緣應用中。下圖中的示例表示,將Light設備的屬性信息發送到指定的lightSensorDataFilter函數計算應用中。查看消息:目前,由于路由到函數計算應用的消息未上報云端,所以只能在網關本地日志中查看。用tail命令查看網關本地日志。命令格式:tail-f/linkedge/run/logger/fc-base/module name/log.INFO。其中,變量module name需填寫您實際的模塊名稱。示例:tail-f/linkedge/run/logger/fc-base/funct
219、ion-compute/log.INFO,function-compute為函數計算應用的模塊名。消息路由路徑:從邊緣應用路由到IoT Hub將邊緣應用中的數據發送到云端。142文檔版本:20200610物聯網邊緣計算用戶指南/7 消息路由注意:僅函數計算類型的邊緣應用,支持使用消息路由。下圖中的示例表示,lightSensorDataFilter函數計算應用過濾出符合/productkey/devicename/user/#的消息主題,并將該消息主題中的消息發送給云端,當網絡故障后,Link IoTEdge將lightSensorDataFilter函數計算應用無法上報的消息存儲到本地,并在
220、網絡恢復后將本地數據重新上報到云端。說明:/productkey/devicename/user/#是您自定義的一個發送消息到云端(IoT Hub)的消息主題。具體設置方法請參見 物聯網平臺用戶指南 文檔中設備接入 消息通信Topic 自定義Topic章節。文檔版本:20200610143物聯網邊緣計算用戶指南/7 消息路由查看消息:函數計算應用的數據上報到云端后,您可以在物聯網平臺控制臺中,實例網關設備所屬產品的日志服務頁面查看上報的數據。消息路由路徑:從邊緣應用A路由到邊緣應用B將邊緣應用A的數據發送到邊緣應用B中。注意:僅函數計算類型的邊緣應用,支持使用消息路由。下圖中的示例表示,函數計
221、算應用A過濾出符合/xxxx的消息主題,并將該消息主題中的消息發送給函數計算應用B。查看消息:路由到函數計算應用的數據只能在網關設備本地日志中查看。具體方法,請參見本文檔消息路由路徑:從設備路由到邊緣應用內容,查看消息日志的方法。144文檔版本:20200610物聯網邊緣計算用戶指南/7 消息路由消息路由路徑:從IoT Hub路由到邊緣應用云端發送消息至邊緣應用中。注意:僅函數計算類型的邊緣應用,支持使用消息路由。下圖中的示例表示,IoT Hub濾條出符合/productkey/devicename/user/#的消息主題,并將此消息主題中的消息發送給函數計算。說明:云端使用以/$Your_P
222、roductKey/$Your_DeviceName/user為前綴的消息主題,發送消息給邊緣端。查看消息:路由到函數計算應用的數據只能在網關設備本地日志中查看。具體方法,請參見本文檔消息路由路徑:從設備路由到邊緣應用內容,查看消息日志的方法。文檔版本:20200610145物聯網邊緣計算用戶指南/8 遠程運維管理8 遠程運維管理遠程服務訪問包含了遠程連接(SSH協議),遠程文件管理(SFTP協議)和其他基于TCP協議的網絡服務遠程訪問。Link IoT Edge默認具有遠程服務訪問功能,同時也允許您單獨集成該功能,集成方法請參見github開源庫。遠程連接和遠程文件管理基于SSH技術實現,方
223、便您遠程登錄網關設備進行設備控制和文件管理,其使用的用戶名和密碼是Docker鏡像或網關上SSH服務的用戶名與密碼。準備工作1.創建邊緣實例并上線網關,具體請參見環境搭建2.邊緣實例創建完成后,開啟遠程訪問功能。在該邊緣實例的實例詳情頁面的網關頁簽中開啟遠程訪問功能。a.登錄物聯網平臺控制臺。b.在左側導航欄選擇邊緣計算 邊緣實例,單擊目標邊緣實例后的查看,進入實例詳情頁面。c.在實例詳情頁面,單擊網關頁簽,開啟遠程訪問功能。3.登錄網關設備,開啟SSH服務,且端口默認為22。開啟SSH服務方法請參見OpenSSH Server。說明:如果端口有變更,需要局域網登錄網關,并手動修改/linke
224、dge/gateway/build/config/remote_terminal.json中的port字段為新的端口,同時網關必須支持127.0.0.1本地回環端口的訪問。遠程SSH終端1.登錄物聯網平臺控制臺。2.在左側導航欄選擇邊緣計算 邊緣實例。3.選擇已創建的實例,單擊右側的查看。146文檔版本:20200610物聯網邊緣計算用戶指南/8 遠程運維管理4.在實例詳情頁面,單擊網關頁簽,然后在網關名稱右側操作欄中單擊遠程SSH終端。5.在彈出對話框中,輸入遠程登錄網關的用戶名和密碼,單擊確定。連接成功后,您將看到如下遠程控制臺頁面。注意:遠程登錄網關,具有高級權限,可進行更新、刪除、改動
225、、查看各類網關設備的信息和文件。請謹慎使用。6.(可選)在遠程控制臺,可以對遠程文件進行管理。目前遠程文件管理提供目錄瀏覽與創建,文件上傳與下載等功能。各功能說明如下所示。操作說明刷新刷新遠程文件目錄。新增目錄單擊新增目錄,在彈出的對話框中輸入目錄名稱并單擊確定,可增加一個新的遠程文件目錄。說明:目錄名稱支持中文、英文字母和數字,長度不超過64個字節。文檔版本:20200610147物聯網邊緣計算用戶指南/8 遠程運維管理操作說明上傳文件單擊上傳文件,在彈出的對話框中單擊上傳按鈕上傳文件,上傳成功后單擊確定,可上傳本地文件到遠程文件目錄。下載單擊下載,可下載遠程文件到本地。刪除單擊刪除,可刪除
226、遠程文件。注意:刪除遠程文件后不可恢復,請謹慎操作。更多遠程服務遠程訪問網關的SSH和SFTP服務時,可通過網關的Linux系統用戶名和密碼,登錄遠程服務。說明:在邊緣網關Linux系統命令行中執行whoami,即可獲取用戶名;若Link IoT Edge在邊緣網關的Docker環境中運行,則默認用戶名為root,密碼為iiot。在實例詳情頁面,單擊網關頁簽,在網關名稱右側操作欄中單擊更多遠程服務,并在彈出窗口中選擇需要訪問的SSH或SFTP服務。148文檔版本:20200610物聯網邊緣計算用戶指南/8 遠程運維管理文檔版本:20200610149物聯網邊緣計算用戶指南/9 運維工具9 運維
227、工具9.1 設備批量處理工具物聯網邊緣計算提供多個跨平臺的命令行工具(即批量處理工具),支持您批量處理設備和設備相關操作。Modbus設備批量導入工具您需要先獲取批量導入工具。獲取方法,請參見工具獲取方式。獲取工具后,您只需依照已獲取工具中Excel模板填寫設備信息,Modbus設備批量導入工具即可幫助您自動完成產品和設備的配置,將多個Modbus協議的產品或設備自動接入網關,并通過官方Modbus驅動將設備屬性上傳到云端。批量設備操作工具支持您批量創建產品、批量創建/刪除設備、批量授權/取消授權設備、批量創建指定TSL(即物模型,Thing Specification Language)的產
228、品及設備等操作。說明:物聯網平臺物模型規范請參見 物聯網平臺用戶指南 文檔設備接入 物模型下的所有章節。批量導入或者導出設備功能定義工具支持您使用Excel批量導入或者導出產品的物模型,適用于為一個產品設置多個設備屬性/事件/服務,或者為多個產品設置設備屬性/事件/服務的場景。工具獲取方式請按如下模板發送郵件至link-iot-edge-supportlist.alibaba-,聯系我們獲取設備批量操作工具以及詳細的使用說明。郵件主題:獲取操作說明文檔郵件內容:公司名稱:公司所屬行業信息:產品和設備信息:(簡要描述貴公司產品和設備信息,以獲取更多定制化服務)聯系人:聯系電話:工具名稱及使用需求
229、描述:150文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具9.2 lectl管理運維工具lectl管理運維工具(以下簡稱ectl)是物聯網邊緣計算提供的管理Link IoT Edge及其資源的命令行工具,可幫助您更好的使用Link IoT Edge。您可以在LINKEDGE_ROOT/gateway/build/bin目錄下找到lectl工具。說明:LINKEDGE_ROOT指Link IoT Edge軟件包根目錄所在的路徑,通常為/linkedge/。獲取幫助在lectl及子命令后添加-help命令,可獲取幫助信息。頂層的幫助信息如下。$lectl-helpUsage:lec
230、tl OPTIONS COMMANDManage Link IoT Edge services and provide local services.Options:-v,-version Print version information and quitCommands:completion Output shell completion code config Manage configs device Manage devices diagnose Check if the local environment is setup correctly fc Manage function
231、compute logger Manage logger service and logs sc Manage stream computeRun lectl COMMAND-help for more information on a command.自動補全lectl支持bash和zsh的自動補全功能,提升輸入效率。文檔版本:20200610151物聯網邊緣計算用戶指南/9 運維工具bash通過在網關上執行lectl completion bash命令,生成Lectl的bash自動補全腳本,并將腳本導入到Shell中,即可啟動Lectl的bash自動補全功能。但由于bash自動補全腳本依賴
232、bash-completion,且各種包管理系統提供的bash-completion不同,因此您需要按照如下步驟啟動Lectl的bash自動補全功能。1.在網關上執行type _init_completion命令,檢查系統是否安裝了bash自動補全腳本依賴的bash-completion。-已安裝:請跳轉到步驟4。-未安裝:請跳轉到步驟2。2.通過系統自帶的包管理系統,安裝bash-completion。-RedHat系列操作系統:yum install bash-completion-Debian系列操作系統:apt-get install bash-completion關于更多包管理系統提
233、供的bash-completion相關信息,請參見開源庫。3.將安裝bash-completion后生成的/usr/share/bash-completion/bash_completion文件添加到.bashrc文件中。source/usr/share/bash-completion/bash_completion4.啟用自動補全功能。有如下兩種啟用方法:-直接導入bash自動補全腳本到當前的Shell。(推薦使用)source(lectl completion bash)說明:152文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具使用此方法后,在退出Shell時自動補全功能失
234、效。若需要自動補全功能一直生效,請執行echo source /.bashrc,將此命令添加到.bashrc文件中。-將bash自動補全腳本添加到bash_completion.d目錄。lectl completion bash /etc/bash_completion.d/lectlzsh通過lectl completion zsh命令,生成Lectl的zsh自動補全腳本,并將生成的腳本導入到Shell中,即可啟用zsh自動補全功能。在網關上執行如下命令,一步實現生成zsh自動補全腳本和啟用自動補全功能。source 物模型下的所有章節??刂乒ぞ撸焊淖冊O備模擬器的屬性值、觸發設備模擬器進行事
235、件上報。您只需要將設備和設備模擬器的驅動綁定,并部署至邊緣端,結合控制工具,便可以脫離真實的物理設備進行應用程序的測試。下文將會對設備模擬器的使用進行詳細介紹。前提條件下載設備模擬器驅動。請聯系管理員獲取專業版、標準版Link IoT Edge最新版本驅動的下載地址,下載并保存到本地。產品規格邊緣版本號驅動下載地址專業版、標準版最新版本請聯系管理員獲取設備模擬器只適用于Link IoT Edge標準版和專業版v1.7及以上版本環境中使用,因此開始操作本章內容前,請確保您已完成邊緣實例的創建。具體操作請參見專業版環境搭建或標準版環境搭建。162文檔版本:20200610物聯網邊緣計算用戶指南/9
236、 運維工具使用設備模擬器驅動1.上傳驅動。a)登錄物聯網平臺控制臺。b)在左側導航欄中,單擊邊緣計算 驅動管理。c)在驅動管理頁面,單擊自研驅動頁簽,然后單擊新建驅動。d)在新建驅動界面設置驅動參數,上傳前提條件中下載到本地的設備模擬器驅動文件。本示例中的參數設置如下圖所示,其余參數可根據您的實際情況進行配置,也可不配置。配置參數說明,請參見云端發布。文檔版本:20200610163物聯網邊緣計算用戶指南/9 運維工具e)完成參數的設置并上傳成功驅動文件后,單擊確認。您可以在驅動列表中看到剛剛創建的驅動。164文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具2.分配驅動到邊緣實例
237、。a)左側導航欄選擇邊緣計算 邊緣實例,單擊前提條件中創建的邊緣實例右側的查看。b)在實例詳情頁面設備與驅動頁簽下,單擊全部驅動右側的+圖標,在彈出頁面中選擇自研驅動,選擇上一步創建的DeviceSimulator驅動,單擊分配,將該驅動分配到邊緣實例。c)(可選)若您的邊緣實例產品規格為專業版,則需要進行容器配置。選擇已分配的DeviceSimulator驅動,單擊設備列表右側的容器配置,設置如下圖參數后,單擊保存。網絡端口映射參數說明如下所示,其他說明請參見示例驅動。文檔版本:20200610165物聯網邊緣計算用戶指南/9 運維工具表 9-7:參數說明參數描述宿主端口設置一個宿主機當前沒
238、有在使用的端口號,將容器內端口映射到此端口上,例如設置為8999端口。容器內端口容器內端口固定位為9000。協議類型此處選擇TCP。166文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具3.添加子設備到邊緣實例。a)在全部驅動下,選擇DeviceSimulator驅動,單擊分配子設備,在DeviceSimulator驅動下,為邊緣實例分配子設備。b)在分配子設備對話框中,單擊添加子設備。c)在添加設備對話框,單擊新建產品,創建產品。d)在創建產品對話框中設置參數后,單擊完成。表 9-8:參數說明參數描述產品名稱設置產品名稱。e)在添加設備對話框,單擊前往配置為產品添加物模型。為產
239、品添加temperature屬性。請參考 物聯網平臺用戶指南 文檔中設備管理 物模型 單個添加物模型中“添加自定義功能”的步驟。文檔版本:20200610167物聯網邊緣計算用戶指南/9 運維工具為產品添加high_temperature事件。請參考 物聯網平臺用戶指南 文檔中設備管理 物模型 單個添加物模型中“添加自定義功能”的步驟。168文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具為事件增加參數。文檔版本:20200610169物聯網邊緣計算用戶指南/9 運維工具f)返回添加設備對話框,輸入DeviceName后單擊確定,為產品添加設備。g)在分配子設備對話框中,選擇溫度
240、傳感器產品下的temperatureSensor01的設備,單擊該設備右側的分配,將該設備分配到實例中。170文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具4.部署邊緣實例。在實例詳情頁面,右上角單擊部署,部署邊緣實例。此時會有部署進程的彈窗,您可以單擊彈框中的查看日志查看具體部署情況。部署成功后邊緣實例名稱后顯示部署成功。使用設備模擬器控制工具設備模擬器控制工具的功能和真實物理設備的按鍵類似。完成本文上方使用設備模擬器驅動的操作后,可使用設備模擬器控制工具。1.登錄您的遠程終端。登錄操作詳情請見遠程運維管理。2.(可選)若您使用Link IoT Edge專業版軟件,則需要在遠
241、程終端執行docker ps|grep 驅動名,查看是否有驅動容器。如果有驅動容器,則需要執行如下命令,修改設備模擬器工具配置。否則無需執行此步驟。echo 宿主機IP:宿主機端口 /linkedge/run/ds_ctrl.conf說明:宿主機IP為您邊緣網關的宿主機IP;宿主機端口為您在本文上方使用設備模擬器驅動中的步驟2進行容器配置時設置的端口(本示例中為8999)。3.使用設備模擬器控制工具控制設備行為。進入/linkedge/gateway/build/bin 目錄,執行./ds_ctrl命令即可看到工具的使用方式。Usage:ds_ctrl where is one of:prop
242、erty,eventds_ctrl property productKey deviceName params Change propertyds_ctrl event productKey deviceName eventCode params Trigger eventFor example(productKey=xxx,deviceName=yyy):ds_ctrl property xxx yyy temperature:30文檔版本:20200610171物聯網邊緣計算用戶指南/9 運維工具 ds_ctrl event xxx yyy alarm temperature:90可改變設
243、備屬性:a.改變溫度。使用工具將溫度傳感器溫度改為30。./ds_ctrl property a1WuxHrhojr temperatureSensor01 temperature:30系統返回如下信息,表示溫度設置成功。Send property success!b.在物聯網平臺控制臺,選擇設備管理 設備,在相應設備名稱右側單擊查看。在設備詳情頁面查看設備的運行狀態。c.(可選)模擬多次溫度變化。連續執行如下命令5次,每次將溫度值+1。./ds_ctrl property a1WuxHr*temperatureSensor01 temperature:31可在控制臺中,設備的運行狀態頁面下查
244、看數據變化。172文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具可觸發設備事件:a.上報高溫事件。./ds_ctrl event a1WuxHr*temperatureSensor01 high_temperature temperature:90b.在物聯網平臺控制臺,選擇設備管理 設備,在已相應設備名稱右側單擊查看。在設備詳情頁面查看設備的事件管理內容。文檔版本:20200610173物聯網邊緣計算用戶指南/9 運維工具在線調試設備1.在物聯網平臺控制臺,選擇監控運維 在線調試,在在線調試頁面,選擇調試產品和調試設備。174文檔版本:20200610物聯網邊緣計算用戶指南/9 運維工具2.獲取設備屬性。選擇功能、方法后,單擊發送指令,即可在輸入框中看到當前溫度值為35。文檔版本:20200610175物聯網邊緣計算用戶指南/9 運維工具3.設置設備屬性。將溫度設為40,單擊發送指令后可在設備運行狀態查看溫度傳感器溫度值已變更為40。4.其他自定義服務,會將相關信息打印到驅動日志中,并返回如下信息。code:0,message:success176文檔版本:20200610