日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

當(dāng)我們在使用 Shifu 采集數(shù)據(jù)的時候,通常會出現(xiàn)從設(shè)備所采集到的數(shù)據(jù),與我們所需要的數(shù)據(jù)格式不同的情況。為解決此問題,我們可以使用 Shifu + WasmEdge 實現(xiàn)把 Shifu 采集到的數(shù)據(jù)通過 WasmEdge 進(jìn)行處理后再返回給我們的應(yīng)用程序。

簡介

本文將簡單介紹如何將 WasmEdge 集成到 Shifu 中,從而實現(xiàn)從IoT設(shè)備上采集的數(shù)據(jù)的清洗。

 

以下為基本架構(gòu):

 

以下為本項目的數(shù)據(jù)流:

 

Shifu 簡介

 

Shifu 為用戶提供全場景設(shè)備托管與一體化軟件開發(fā)的透明框架。開發(fā)者通過使用 Shifu,可以更簡單地連接、監(jiān)視和控制任何物聯(lián)網(wǎng)設(shè)備。

Shifu 的創(chuàng)新優(yōu)勢是通過透明框架內(nèi)的數(shù)字孿生技術(shù),為設(shè)備賦予有思考能力的 “數(shù)字大腦”。數(shù)字孿生將反映設(shè)備的實時狀態(tài),對其進(jìn)行開發(fā)操作等同于操作設(shè)備本身。物聯(lián)網(wǎng)設(shè)備接入到 Shifu 中便會生成標(biāo)準(zhǔn)化接口,實現(xiàn)互聯(lián)網(wǎng)互動,通過平臺層對場景內(nèi)所有設(shè)備、機(jī)器進(jìn)行北向數(shù)據(jù)收集和南向指令管控。

Shifu 是基于Kube.NETes的云原生架構(gòu),創(chuàng)造性地將物聯(lián)網(wǎng)設(shè)備對應(yīng)為Kubernetes中的Pod,釋放了物聯(lián)網(wǎng)平臺在邊緣場景的設(shè)備管理能力以及云邊端協(xié)同能力。云原生架構(gòu)為物聯(lián)網(wǎng)的應(yīng)用開發(fā)提供了超高的系統(tǒng)穩(wěn)定性,并提供給開發(fā)者僅運(yùn)維一套架構(gòu)實現(xiàn)對物聯(lián)網(wǎng)的平臺級維護(hù)。

Shifu 官方網(wǎng)站:https://shifu.run

 

WasmEdge 簡介

WasmEdge 是輕量級、安全、高性能、符合 OCI 標(biāo)準(zhǔn)的軟件容器與運(yùn)行環(huán)境。目前是 CNCF 沙箱項目。WasmEdge 被應(yīng)用在 Servrless SaaS、云原生,service mesh、邊緣云、邊緣設(shè)備、智能合約等領(lǐng)域。

WasmEdge 作為輕量級的容器,footprint 只有幾兆,能夠在資源受限的環(huán)境提供安全且不損失性能的運(yùn)行環(huán)境。

嵌入式 Runtime 是 WasmEdge 的一個典型應(yīng)用場景,WasmEdge 提供了 C/C++、Rust、 Golang 等 SDK,方便開發(fā)者將 WasmEdge 嵌入到 現(xiàn)有的應(yīng)用軟件中,從而將幾乎任何應(yīng)用軟件變成可擴(kuò)展的開發(fā)者平臺。WasmEdge 作為嵌入到 Shifu 的輕量級容器,為 Shifu 提供了安全運(yùn)行第三方不受信任代碼的環(huán)境。

了解 WasmEdge 相關(guān)信息:

https://github.com/WasmEdge/WasmEdge

 

步驟

準(zhǔn)備

kubectl v1.24.2

Docker 20.10.16

kind v0.14.0

git 2.36.1

 

部署

為了方便您更快的了解本篇文章,您可以通過以下命令從GitHub上拉取本項目。

git clone https://github.com/Edgenesis/wasm-shifu-demo.git
cd wasm-shifu-demo

 

創(chuàng)建 kind 集群

使用以下命令創(chuàng)建 Kind 集群。

$ kind delete cluster && kind create cluster
Creating cluster "kind" ...
 ? Ensuring node image (kindest/node:v1.24.0) 
 ? Preparing nodes   
 ? Writing configuration  
 ? Starting control-plane ? 
 ? Installing CNI  
 ? Installing StorageClass  
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 

 

構(gòu)建 Shifu 鏡像

使用以下命令構(gòu)建 Shifu 鏡像。

