次の方法で共有


チュートリアル: IoT Edge で機械学習用の環境を設定する

適用対象:はいアイコン IoT Edge 1.1

重要

IoT Edge 1.1 サポート終了日は 2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「IoT Edgeの更新」を参照してください。

この記事は、開発とデプロイのための環境の準備に役立ちます。 まず、必要なすべてのツールを使用して開発マシンを設定します。 次に、必要なクラウド リソースを Azure に作成します。

チュートリアルのこのセクションでは、次の方法について説明します。

  • 開発用の仮想マシンを設定します。
  • 開発環境で使用する IoT Hub とクラウド ストレージを設定します。

[前提条件]

この記事は、Azure Machine Learning on IoT Edge の使用に関するチュートリアルのシリーズの一部です。 シリーズの各記事は、前の記事の作業に基づいています。 この記事に直接アクセスした場合は、シリーズの 最初の記事 を参照してください。

開発用 VM を設定する

通常、この手順はクラウド開発者によって実行されます。 一部のソフトウェアは、データ サイエンティストにも役立つ場合があります。

多くの前提条件が既に構成されている Azure 仮想マシンを作成する PowerShell スクリプトを作成しました。 作成する VM は 、入れ子になった仮想化を処理できる必要があります。そのため、 Standard_D8s_v3 マシン サイズを選択しました。

開発用 VM は次のように設定されます。

開発者 VM は厳密には必要ありません。すべての開発ツールをローカル コンピューターで実行できます。 ただし、公平な競技環境を確保するために仮想マシンを使用することを強くお勧めします。

仮想マシンの作成と構成には約 30 分かかります。

  1. Machine Learning と IoT Edge のサンプル リポジトリをローカル コンピューターに複製またはダウンロードします。

  2. 管理者として PowerShell を開き、コードをダウンロードしたルート ディレクトリの下にある \IoTEdgeAndMlSample\DevVM ディレクトリに移動します。 ソースのルート ディレクトリを srcdirと見なします。

    cd c:\srcdir\IoTEdgeAndMlSample\DevVM
    

    DevVM ディレクトリには、このチュートリアルを完了するのに適した Azure 仮想マシンを作成するために必要なファイルが含まれています。

  3. スクリプトの実行を許可するには、次のコマンドを実行します。 メッセージが表示されたら、[ はい] を [すべて] に 選択します。

    Set-ExecutionPolicy Bypass -Scope Process
    
  4. Create-AzureDevVM.ps1を実行します。

    .\Create-AzureDevVm.ps1
    

    メッセージが表示されたら、次の情報を入力します。

    • Azure サブスクリプション ID: サブスクリプション ID。これはポータルの Azure サブスクリプション にあります。
    • リソース グループ名: Azure の新規または既存のリソース グループの名前。
    • 場所: 仮想マシンを作成する Azure の場所を選択します。 たとえば、"米国西部 2" や "北ヨーロッパ" などです。 詳細については、「Azure の 場所」を参照してください。
    • ユーザー名: VM の管理者アカウントの覚えやすい名前を指定します。
    • パスワード: VM の管理者アカウントのパスワードを設定します。

    スクリプトは、次の手順を実行するために数分間実行されます。

    1. Azure PowerShell Az モジュールをインストールします。
    2. Azure にサインインするように求められます。
    3. VM の作成に関する情報を確認します。 y キーまたは Enter キーを押して続行します。
    4. リソース グループが存在しない場合は作成します。
    5. 仮想マシンをデプロイします。
    6. VM で Hyper-V を有効にします。
    7. 開発に必要なソフトウェアをインストールし、サンプル リポジトリを複製します。
    8. VM を再起動します。
    9. VM に接続するための RDP ファイルをデスクトップに作成します。

    再起動する VM の名前を求めるメッセージが表示されたら、スクリプト出力からその名前をコピーできます。 出力には、VM に接続するための RDP ファイルへのパスも表示されます。

自動シャットダウン スケジュールを設定する

コスト削減に役立つよう、開発 VM は自動シャットダウン スケジュールを 1900 PST に設定して作成されています。 場所とスケジュールによっては、この設定の更新が必要になる場合があります。 シャットダウン スケジュールを更新するには:

  1. Azure portal で、スクリプトによって作成された VM に移動します。

  2. 左側のウィンドウ メニューの [ 操作] で、[ 自動シャットダウン] を選択します。

  3. 必要に応じて スケジュールされたシャットダウンタイム ゾーン を調整し、[ 保存] を選択します。

開発用 VM に接続する

VM を作成したので、チュートリアルを完了するために必要なソフトウェアのインストールを完了する必要があります。

  1. スクリプトがデスクトップ上に作成した RDP ファイルをダブルクリックします。

  2. リモート接続の発行元が不明であることを示すダイアログが表示されます。 これは許容されるため、[ 接続] を選択します。

  3. VM を作成するために指定した管理者パスワードを入力し、[ OK] をクリックします。

  4. VM の証明書を受け入れるように求められます。 [はい] を選択します。

Visual Studio Code 拡張機能をインストールする

