Visual Studio Tools を使用して Stream Analytics Edge ジョブを作成する

このチュートリアルでは、Visual Studio の Stream Analytics ツールの使用方法について説明します。 Stream Analytics Edge ジョブをオーサリング、デバッグ、および作成する方法について取り上げます。 ジョブを作成してテストした後、 Azure Portal に移動して、それをデバイスに配置できます。

前提条件

このチュートリアルを完了するには、次の前提条件を満たしておく必要があります。

Stream Analytics Edge プロジェクトを作成する

Visual Studio で、 [ファイル]>[新規]>[プロジェクト] を選択します。 左側のテンプレートの一覧に移動し、[Azure Stream Analytics]>[Stream Analytics Edge]>[Azure Stream Analytics Edge Application] を選択します。 プロジェクトの名前、場所、およびソリューション名を入力し、 [OK] を選択します。

Visual Studio での新しい Stream Analytics Edge プロジェクト

プロジェクトが作成されたら、ソリューション エクスプローラーに移動して、フォルダー階層を表示します。

Stream Analytics Edge ジョブのソリューション エクスプローラー ビュー

適切なサブスクリプションを選択する

  1. Visual Studio の [表示] メニューで [サーバー エクスプローラー] を選択します。

  2. [Azure] を右クリックし、[Connect to Microsoft Azure Subscription](Microsoft Azure サブスクリプションへの接続) を選択します。その後、Azure アカウントでサインインします。

入力を定義する

  1. ソリューション エクスプローラーで、 [入力] ノードを展開します。EdgeInput.json という名前の入力が表示されます。 ダブルクリックしてその設定を表示します。

  2. [ソースの種類] を [データ ストリーム] に設定します。 次に、[ソース] を [Edge Hub] に、[イベントのシリアル化形式] を [Json] に、[エンコード] を [UTF8] に設定します。 必要に応じて [入力のエイリアス] の名前を変更できますが、この例ではそのままにします。 入力の別名の名前を変更する場合は、クエリを定義するときに指定した名前を使用します。 [保存] を選択して設定を保存します。
    Stream Analytics ジョブの入力構成

出力を定義する

  1. ソリューション エクスプローラーで、 [出力] ノードを展開します。EdgeOutput.json という名前の出力が表示されます。 ダブルクリックしてその設定を表示します。

  2. [シンク] が [Edge Hub] に、[イベントシリアル化形式] が [Json] に、[エンコード] が [UTF8] に、[フォーマット] が [配列] に設定されていることを確認します。 必要に応じて [出力のエイリアス] の名前を変更できますが、この例ではそのままにします。 出力の別名の名前を変更する場合は、クエリを定義するときに指定した名前を使用します。 [保存] を選択して設定を保存します。 Stream Analytics ジョブの出力構成

変換クエリを定義する

Stream Analytics IoT Edge 環境にデプロイする Stream Analytics ジョブは、Stream Analytics クエリ言語リファレンスの大半をサポートします。 ただし、Stream Analytics Edge ジョブでは次の操作はまだサポートされていません。

カテゴリ コマンド
その他の演算子
  • PARTITION BY
  • TIMESTAMP BY OVER
  • JavaScript UDF
  • ユーザー定義集計 (UDA)
  • GetMetadataPropertyValue
  • 1 つの手順での 14 を超える集計の使用

ポータルで Stream Analytics Edge ジョブを作成するときに、サポートされている演算子を使用していない場合は、コンパイラによって自動的に警告が表示されます。

Visual Studio のクエリ エディターで、次の変換クエリを定義します (script.asaql ファイル)。

SELECT * INTO EdgeOutput
FROM EdgeInput 

ローカル ジョブをテストする

クエリをローカルでテストするには、サンプル データをアップロードする必要があります。 サンプル データは、GitHub リポジトリから登録データをダウンロードしてローカル コンピューターに保存することで取得できます。

  1. サンプル データをアップロードするには、EdgeInput.json ファイルを右クリックし、 [ローカル入力の追加] を選択します。

  2. ポップアップ ウィンドウで、ローカル パスからサンプル データを参照し、[保存] を選択します。 Visual Studio でのローカルの入力構成

  3. local_EdgeInput.json という名前のファイルが、入力フォルダーに自動的に追加されます。

  4. ローカルで実行するか、Azure に送信できます。 クエリをテストするには、 [ローカルで実行] を選択します。
    Visual Studio での Stream Analytics ジョブの実行オプション

  5. コマンド プロンプト ウィンドウに、ジョブの状態が表示されます。 ジョブが正常に実行されると、プロジェクト フォルダーのパス "Visual Studio 2015\Projects\MyASAEdgejob\MyASAEdgejob\ASALocalRun\2018-02-23-11-31-42" に "2018-02-23-11-31-42" のようなフォルダーが作成されます。 フォルダー パスに移動して、ローカル フォルダー内の結果を表示します。

    Azure Portal にサインインし、ジョブが作成されたことを確認することもできます。

    Stream Analytics ジョブの結果フォルダー

ジョブを Azure に送信する

  1. Azure にジョブを送信する前に、Azure サブスクリプションに接続する必要があります。 サーバー エクスプローラー を開きます。[Azure] を右クリックし、[Microsoft Azure サブスクリプションへの接続] を選択し、Azure サブスクリプションにサインインします。

  2. Azure にジョブを送信するには、クエリ エディターに移動し、[Azure に送信] を選択します。

  3. ポップアップ ウィンドウが表示されます。 既存の Stream Analytics Edge ジョブを更新するか、新しく作成することを選択してください。 既存のジョブを更新すると、すべてのジョブの構成が置き換えられます。このシナリオでは、新しいジョブを発行します。 [新しい Azure Stream Analytics ジョブの作成] を選択し、MyASAEdgeJob のようなジョブの名前を入力し、必要な [サブスクリプション][リソース グループ]、および [場所] を選択し、[送信] を選択します。

    Visual Studio から Azure に Stream Analytics ジョブを送信する

    これで Stream Analytics Edge ジョブが作成されました。 IoT Edge でのジョブの実行に関するチュートリアルを参照して、デバイスへの配置方法を確認できます。

ジョブを管理する

サーバー エクスプローラーで、ジョブの状態とジョブ ダイアグラムを表示できます。 サーバー エクスプローラーで、 [Stream Analytics] から、Stream Analytics Edge ジョブをデプロイしたサブスクリプションとリソース グループを展開します。 状態が [作成済み] になっている MyASAEdgejob が表示されます。 ジョブ ノードを展開し、ノードをダブルクリックしてジョブ ビューを開きます。

サーバー エクスプローラーのジョブ管理オプション

ジョブの表示ウィンドウでは、ジョブの更新、ジョブの削除、Azure portal でのジョブのオープンなどの操作を実行できます。

Visual Studio でのジョブ ダイアグラムとその他のオプション

次のステップ