將 IoT Edge 上的 Azure Blob 存儲(chǔ)模塊部署到設(shè)備

來源: Microsoft
作者:Microsoft
時(shí)間:2021-03-01
16956
有多種方法可以將模塊部署到IoT Edge設(shè)備,并且所有這些方法都適用于IoT Edge上的Azure Blob存儲(chǔ)模塊。兩種最簡單的方法是使用Azure門戶或Visual Studio Code模板。

有多種方法可以將模塊部署到IoT Edge設(shè)備,并且所有這些方法都適用于IoT Edge上的Azure Blob存儲(chǔ)模塊。兩種最簡單的方法是使用Azure門戶或Visual Studio Code模板。

先決條件

·Azure訂閱中的IoT中心。

·IoT Edge設(shè)備。

如果未設(shè)置IoT Edge設(shè)備,可在Azure虛擬機(jī)中創(chuàng)建一個(gè)。按照創(chuàng)建虛擬Linux設(shè)備或創(chuàng)建虛擬Windows設(shè)備快速入門文章(其中一篇)中的步驟進(jìn)行操作。

·Visual Studio Code和Azure IoT Tools(如果從Visual Studio Code部署)。

從Azure門戶部署

Azure門戶引導(dǎo)你創(chuàng)建部署清單并將部署推送到IoT Edge設(shè)備。

選擇設(shè)備

1.登錄Azure門戶,導(dǎo)航到IoT中心。

2.從菜單中選擇“IoT Edge”。

3.在設(shè)備列表中單擊目標(biāo)設(shè)備的ID。

4.選擇“設(shè)置模塊”。

配置部署清單

部署清單是一個(gè)JSON文檔,其中描述了要部署的模塊、數(shù)據(jù)在模塊間的流動(dòng)方式以及模塊孿生的所需屬性。Azure門戶提供了一個(gè)引導(dǎo)你完成創(chuàng)建部署清單的向?qū)?。該向?qū)⑷齻€(gè)步驟整理成多個(gè)選項(xiàng)卡:“模塊”、“路由”和“查看+創(chuàng)建”。

添加模塊

1.在頁面的“IoT Edge模塊”部分,單擊“添加”下拉列表并選擇“IoT Edge模塊”,顯示“添加IoT Edge模塊”頁面。

2.在“模塊設(shè)置”選項(xiàng)卡上,提供模塊的名稱,然后指定容器映像URI:

示例:

·IoT Edge模塊名稱:azureblobstorageoniotedge

·映像URI:mcr.microsoft.com/azure-blob-storage:latest

addmodule-tab1.png

如本程序所述,在“模塊設(shè)置”、“容器創(chuàng)建選項(xiàng)”和“模塊孿生設(shè)置”選項(xiàng)卡上指定值之前,請(qǐng)勿選擇“添加”。

重要

調(diào)用模塊時(shí),Azure IoT Edge區(qū)分大小寫,存儲(chǔ)SDK也默認(rèn)為小寫。雖然在Azure市場(chǎng)中此模塊的名稱為AzureBlobStorageonIoTEdge,但將名稱更改為小寫有助于確保與IoT Edge上的Azure Blob存儲(chǔ)模塊建立的連接不會(huì)中斷。

3.打開“容器創(chuàng)建選項(xiàng)”選項(xiàng)卡。

addmodule-tab3.png

將以下JSON復(fù)制并粘貼到框中,以便為設(shè)備上的存儲(chǔ)提供存儲(chǔ)帳戶信息和裝載。

JSON

{

"Env":[

"LOCAL_STORAGE_ACCOUNT_NAME=<your storage account name>",

"LOCAL_STORAGE_ACCOUNT_KEY=<your storage account key>"

],

"HostConfig":{

"Binds":[

"<storage mount>"

],

"PortBindings":{

"11002/tcp":[{"HostPort":"11002"}]

}

}

}

4.使用以下信息更新已復(fù)制到容器創(chuàng)建選項(xiàng)中的JSON:

·請(qǐng)將<your storage account name>替換為容易記住的名稱。帳戶名長度應(yīng)為3到24個(gè)字符,并帶有小寫字母和數(shù)字。不含空格。

