理解 Azure IoT Hub 的直接方法調(diào)用

來源: 騰訊網(wǎng)
作者:AzureDeveloper
時(shí)間:2021-11-15
15675
可以從云直接調(diào)用設(shè)備的方法,這個(gè)方法就叫直接方法,該方法的是類似于的請(qǐng)求,屬于應(yīng)答式的請(qǐng)求,而且要求設(shè)備在過期時(shí)間范圍內(nèi)應(yīng)答,否則就會(huì)失敗。直接方法的應(yīng)用場(chǎng)景適合于和單個(gè)或者少量設(shè)備進(jìn)行交互的場(chǎng)景。

可以從云直接調(diào)用設(shè)備的方法,這個(gè)方法就叫直接方法,該方法的是類似于的請(qǐng)求,屬于應(yīng)答式的請(qǐng)求,而且要求設(shè)備在過期時(shí)間范圍內(nèi)應(yīng)答,否則就會(huì)失敗。直接方法的應(yīng)用場(chǎng)景適合于和單個(gè)或者少量設(shè)備進(jìn)行交互的場(chǎng)景。

photo-1558644737-83e2c885c51e.JPG

每個(gè)直接方法的對(duì)象都是單個(gè)的設(shè)備,如果計(jì)劃一次性操作大量的設(shè)備,那么考慮使用, 它主要可用于:

多個(gè)設(shè)備上調(diào)用直接方法。

規(guī)劃在掉線設(shè)備上線后調(diào)用方法。

直接方法的生命周期

直接方法的實(shí)際應(yīng)用是在設(shè)備上實(shí)現(xiàn)的,設(shè)備可以以方法的形式接受參數(shù)輸入。用戶一般從service SDK或者是service側(cè)開始調(diào)用設(shè)備的直接方法,如果使用rest api, service側(cè)的URI是, 設(shè)備通過協(xié)議從:iothub/methods/POST//接受請(qǐng)求。(如果是協(xié)議,則使用:IoThub-methodname and IoThub-status ), 需要注意的是中只能使用US-ASCII字符。

直接方法是同步方法(注意所有的SDK關(guān)于同步的實(shí)現(xiàn)), 在設(shè)定的超時(shí)時(shí)間內(nèi),要么失敗,好么成功。注意默認(rèn)超時(shí)時(shí)間是30秒,可設(shè)置的值是從5秒到300秒之間。

直接方法使用的協(xié)議是:

Service端是HTTPS

設(shè)備端是, 或者 +

一定是一個(gè)json對(duì)象,最大大小是128KB

從后端應(yīng)用上調(diào)用直接方法

后端應(yīng)用是通過來通過發(fā)起直接方法調(diào)用的,如果不使用SDK,可以直接調(diào)用reset api:

https://fully-qualified-iothubname.azure-devices.net/twins//methods?api-version=2018-06-30

該rest api必須使用來調(diào)用,傳入body進(jìn)行調(diào)用:

{

"methodName":"reboot",

"responseTimeoutInSeconds":200,

"payload":{

"input1":"someInput",

"input2":"anotherInput"

}

}

我們可以使用來調(diào)用:

curl-X POST \

https://.azure-devices.net/twins//methods?api-version=2018-06-30 \

-H'Authorization: SharedAccessSignature sr=iothubname.azure-devices.net&sig=x&se=x&skn=iothubowner'\

-H'Content-Type: application/json'\

-d'{

"methodName": "reboot",

"responseTimeoutInSeconds": 200,

"payload": {

"input1": "someInput",

"input2": "anotherInput"

}

}'

認(rèn)證只需要 Key就可以了。

如果是在IoT Edge module上運(yùn)行直接方法:

https://.azure-devices.net/twins//modules//methods?api-version=2018-06-30

后端應(yīng)用會(huì)接收到一個(gè)回復(fù),主要的回復(fù)包括如下的字段:

HTTP狀態(tài)碼

200 表示運(yùn)行成功

404 表示,給出的設(shè)備id不合法,或者設(shè)備不在線。

504 表示gateway和設(shè)備之間的聯(lián)系超時(shí)。

頭里包括ETAG, Request Id, Content Type, Content Encoding.

Json格式的消息體:

{

"status":201,

"payload":{...}

}

注意這里的body和body里面的status都是由設(shè)備提供,實(shí)現(xiàn)自己的邏輯的。

也可以在上調(diào)用直接方法,用法一樣,但是要提供

設(shè)備上處理直接方法

設(shè)備上可以通過協(xié)議和協(xié)議來處理。

MQTT

通過MQTT的topic 來接受直接方法的調(diào)用。方法收到的方法體:

{

"input1":"someInput",

"input2":"anotherInput"

}

注意

方法的請(qǐng)求QoS被設(shè)置為了0, 也就是說最多發(fā)送一次。不保證請(qǐng)求一定到達(dá)設(shè)備。

Response

設(shè)備送回復(fù)到topic: iothub/methods/res//?$rid=

屬性由設(shè)備提供狀態(tài)

屬性是request id,通過后端方法調(diào)用傳入的。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于騰訊網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家