IoT ハブの接続をテストする

次のステップは、写真を BLOB コンテナーにアップロードすることで、IoT ハブの接続をテストします。

このテストにはサンプル画像を使います。 シミュレートされたカメラが Blob Storage にアップロードする画像には、北極ギツネ、シロクマ、セイウチなどの野生動物が写っています。 画像の例を次に示します。

野生動物の画像のサンプル

  1. 最初に、画像とスターター コードが含まれる GitHub リポジトリを assets フォルダーに複製します。 プロジェクト フォルダーの Cloud Shell で次のステートメントを実行します。

    git clone https://github.com/MicrosoftDocs/mslearn-build-ml-model-with-azure-stream-analytics.git assets
    
  2. 次に、upload-photo-test.js ソース ファイルを、複製したリポジトリからプロジェクト フォルダーにコピーします。

    cp assets/src/upload-photo-test.js .
    

    この Node.js プログラムでは、image_19.jpg という名前のファイルが、"assets/photos" からストレージ アカウントの "photos" コンテナーにアップロードされます。

    その後、polar_cam_0003 のアクセス キー (cameras.json から得られます) を使って polar_cam_0003 から IoT ハブへの接続が開かれ、JSON ペイロードを含むメッセージが MQTT 経由で送信されます。

    そのメッセージには、カメラの ID、緯度と経度、アップロードされた BLOB の URL、およびイベントの日時が含まれています。

  3. 次のコマンドを実行して、Microsoft Azure Storage SDK for Node.js パッケージをインストールします。

    npm install azure-storage --save
    

    このパッケージでは、Blob Storage を含む Azure Storage へのプログラム インターフェイスが提供されます。

  4. Azure Cloud Shell で次のコマンドを使って、作成されたストレージ アカウントに対するアクセス キーの一覧を表示します。

    az storage account keys list \
        --account-name $ACCOUNT_NAME \
        --resource-group <rgn>[sandbox resource group name]</rgn>
    

    重要

    既定では、Azure ストレージ アカウントに格納された BLOB はプライベートであり、アカウントが作成されたサブスクリプションにアクセスできるユーザーだけがアクセスできます。 アクセス キーを使うと、アプリを含む他のパーティーが、ストレージ アカウントの内容にアクセスできます。 アクセス キーの取り扱いには細心の注意を払い、信頼していないユーザーには絶対に渡さないでください。

  5. コマンド出力に表示される 2 つのキーのいずれかの value プロパティを、クリップボードにコピーします。 テキスト エディターに値を保存します。この値は後ほどいくつかの場所で必要になります。

  6. Cloud Shell エディターで upload-photo-test.js ファイルを開きます。

    code upload-photo-test.js
    
  7. upload-photo-test.js の 7 行目で変数 storageAccountKey に割り当てられている ACCOUNT_KEY を、アクセス キーに置き換えます。 storageAccountNameiotHubName の値を置き換えることもできますが、それらを環境変数に保存している場合は、そこからプルされます。 行は次のような内容になります。

    var storageAccountKey = 'doPZd+uLueiDMY0JWtg...qWtWfmJLVkTe/huqlTliq8ruy8L1lzmDV9l6HkRw==';
    
  8. upload-photo-test.js を保存してエディターを閉じます。

  9. 次のコマンドでテストを実行します。

    node upload-photo-test.js
    
  10. コマンドが正常に完了したことを示す次の出力が表示されることを確認します。

    Blob uploaded
    Event transmitted
    

アップロードを確認する

Azure portal を使って、コンテナーにアップロードされた画像があることを確認します。

  1. サンドボックスのアクティブ化に使用したものと同じアカウントを使って、Azure portal にサインインします。

  2. 左側のメニュー アイコンをクリックして左側のナビゲーション メニューを展開し、ナビゲーション メニューから [リソース グループ] を選択します。

  3. 一覧で、[サンドボックス リソース グループ] を探します。

  4. リソース グループで、写真を保持するために作成したストレージ アカウントを選択します。

    ストレージ アカウントを開く

  5. ストレージ アカウントのビューで、[コンテナー] をクリックして BLOB コンテナーの一覧を表示します。

    BLOB コンテナーの表示

  6. photos をクリックして "photos" コンテナーを開きます。

    "photos" コンテナーを開く

  7. image_19.jpg という名前の BLOB をクリックします。 次に、[ダウンロード] をクリックして BLOB をダウンロードします。

    BLOB のダウンロード

  8. BLOB に、次に示すような小さい (64 x 64) グレースケールのシロクマの画像が含まれることを確認します。

    Blob Storage からダウンロードした小さいシロクマの画像

Azure portal ウィンドウを開いたまま先に進みます。このモジュールの残りを通してそれを使います。 次に、Streaming Analytics ジョブを作成しましょう。