·將<your storage account key>;替換為64字節(jié)base64密鑰。你可以使用GeneratePlus等工具生成密鑰。你將使用這些憑據(jù)從其他模塊訪問blob存儲(chǔ)。

·根據(jù)容器操作系統(tǒng)替換<storage mount>。提供blob模塊將在其中存儲(chǔ)其數(shù)據(jù)的IoT Edge設(shè)備上卷的名稱或指向現(xiàn)有目錄的絕對(duì)路徑。存儲(chǔ)裝載將你在設(shè)備上提供的位置映射到模塊中設(shè)置的位置。

對(duì)于Linux容器,格式為<your storage path or volume>:/blobroot。例如:

使用卷裝載:my-volume:/blobroot

使用綁定裝載:/srv/containerdata:/blobroot。確保按步驟為容器用戶授予目錄訪問權(quán)限

對(duì)于Windows容器,格式為<your storage path or volume>:C:/BlobRoot。例如:

使用卷裝載:my-volume:C:/BlobRoot。

使用綁定裝載:C:/ContainerData:C:/BlobRoot。

可以映射SMB網(wǎng)絡(luò)位置,而不使用本地驅(qū)動(dòng)器。有關(guān)詳細(xì)信息,請(qǐng)參閱使用SMB共享作為本地存儲(chǔ)

重要

請(qǐng)勿更改存儲(chǔ)裝載值的后半部分,該部分指向IoT Edge模塊上Blob存儲(chǔ)中的特定位置。對(duì)于Linux容器,存儲(chǔ)裝載必須始終以“:/blobroot”結(jié)尾;對(duì)于Windows容器,必須以“:C:/BlobRoot”結(jié)尾。

5.在“模塊孿生設(shè)置”選項(xiàng)卡上,復(fù)制以下JSON并將其粘貼到框中。

addmodule-tab4.png

使用適當(dāng)?shù)闹蹬渲妹總€(gè)屬性,如占位符所示。如果使用IoT Edge模擬器,請(qǐng)按照deviceToCloudUploadProperties和deviceAutoDeleteProperties中所述,將這些屬性的值設(shè)置為相關(guān)環(huán)境變量。

JSON

{

"deviceAutoDeleteProperties":{

"deleteOn":<true,false>,

"deleteAfterMinutes":<timeToLiveInMinutes>,

"retainWhileUploading":<true,false>

},

"deviceToCloudUploadProperties":{

"uploadOn":<true,false>,

"uploadOrder":"<NewestFirst,OldestFirst>",

"cloudStorageConnectionString":"DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>",

"storageContainersForUpload":{

"<source container name1>":{

"target":"<target container name1>"

}

},

"deleteAfterUpload":<true,false>

}

}

有關(guān)在部署模塊后配置deviceToCloudUploadProperties和deviceAutoDeleteProperties的信息,請(qǐng)參閱編輯模塊孿生。若要詳細(xì)了解所需屬性,請(qǐng)參閱定義或更新所需屬性。

6.選擇“添加”。

7.在完成時(shí)選擇“下一步:路由”繼續(xù)轉(zhuǎn)到路由部分。

指定路由

保留默認(rèn)路由并選擇“下一步:查看+創(chuàng)建”繼續(xù)轉(zhuǎn)到查看部分。

評(píng)審部署

評(píng)審部分介紹了根據(jù)上述兩部分中的選擇所創(chuàng)建的JSON部署清單。另外還有兩個(gè)模塊已聲明但卻未添加,它們是:$edgeAgent和$edgeHub。這兩個(gè)模塊構(gòu)成IoT Edge運(yùn)行時(shí),且是每個(gè)部署中所需的默認(rèn)設(shè)置。

查看部署信息,然后選擇“創(chuàng)建”。

驗(yàn)證部署

創(chuàng)建部署后,返回到IoT中心的“IoT Edge”頁。

1.選擇用作部署目標(biāo)的IoT Edge設(shè)備,以打開其詳細(xì)信息。

2.在設(shè)備詳細(xì)信息,檢查Blob存儲(chǔ)模塊是否列出為“在部署中指定”和“由設(shè)備報(bào)告”。