開発マシンに接続したら、Visual Studio Code に便利な拡張機能をいくつか追加して、開発エクスペリエンスを簡単にします。

  1. 開発用 VM に接続し、PowerShell ウィンドウを開き、 C:\source\IoTEdgeAndMlSample\DevVM ディレクトリに移動します。 このディレクトリは、VM を作成したスクリプトによって作成されました。

    cd C:\source\IoTEdgeAndMlSample\DevVM
    
  2. スクリプトの実行を許可するには、次のコマンドを実行します。 メッセージが表示されたら、[ はい] を [すべて] に 選択します。

    Set-ExecutionPolicy Bypass -Scope Process
    
  3. Visual Studio Code 拡張機能スクリプトを実行します。

    .\Enable-CodeExtensions.ps1
    
  4. スクリプトは数分間実行され、VS コード拡張機能がインストールされます。

    • Azure IoT Edge
    • Azure IoT Hub
    • Python(プログラミング言語)
    • C#
    • ドッカー
    • PowerShell

IoT Hub とストレージを設定する

通常、これらの手順はクラウド開発者によって実行されます。

Azure IoT Hub は、IoT デバイスとクラウド間のセキュリティで保護された通信を処理するため、あらゆる IoT アプリケーションの中核となります。 これは、IoT Edge 機械学習ソリューションの運用のための主要な調整ポイントです。

  • IoT Hub は、ルートを使用して、IoT デバイスから他のダウンストリーム サービスに受信データを転送します。 IoT Hub ルートを利用して、デバイス データを Azure Storage に送信します。 Azure Storage では、残りの耐用年数 (RUL) 分類子をトレーニングするために、デバイス データが Azure Machine Learning によって使用されます。

  • チュートリアルの後半では、IoT Hub を使用して Azure IoT Edge デバイスを構成および管理します。

このセクションでは、スクリプトを使用して Azure IoT ハブと Azure Storage アカウントを作成します。 次に、Azure portal で、ハブが受信したデータを Azure Storage コンテナーに転送するルートを構成します。 これらの手順は、完了するまでに約 10 分かかります。

  1. 開発用 VM に接続し、PowerShell ウィンドウを開き、 IoTHub ディレクトリに移動します。

    cd C:\source\IoTEdgeAndMlSample\IoTHub
    
  2. 作成スクリプトを実行します。 開発 VM の作成時と同じ値をサブスクリプション ID、場所、およびリソース グループに使用します。

    .\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <___location> -ResourceGroupName <resource group>
    
    • Azure にサインインするように求められます。
    • このスクリプトは、ハブとストレージ アカウントの作成に関する情報を確認します。 y キーまたは Enter キーを押して続行します。

スクリプトの実行には約 2 分かかります。 完了すると、スクリプトによって IoT ハブとストレージ アカウントの名前が出力されます。

IoT Hub のストレージへのルートを確認する

IoT ハブの作成の一環として、前のセクションで実行したスクリプトによって、カスタム エンドポイントとルートも作成されました。 IoT Hub ルートは、クエリ式とエンドポイントで構成されます。 メッセージが式と一致する場合、データはルートに沿って関連付けられたエンドポイントに送信されます。 エンドポイントには、Event Hubs、Service Bus キュー、トピックを指定できます。 この場合、エンドポイントはストレージ アカウント内の BLOB コンテナーです。 Azure portal を使用して、スクリプトによって作成されたルートを確認してみましょう。

  1. Azure portal を開き、このチュートリアルで使用しているリソース グループに移動します。

  2. リソースの一覧で、スクリプトで作成した IoT Hub を選択します。 IotEdgeAndMlHub-jrujej6de6i7wなどのランダムな文字で終わる名前が付けられます。

  3. 左側のウィンドウ メニューの [ハブの設定] で、[ メッセージ ルーティング] を選択します。

  4. [ メッセージ ルーティング ] ページで、[ カスタム エンドポイント ] タブを選択します。

  5. [ストレージ] セクションを展開します。

    I o T Hub ポータルのカスタム エンドポイントの一覧にある turbofanDeviceStorage というストレージのスクリーンショット。

    turbofanDeviceStorage がカスタム エンドポイントの一覧に含まれていることがわかります。 このエンドポイントに関する次の特性に注意してください。

    • コンテナー名で示されているように、 devicedata という名前で作成した BLOB ストレージ コンテナーを指 します
    • ファイル名の形式には、「partition」という単語が名前に含まれています。 この形式は、このチュートリアルの後半で Azure Notebooks で行うファイル操作の方が便利です。
    • その 状態 は正常である必要があります。
  6. [ルート] タブ 選択します。

  7. turbofanDeviceDataToStorage という名前のルートを選択します。

  8. [ ルートの詳細 ] ページで、ルートのエンドポイントが turbofanDeviceStorage エンドポイントであることに注意してください。

    turbofanDeviceDataToStorage ルートの詳細を示すスクリーンショット。

  9. ルーティング クエリを確認 しますこれは true に設定されています。 この設定は、すべてのデバイス テレメトリ メッセージがこのルートと一致することを意味します。そのため、すべてのメッセージが turbofanDeviceStorage エンドポイントに送信されます。

  10. 編集は行われなかったため、このページを閉じます。

リソースをクリーンアップする

このチュートリアルは、各記事が前の記事で行われた作業に基づいて構築されるセットの一部です。 最後のチュートリアルが完了するまで、リソースのクリーンアップをお待ちください。

次のステップ

この記事では、IoT Hub を作成し、Azure Storage アカウントへのルートを構成しました。 次に、一連のシミュレートされたデバイスから IoT Hub 経由でストレージ アカウントにデータを送信します。 チュートリアルの後半で、IoT Edge デバイスとモジュールを構成した後、ルートを再検討し、ルーティング クエリをもう少し見ていきます。

次の記事に進み、監視するシミュレートされたデバイスを作成します。