「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Azure IoT Edge]] --[[Azure IoT Hubチュートリアル]] --[[Azure IoT Centralチュートリアル]] --Azure IoT Edgeチュートリアル * 目次 [#h95371d4] #contents *概要 [#a9ae138d] Azure IoT Edgeの様々なモジュールをデプロイしていくチュートリアル。 -Marketplaceモジュール -カスタム・モジュール -AzureのPaaSやSaaSモジュール *詳細 [#j36facc7] Azure IoT Hubの作成は、[[Azure IoT Hubチュートリアル]]へ。 **Marketplaceモジュールのデプロイ [#l7861a25] -とりあえずMarketplace モジュールのデプロイだけやってみる。 -以下の2つのクイック スタートがあるが、 --Windows デバイスへのコードのデプロイ~ https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart --Linux デバイスへのコードのデプロイ~ https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart-linux >WindowsでAzure IoT EFLOWと言うエミュレータを使用するか、~ ARMテンプレートでLinuxのAzureVMをデプロイして試すか、2通りの方法がある。 ***前提 [#t644af72] -[[Azure CLI]] --利用環境はローカルでなくても良い模様。 --Dockerが提案されていたが、WSLでも良いものと思われる。 --更に言えば、[[Azure Cloud Shell]]でも良いものと思われる~ (...と言うか、実際に[[Azure Cloud Shell]]でやった)。 -IoT Edge デバイス~ 以下のどちらでも構築可能。 --Windows --Linux ***準備 [#e6697321] -[[IoT Hub の作成>Azure IoT Hubチュートリアル]] az iot hub create --resource-group XXXX --name XXXX --sku F1 --partition-count 2 -IoT Edge デバイスを登録 --デバイスをハブに作成 --デバイスの接続文字列を確認 -IoT Edge デバイスの設定 --Windowsの場合はローカルにEFLOWを構成 --Linuxの場合はARMテンプレートでAzureVMをデプロイ --以下はLinuxを個別に設定する際のシェル。 curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list sudo mv ./microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo mv ./microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get update sudo apt-get install -y moby-engine moby-cli sudo apt-get install -y iotedge sudo vi /etc/iotedge/config.yaml sudo systemctl restart iotedge systemctl status iotedge sudo iotedge list その後、コンフィグ手順は下記参照。~ https://learn.microsoft.com/ja-jp/azure/iot-edge/how-to-provision-devices-at-scale-linux-symmetric ***実行 [#ha04e490] -IoT Edgeモジュールを展開~ Marketplaceモジュール(Simulated Temperature Sensor) -生成されたデータを表示する~ コンテナ内部にログインしてShell(Bash)で。 **カスタム・モジュールの開発とデプロイ [#gd8a76e3] -次にカスタム・の開発とデプロイをやってみる。 -以下の2つのチュートリアルがあるが、 --Visual Studio Code を使用して ---IoT Edge モジュールを開発する~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-develop-for-linux ---Azure IoT Edge モジュールをデバッグする~ https://learn.microsoft.com/ja-jp/azure/iot-edge/debug-module-vs-code --Visual Studio 2022 を使用して Azure IoT Edge 用のモジュールを開発してデバッグする~ https://learn.microsoft.com/ja-jp/azure/iot-edge/how-to-visual-studio-develop-module >いずれもWindowsでAzure IoT EFLOWと言うエミュレータを使用する。~ ここでは、サポート範囲の広いVisual Studio Code を使用した手順のみ実施する。 ***ローカル環境準備 [#r84a6b2d] -.NET Core SDKとVSCode、C#のVSCode拡張をインストールしておく。 -Azure IoT Edge関連のツールについては、 --色々調査すると、言語のVSCode拡張とAzure IoT Tools for VSCodeをインストールすれば良さそうだが、 --今は、Azure IoT Tools for VSCodeがメンテナンス・モードなので、iotedgedevのCLIを単体使いしろと言う事らしい。 --なお、Azure IoT Tools for VSCodeの依存関係としてiotedgedevが含まれていた模様。iotedgedevのランタイムはPython。 pip list pip freeze > uninstall.txt pip uninstall -y -r uninstall.txt pip install -U iotedgedev -参考 --Azure IoT Edge #4 - Edgeモジュールの開発環境構築 - YouTube~ https://www.youtube.com/watch?v=-ztATJCcBWQ --iotedgedev · PyPI~ https://pypi.org/project/iotedgedev/ --iotedgedev/docs/environment-setup/manual-dev-machine-setup.md at main · Azure/iotedgedev~ https://github.com/Azure/iotedgedev/blob/main/docs/environment-setup/manual-dev-machine-setup.md --iotedgedev/docs/environment-setup/run-devcontainer-docker.md at main · Azure/iotedgedev~ https://github.com/Azure/iotedgedev/blob/main/docs/environment-setup/run-devcontainer-docker.md ***Container Registryの準備 [#we4db7f6] デプロイにContainer Registryとして[[Azure Container Registry]]を使う。 ***C#のSolution・Projectの準備 [#vd646b2f] -以下のCMDのコマンドでC#のSolution・Projectを準備 mkdir iotedgesolution cd iotedgesolution iotedgedev solution init --template csharp -以下を含むいくつかのステップを完了するよう促す --Azureへの認証 --Azure サブスクリプションの選択 --リソースグループを選択または作成 --Azure IoT Hub を選択または作成 --Azure IoT Edge デバイスの選択または作成 -ファイルの修正 --https://github.com/OpenTouryoProject/HubAndMsgSrv/pull/5/files?w=1 ***カスタム・モジュールのコンテナ化 [#g93a1a1c] ココのシェルはVSCodeのGitBashターミナルで実行する。 -ユーザIDとパスワードで Azure Container Registry にログイン。 az login AcrName=osscjpdevinfra echo $AcrName RegistryName=$(az acr show --name $AcrName --query loginServer --output tsv) echo $RegistryName Password=$(az acr credential show --name $RegistryName --query "passwords[0].value" | sed 's/"//g') echo $Password az acr login -n $RegistryName docker login $RegistryName -u $AcrName -p $Password -カスタム・モジュールのコンテナを、ビルド、プッシュ、セット subscriptionID=$(az account show --query id --output tsv) userPrincipalName=$(az ad signed-in-user show --query userPrincipalName --output tsv) location=westus2 hmsRgName=HmsRG iotHubName=OsscJpDevInfra iotEdgeID=myedge1 hubConnectionString=$( \ az iot hub connection-string show \ -n $iotHubName \ --key primary \ --query connectionString -o tsv) docker build --rm -f "./modules/filtermodule/Dockerfile.amd64.debug" -t osscjpdevinfra.azurecr.io/filtermodule:0.0.1-amd64 "./modules/filtermodule" docker push osscjpdevinfra.azurecr.io/filtermodule:0.0.1-amd64 az iot edge set-modules --hub-name $iotHubName --device-id $iotEdgeID --content ./deployment.template.json --login $hubConnectionString **PaaS・SaaSモジュールのデプロイ [#p0480e00] ここでは、 ***ローカル環境準備 [#m1ab4e17] 以下のVSCode拡張をインストールしておく。 -Azure IoT Hub -Azure IoT Edge ***C#のSolution・Projectの準備 [#tdcf0b19] -コマンド パレットで、Azure IoT Edge: New IoT Edge solution コマンドを使う。 -手順に従って、Solution・Projectの設定や、Moduleのコードを修正する。 ***PaaS・SaaSモジュールのコンテナ化 [#aef13fb9] -[[カスタム・モジュールと同様の手順になるが>#g93a1a1c]] -コンテナのビルド、プッシュ、セットは、deployment.template.jsonのコンテキスト・メニューから実行。 *参考 [#g2d2f6c1] -実施内容はコチラを参照。~ https://github.com/OpenTouryoProject/HubAndMsgSrv/tree/develop/Hub/Edge **Qiita [#ibf0265e] -IoT Edge を触ってみた~ https://qiita.com/TsuyoshiUshio@github/items/cff85d6d4428dddace06 -IoT Edge の Azure Functions を試して見た --(1)~ https://qiita.com/TsuyoshiUshio@github/items/cf5ffc1e0360b7115815 --(2)~ https://qiita.com/TsuyoshiUshio@github/items/91bcf03e3a0446c1b495 **YouTube [#naea243e] -Getting started with Azure IoT Edge development~ https://www.youtube.com/watch?v=EruRSHLKnv8 -Getting Started with Azure IoT Edge~ https://www.youtube.com/watch?v=HDPaFbv3DQI ***motojin・com [#nd7697b9] https://www.youtube.com/@motojindotcom -Azure IoT Edge --#1 - Azure IoT Edge について~ https://www.youtube.com/watch?v=UsxycuFpC8c --#2 - Azure IoT Edge Runtime のインストール~ https://www.youtube.com/watch?v=SvB1gSjlMNM --#3 - AzureポータルからEdgeモジュールのデプロイ~ https://www.youtube.com/watch?v=9fXZemGKKy8 --#4 - Edgeモジュールの開発環境構築~ https://www.youtube.com/watch?v=-ztATJCcBWQ --#5 - 簡単なカスタムモジュール作成~ https://www.youtube.com/watch?v=CM-VZiyv908 --#6 - Module Twin : Properties~ https://www.youtube.com/watch?v=12tHMY3ZSA8 --#7 - Module Direct Method~ https://www.youtube.com/watch?v=vGgm2pTQVlM --#8 - Deploy the Azure Blob Storage on IoT Edge~ https://www.youtube.com/watch?v=nDCTiQjm4Uw --#9 - Store data to Azure Blob Storage on IoT Edge~ https://www.youtube.com/watch?v=gxRQXpdHdGw **microsoft.com [#e11cb5e8] ***Microsoft Docs [#f2cdf134] -Azure IoT Edge - チュートリアル、API リファレンス~ https://docs.microsoft.com/ja-jp/azure/iot-edge/ --クイック スタート ---Windows デバイスへのコードのデプロイ~ https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart ---Linux デバイスへのコードのデプロイ~ https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart-linux --チュートリアル > +モジュールを開発する --Visual Studio Code を使用して IoT Edge モジュールを開発する~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-develop-for-linux --Visual Studio 2022 を使用して Azure IoT Edge 用のモジュールを開発してデバッグする~ https://learn.microsoft.com/ja-jp/azure/iot-edge/how-to-visual-studio-develop-module +Azure サービスをモジュールとしてデプロイする --Azure Functions を使用したデータのフィルター処理~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-deploy-function --Azure Stream Analytics を使用して平均値を見つける~ https://docs.microsoft.com/ja-jp/azure/iot-edge/tutorial-deploy-stream-analytics --Custom Vision を使用したイメージの分類~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-deploy-custom-vision --SQLを使用したローカルへのデータの格納~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-store-data-sql-server +ゲートウェイとしての IoT Edge の使用~ https://docs.microsoft.com/ja-jp/azure/iot-edge/tutorial-nested-iot-edge +デバイスとモジュールを監視する~ https://learn.microsoft.com/ja-jp/azure/iot-edge/tutorial-monitor-with-workbooks ---- Tags: [[:クラウド]], [[:IoT]], [[:Azure]]