可能需要等待一段時(shí)間,該模塊才會(huì)在設(shè)備上啟動(dòng)并向IoT中心發(fā)回報(bào)告。刷新頁面以查看更新的狀態(tài)。

從Visual Studio Code部署

Azure IoT Edge在Visual Studio Code中提供模板,以幫助你開發(fā)邊緣解決方案。使用以下步驟創(chuàng)建帶有Blob存儲(chǔ)模塊的新IoT Edge解決方案,并配置部署清單。

1.選擇“查看”>“命令面板”。

2.在“命令面板”中,輸入并運(yùn)行Azure IoT Edge:New IoT Edge solution命令。

new-solution.png

按命令面板中的提示創(chuàng)建解決方案。

微信圖片_20210301141724.png

Visual Studio Code采用你提供的信息,創(chuàng)建一個(gè)IoT Edge解決方案,然后在新窗口中加載它。解決方案模板創(chuàng)建包含blob存儲(chǔ)模塊映像的部署清單模板,但需要配置模塊的創(chuàng)建選項(xiàng)。

3.在新的解決方案工作區(qū)中打開deployment.template.json,然后找到“模塊”部分。進(jìn)行以下配置更改:

a.刪除SimulatedTemperatureSensor模塊,因?yàn)榇瞬渴鸩恍枰撃K。

b.將以下代碼復(fù)制并粘貼到createOptions字段中:

JSON

"Env":[

"LOCAL_STORAGE_ACCOUNT_NAME=<your storage account name>",

"LOCAL_STORAGE_ACCOUNT_KEY=<your storage account key>"

],

"HostConfig":{

"Binds":["<storage mount>"],

"PortBindings":{

"11002/tcp":[{"HostPort":"11002"}]

}

}

create-options.png

4.請(qǐng)將<your storage account name>替換為容易記住的名稱。帳戶名長度應(yīng)為3到24個(gè)字符,并帶有小寫字母和數(shù)字。不含空格。

5.將<your storage account key>替換為64字節(jié)base64密鑰。你可以使用GeneratePlus等工具生成密鑰。你將使用這些憑據(jù)從其他模塊訪問blob存儲(chǔ)。

6.根據(jù)容器操作系統(tǒng)替換<storage mount>。提供卷的名稱或IoT Edge設(shè)備上希望blob模塊在其中存儲(chǔ)其數(shù)據(jù)的目錄絕對(duì)路徑。存儲(chǔ)裝載將你在設(shè)備上提供的位置映射到模塊中設(shè)置的位置。

·對(duì)于Linux容器,格式為<your storage path or volume>:/blobroot。例如:

使用卷裝載:my-volume:/blobroot

使用綁定裝載:/srv/containerdata:/blobroot。確保按步驟為容器用戶授予目錄訪問權(quán)限

·對(duì)于Windows容器,格式為<your storage path or volume>:C:/BlobRoot。例如:

使用卷裝載:my-volume:C:/BlobRoot。

使用綁定裝載:C:/ContainerData:C:/BlobRoot。

可以映射SMB網(wǎng)絡(luò)位置,而不是使用本地驅(qū)動(dòng)器。有關(guān)詳細(xì)信息,請(qǐng)參閱使用SMB共享作為本地存儲(chǔ)。

重要

請(qǐng)勿更改存儲(chǔ)裝載值的后半部分,該部分指向IoT Edge模塊上Blob存儲(chǔ)中的特定位置。對(duì)于Linux容器,存儲(chǔ)裝載必須始終以“:/blobroot”結(jié)尾;對(duì)于Windows容器,必須以“:C:/BlobRoot”結(jié)尾。

7.通過將以下JSON添加到deployment.template.json文件,為模塊配置deviceToCloudUploadProperties和deviceAutoDeleteProperties。為每個(gè)屬性配置適當(dāng)?shù)闹挡⒈4嫖募?。如果使用IoT Edge模擬器,請(qǐng)將這些屬性的值設(shè)置為相關(guān)環(huán)境變量,可以在deviceToCloudUploadProperties和deviceAutoDeleteProperties的說明部分中找到這些值

JSON

