対象:
IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。
コンテナー化されたコードを linux on Windows IoT Edge デバイスにデプロイして、このクイック スタートのAzure IoT Edgeを試してみてください。 IoT Edgeを使用すると、より多くのワークロードをエッジに送信できるように、デバイス上のコードをリモートで管理できます。 このクイック スタートでは、独自のWindows クライアント デバイスを使用して、Windows上の Linux Azure IoT Edgeを使用する方法を確認することをお勧めします。 Windows Server または Azure VM を使用してデプロイを作成する場合は、Windows デバイスで Linux 用の Azure IoT Edge をインストールおよびプロビジョニングする方法のガイドの手順に従ってください。
このクイックスタートでは、次の方法について説明します。
- IoT Hub を作成します。
- IoT Edge デバイスを IoT ハブに登録します。
- デバイス上の Windows ランタイムに Linux 用のIoT Edgeをインストールして起動します。
- IoT Edge デバイスにモジュールをリモートでデプロイし、テレメトリを送信します。
このクイックスタートにおけるデバイスとクラウドのアーキテクチャを示す図。
このクイック スタートでは、Windows デバイスで Linux 用のAzure IoT Edgeを設定する方法について説明します。 次に、Azure ポータルからデバイスにモジュールをデプロイします。 使用するモジュールは、温度、湿度、圧力のデータを生成するシミュレートされたセンサーです。 他のAzure IoT Edgeチュートリアルは、ビジネス分析情報のためにシミュレートされたデータを分析するモジュールをデプロイすることで、ここで行う作業に基づいて構築されています。
アクティブなAzure サブスクリプションがない場合は、開始する前に free アカウントを作成します。
前提条件
Azure CLI用に環境を準備します。
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Get started with Azure Cloud Shell」を参照してください。
CLI 参照コマンドをローカルで実行する場合は、Azure CLIinstallします。 Windowsまたは macOS で実行している場合は、Docker コンテナーでAzure CLIを実行することを検討してください。 詳細については、「 Docker コンテナーでAzure CLIを実行する方法を参照してください。
ローカル インストールを使用している場合は、az login コマンドを使用してAzure CLIにサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI を使用して Azure に認証する」を参照してください。
メッセージが表示されたら、最初に使用するときにAzure CLI拡張機能をインストールします。 拡張機能の詳細については、「
Azure CLI を参照してください。az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
このクイック スタートで使用するすべてのリソースを管理するクラウド リソース グループを作成します。
az group create --name IoTEdgeResources --location westus2
IoT Edge デバイスが次の要件を満たしていることを確認します。
システム要件
- Windows 101/11 (Pro,Enterprise, IoT Enterprise) 1 Windows 10 現在の累積的な更新プログラムがすべてインストールされた最小ビルド 17763.
ハードウェア要件
- 最小空きメモリ: 1 GB
- 最小空きディスク領域: 10 GB
IoT Hub の作成
まず、Azure CLIを使用して IoT ハブを作成します。
I o T ハブを作成する手順を示す図。
このクイックスタートでは、Azure IoT Hubの Free レベルが機能します。 以前にIoT Hubを使用していて、既にハブがある場合は、そのIoT hubを使用できます。
次のコードにより、無料の F1 ハブがリソース グループ に作成されます。 は、実際の IoT ハブの一意の名前に置き換えてください。 IoT ハブの作成には数分かかることがあります。
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
ご自分のサブスクリプションに無料のハブが既に 1 つあるためにエラーが発生する場合は、SKU を に変更します。 IoT ハブの名前が利用できないというエラーが発生した場合、自分以外のだれかが既にその名前のハブを所有しています。 新しい名前を試してください。
IoT Edge デバイスを登録する
IoT Edge デバイスを新しく作成した IoT ハブに登録します。
IoT ハブ ID でデバイスを登録する手順を示す図。
お使いの IoT ハブと通信できるようにシミュレートされたデバイスのデバイス ID を作成します。 デバイスアイデンティティはクラウドに存在し、一意のデバイス接続文字列を使用して物理デバイスをデバイスアイデンティティに関連付けます。
IoT Edgeデバイスは動作し、一般的な IoT デバイスとは異なる方法で管理できます。
--edge-enabled フラグを使用して、この ID が IoT Edge デバイス用であることを宣言します。
Azure Cloud Shellで、次のコマンドを入力して、ハブに myEdgeDevice という名前のデバイスを作成します。
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}iothubownerポリシー キーに関するエラーが発生した場合は、Cloud Shellが最新バージョンの Azure IoT 拡張機能を実行していることを確認してください。デバイスの接続文字列を確認します。この接続文字列により、IoT Hub 内で物理デバイスとその ID をリンクさせます。 これには、IoT ハブの名前、デバイスの名前、そしてそれら 2 つの間の接続を認証する共有キーが含まれています。
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}JSON 出力から キーの値をコピーして保存します。 この値は、デバイスのconnection stringです。 これを使用して、次のセクションでIoT Edge ランタイムを構成します。
たとえば、connection stringは
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>のようになります。
IoT Edge ランタイムをインストールして起動する
あなたのデバイスにLinux on Windowsに対応するIoT Edgeをインストールし、デバイス接続文字列で構成します。
IoT Edge ランタイムを起動する手順を示す図。
Azure IoT Edge for Linux を Windows にデプロイするターゲット デバイスで、次の PowerShell コマンドを実行します。 PowerShell を使用してリモート ターゲット デバイスにデプロイするには、リモート PowerShell を使用してリモート デバイスへの接続を確立し、そのデバイスでこれらのコマンドをリモートで実行します。
管理者特権の PowerShell セッションで、次のコマンドを実行してHyper-Vを有効にします。 詳細については、Windows 10 の
Hyper-V を参照してください。 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All管理者特権の PowerShell セッションで、次の各コマンドを実行して、Windows上の Linux 用のIoT Edgeをダウンロードします。
X64、AMD64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPathARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPath
IoT Edge for Linux をデバイスの Windows にインストールします。
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"ターゲットデバイスの実行ポリシーがまだ設定されていない場合は、 に設定してください。 管理者特権の PowerShell プロンプトで現在の実行ポリシーを確認するには、次のコマンドを使用します。
Get-ExecutionPolicy -Listの実行ポリシーがされていない場合は、次のコマンドを使用して実行ポリシーを設定します。
Set-ExecutionPolicy -ExecutionPolicy AllSigned -ForceWindowsデプロイで Linux 用のIoT Edgeを作成します。
Deploy-Eflowライセンス条項に同意するには、「 Y 」と入力します。
O または R を入力して、設定に応じてオプションの診断データのオンとオフを切り替えます。 デプロイが成功したことを次の図に示します。
デプロイが成功すると、コンソールのメッセージの最後にデプロイが成功したことを示すスクリーンショット。
前のセクションで取得したデバイスの「接続文字列」を使用してデバイスをプロビジョニングします。 プレースホルダー テキストは実際の値に置き換えてください。
Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
これで、IoT Edge デバイスが構成されました。 クラウドからモジュールをデプロイして実行することができます。
モジュールを展開する
クラウドからAzure IoT Edge デバイスを管理し、テレメトリ データをIoT Hubに送信するモジュールをデプロイします。
モジュールをデプロイする手順を示す図。
Azure IoT Edgeの主な機能の 1 つは、クラウドからIoT Edge デバイスにコードをデプロイすることです。
IoT Edge モジュールは、コンテナーとして実装される実行可能パッケージです。 このセクションでは、Microsoft Artifact Registry の
このセクションでデプロイするモジュールはセンサーをシミュレートし、生成されたデータを送信します。 このモジュールは、シミュレートされたデータを開発とテストに使用できるため、IoT Edgeの使用を開始するときに便利なコードです。 このモジュールの動作を正確に確認する場合は、simulated 温度センサーのソース コードを確認できます。
次の手順に従って、最初のモジュールをデプロイします。
Azure ポータルにサインインし、IoT Hubに移動します。
左側のメニューの [デバイス管理] メニューで、[デバイス] を選択します。
デバイスの一覧でターゲット デバイスのデバイス ID を選択します。
注意
新しいIoT Edge デバイスを作成すると、Azure ポータルに状態コード
417 -- The device's deployment configuration is not setが表示されます。 この状態は正常であり、デバイスでモジュールのデプロイを受け取る準備ができていることを意味します。上部のバーで [モジュールの設定] を選択します。
デバイスで実行するモジュールを選びます。 既に作成したモジュール、Microsoft Artifact Registry のモジュール、または自分で作成したモジュールから選択できます。 このクイック スタートでは、Microsoft Artifact Registry からモジュールをデプロイします。
IoT Edge モジュール セクションで、Add IoT Edge Module を選択します。次のモジュール設定を更新します。
設定 値 IoT モジュール名 SimulatedTemperatureSensor画像の URL mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest再起動ポリシー 常時 望ましい状態 実行中 [次へ: ルート] を選び、ルートの構成を続行します。
シミュレートされた温度モジュールからすべてのメッセージをIoT Hubに送信するルートを追加します。
設定 値 名前 SimulatedTemperatureSensorToIoTHub値 FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream次へ:確認と作成 を選択します。
JSON ファイルを確認し、 [作成] を選択します。 JSON ファイルは、IoT Edge デバイスにデプロイするすべてのモジュールを定義します。
注意
IoT Edge デバイスに新しいデプロイを送信しても、デバイスには何もプッシュされません。 デバイスは代わりに、IoT Hub に新しい命令があるかを定期的に問い合わせます。 デバイスが更新された配置マニフェストを見つけた場合、新しいデプロイに関する情報を使用してクラウドからモジュール イメージをプルし、モジュールのローカルでの実行を開始します。 このプロセスには数分かかることがあります。
モジュールのデプロイの詳細が作成されると、ウィザードは [デバイスの詳細] ページに戻ります。 [モジュール] タブでデプロイの状態を確認します。
$edgeAgent、 $edgeHub、および SimulatedTemperatureSensor という 3 つのモジュールが表示されています。 [デバイス別に報告] ではなく [デプロイで指定] の下に [はい] となっているモジュールが 1 つ以上ある場合、それらはまだ IoT Edge デバイスによって起動されている途中です。 数分待ってから、ページを更新します。
デプロイされたモジュールの一覧内のシミュレートされた温度センサーを示すスクリーンショット。
モジュールのデプロイで問題が発生した場合は、Azure ポータルから デバイスIoT Edgeトラブルシューティングを参照してください。
生成されたデータを表示する
このクイック スタートでは、新しいIoT Edge デバイスを作成し、IoT Edge ランタイムをインストールしました。 次に、Azure ポータルを使用して、デバイス自体に変更を加えることなく、デバイス上で実行するIoT Edge モジュールをデプロイしました。
プッシュするモジュールでは、後でテストするために使用できるサンプル環境データが生成されます。 シミュレートされたセンサーは、マシンとマシン周辺の環境の両方を監視します。 たとえば、このセンサーは、サーバー ルーム、工場のフロア、または風力タービンに配置されている可能性があります。 送信されるメッセージには、周囲の温度と湿度、機械の温度と圧力、タイムスタンプが含まれます。 IoT Edgeチュートリアルでは、このモジュールによって作成されたデータを分析のテスト データとして使用します。
PowerShell セッションで次のコマンドを使用して、Windows仮想マシン上の linux 用のIoT Edgeにサインインします。
Connect-EflowVm注意
仮想マシンへの SSH 接続が許可されるアカウントは、それを作成したユーザーだけです。
サインインした後、次の Linux コマンドを使用して、実行中の IoT Edge モジュールの一覧を確認します。
sudo iotedge list温度センサー、エージェント、ハブ モジュールが実行されていることを確認する場所を示すスクリーンショット。
次の Linux コマンドを使用して、温度センサー モジュールからクラウドに送信されたメッセージを表示します。
sudo iotedge logs SimulatedTemperatureSensor -f実行中のシミュレートされた温度センサー モジュールの出力ログを示すスクリーンショット。
ヒント
IoT Edgeコマンドは、モジュール名を参照するときに大文字と小文字が区別されます。
リソースをクリーンアップする
IoT Edgeチュートリアルに進む場合は、この手順をスキップしてください。 このクイックスタートで登録して設定したデバイスを使用することができます。 それ以外の場合は、課金を回避するために作成したAzure リソースを削除します。
新しいリソース グループに仮想マシンと IoT ハブを作成した場合は、そのグループと関連付けられているすべてのリソースを削除します。 グループ全体を削除しない場合は、代わりに個々のリソースを削除します。
重要
リソース グループの内容を確認して、残しておくべきものがないことを確認してください。 リソース グループを削除すると、元に戻すことができません。
次のコマンドを使用して IoTEdgeResources グループを削除します。 削除には数分かかることがあります。
az group delete --name IoTEdgeResources
リソース グループが削除されたことは、このコマンドを使用してリソース グループの一覧を表示することによって確認できます。
az group list
Windows 上の Linux のIoT Edgeをアンインストールする
Windowsインストール時に Linux のAzure IoT Edgeをデバイスから削除するには、次の手順を使用します。
- Windowsで Settings を開きます。
- [プログラムの追加と削除] を選択します。
- Azure IoT Edge アプリを選択します。
- [アンインストール] を選択します。
次のステップ
このクイック スタートでは、IoT Edge デバイスを作成し、Azure IoT Edge クラウド インターフェイスを使用してデバイスにコードをデプロイしました。 これで、環境に関する生データを生成するテスト デバイスができあがりました。
次のチュートリアルでは、Azure ポータルからデバイスのアクティビティと正常性を監視する方法について説明します。