$ make -f shifu/Makefile build-image-deviceshifu
$ kind load docker-image edgehub/deviceshifu-http-http:v0.0.6
$ docker images | grep edgehub/deviceshifu-http-http 
edgehub/deviceshifu-http-http                v0.0.6    1d6b3544b8ad   54 minutes ago   36.1MB

 

運(yùn)行虛擬設(shè)備

為了方便您的體驗,這里我們使用虛擬設(shè)備進(jìn)行模擬。安裝并運(yùn)行虛擬設(shè)備,設(shè)備的端口號為8099。

$ docker build -f mockDevice/dockerfile -t mockdevice:v0.0.1 .
$ docker run -p 8099:8099 -itd mockdevice:v0.0.1 
$ docker ps | grep mockdevice
bdfd2b1323be   mockdevice:v0.0.1      "./mockDevice"           19 seconds ago      Up 18 seconds      0.0.0.0:8099->8099/tcp      admiring_feistel

 

編寫規(guī)則,編譯wasm

您可以通過使用 JAVAScript 編寫規(guī)則。如果您不熟悉 JavaScript,您可以直接使用默認(rèn)規(guī)則。
規(guī)則文件路徑:
wasmEdge/js-func/src/js/run.js 您可以通過修改該規(guī)則實現(xiàn)不同的功能。

$ docker build -t wasm:v0.0.1 -f wasmEdge/js.dockerfile  .
$ kind load docker-image wasm:v0.0.1
$ kubectl Apply -f wasmEdge/k8s

您可以通過以下命令檢查 WasmEdge 的 pod 運(yùn)行情況。

$ kubectl get pod -n wasmedge
NAME                              READY   STATUS    RESTARTS   AGE
wasm-deployment-fbc9564d8-td428   1/1     Running   0          1s

 

安裝并運(yùn)行 Shifu

使用以下命令安裝 shifu。

$ kubectl apply -f shifuConfig/shifu_install.yml
$ kubectl get pod -n shifu-crd-system
NAME                                            READY   STATUS    RESTARTS   AGE
shifu-crd-controller-manager-5bbdb4d786-s6h4m   2/2     Running   0          1s

安裝 deviceShifu 與 mockDeivce 進(jìn)行連接。在此之前,請先將
shifuConfig/task3/task3.yaml 文件中的 address 修改成您電腦的IP。

spec:
  sku: "E93"
  connection: Ethernet
  address: "192.168.14.163:8099" #修改此處IP地址

通過一下命令,部署運(yùn)行 deviceShifu 。

$ kubectl apply -f shifuConfig/task3
$ kubectl get pod -n deviceshifu
NAME                                                 READY   STATUS    RESTARTS   AGE
deviceshifu-demodevice-deployment-5589b55569-l5nb2   1/1     Running   0          4s

 

體驗

您可以啟動一個 Nginx 與 deviceShifu 進(jìn)行通信。

$ kubectl run nginx --image=nginx:1.21
$ kubectl get pod 
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          3s

通過以下命令,您即可與設(shè)備的數(shù)字孿生進(jìn)行交互,從而實現(xiàn)從IoT設(shè)備上采集的數(shù)據(jù)的清洗。

$ kubectl exec -it nginx -- curl -v  http://deviceshifu-demodevice-service.deviceshifu.svc.cluster.local/get_info;echo
[
   {
      "code":375287,
      "name":"大氣溫度",
      "val":"24.56",
      "unit":"℃",
      "exception":"溫度過高"
   },
   {
      "code":375287,
      "name":"大氣濕度",
      "val":"81.63",
      "unit":"%RH",
      "exception":"濕度過高"
   }
]

 

同時我們可以使用以下命令查看IoT設(shè)備所產(chǎn)生的原始數(shù)據(jù)。

$ curl localhost:8099/getInfo
{
   "statusCode":"200",
   "message":"success",
   "entity":[
      {
         "dateTime":"2022-09-09 09:46:45",
         "eUnit":"℃",
         "eValue":"23.87",
         "eKey":"e1",
         "eName":"大氣溫度",
         "eNum":"101"
      },
      {
         "dateTime":"2022-09-09 09:46:45",
         "eUnit":"%RH",
         "eValue":"80.62",
         "eKey":"e2",
         "eName":"大氣濕度",
         "eNum":"102"
      }
   ],
   "deviceId":950920,
   "deviceName":"950920",
   "deviceRemark":"2022-09-09 09:46:45"
}

 

比較兩個輸出,我們成功地將數(shù)據(jù)采集并進(jìn)行清洗,從而得到我們想要的數(shù)據(jù)。

 

分享到:
標(biāo)簽:聯(lián)網(wǎng)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定