"<your azureblobstorageoniotedge module name>":{

"properties.desired":{

"deviceAutoDeleteProperties":{

"deleteOn":<true,false>,

"deleteAfterMinutes":<timeToLiveInMinutes>,

"retainWhileUploading":<true,false>

},

"deviceToCloudUploadProperties":{

"uploadOn":<true,false>,

"uploadOrder":"<NewestFirst,OldestFirst>",

"cloudStorageConnectionString":"DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>",

"storageContainersForUpload":{

"<source container name1>":{

"target":"<target container name1>"

}

},

"deleteAfterUpload":<true,false>

}

}

}

devicetocloud-deviceautodelete.png

有關(guān)在部署模塊后配置deviceToCloudUploadProperties和deviceAutoDeleteProperties的信息,請(qǐng)參閱編輯模塊孿生。若要詳細(xì)了解容器創(chuàng)建選項(xiàng)、重啟策略和所需狀態(tài),請(qǐng)參閱EdgeAgent所需屬性。

8.保存deployment.template.json文件。

9.右鍵單擊“deployment.template.json”并選擇“生成IoT Edge部署清單”。

10.Visual Studio Code會(huì)獲取你在deployment.template.json中提供的信息,并使用它來創(chuàng)建新的部署清單文件。在解決方案工作區(qū)中的新config文件夾中創(chuàng)建部署清單。獲得該文件后,可以按照從Visual Studio Code中部署Azure IoT Edge模塊或使用Azure CLI 2.0部署Azure IoT Edge模塊中的步驟進(jìn)行操作。

部署多個(gè)模塊實(shí)例

若要在IoT Edge模塊上部署Azure Blob存儲(chǔ)的多個(gè)實(shí)例,需要提供不同的存儲(chǔ)路徑,并更改模塊綁定到的HostPort值。Blob存儲(chǔ)模塊始終在容器中公開端口11002,但你可以聲明它在主機(jī)上綁定到的端口。

編輯“容器創(chuàng)建選項(xiàng)”(在Azure門戶中)或createOptions字段(在Visual Studio Code的deployment.template.json文件中),更改HostPort值:

JSON

"PortBindings":{

"11002/tcp":[{"HostPort":"<port number>"}]

}

連接到其他blob存儲(chǔ)模塊時(shí),請(qǐng)將終結(jié)點(diǎn)更改為指向更新的主機(jī)端口。

配置代理支持

如果組織使用代理服務(wù)器,則需要為edgeAgent和edgeHub運(yùn)行時(shí)模塊配置代理支持。此過程涉及兩項(xiàng)任務(wù):

·在設(shè)備上配置運(yùn)行時(shí)守護(hù)程序和IoT Edge代理。

·為部署清單JSON文件中的模塊設(shè)置HTTPS_PROXY環(huán)境變量。

將IoT Edge設(shè)備配置為通過代理服務(wù)器進(jìn)行通信中介紹了此過程。

此外,blob存儲(chǔ)模塊還需要清單部署文件中的HTTPS_PROXY設(shè)置??梢灾苯泳庉嫴渴鹎鍐挝募?,也可以使用Azure門戶。

1.在Azure門戶中導(dǎo)航到IoT中心,然后從左窗格菜單中選擇IoT Edge。

2.選擇要配置模塊的設(shè)備。

3.選擇“設(shè)置模塊”。

4.在此頁的“IoT Edge模塊”部分,選擇blob存儲(chǔ)模塊。

5.在“更新IoT Edge模塊”頁上,選擇“環(huán)境變量”選項(xiàng)卡。

6.添加HTTPS_PROXY作為“名稱”,添加代理URL作為“值”。

https-proxy-config.png

7.單擊“更新”,然后單擊“查看+創(chuàng)建”。

8.請(qǐng)注意,代理會(huì)添加到部署清單中的模塊,此時(shí)請(qǐng)選擇“創(chuàng)建”。

9.通過從設(shè)備詳細(xì)信息頁中選擇模塊來驗(yàn)證設(shè)置,然后在“IoT Edge模塊詳細(xì)信息”頁的下半部分選擇“環(huán)境變量”選項(xiàng)卡。

verify-proxy-config.png

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Microsoft,本站不擁有所有權(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è)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營、應(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ù)合作
投稿采訪
投稿采訪
出海管家
出海管家