この記事では、Visual StudioのStream Analyticsツールを使ってStream Analytics Edgeのジョブを作成、デバッグ、作成する方法を学びます。 ジョブを作成してテストした後、Azureポータルにアクセスしてデバイスにデプロイします。
エッジジョブ開発の前提条件
この記事のステップを完了するには以下の前提条件が必要です:
Visual Studio 2019、Visual Studio 2015、またはVisual Studio 2013 Update 4をインストールしてください。 Stream AnalyticsツールはEnterprise(Ultimate/Premium)、Professional、Community版をサポートしていますが、Express版はサポートしていません。
インストール手順に従って、Visual Studio 用 Stream Analytics ツールをインストールします。
ストリームアナリティクスエッジプロジェクトを作成する
ジョブ定義を含むEdgeプロジェクトを作成しましょう。
Visual Studioから「ファイル>新>Projectを選択します。 左側のテンプレートリストに行き、Azure Stream Analytics>Stream Analytics Edge>Azure Stream Analytics Edgeアプリケーションを展開します。 プロジェクト名、場所、ソリューション名を入力し、 OKを選択してください。
Visual Studioがプロジェクトを作成した後、ソリューション エクスプローラーに行ってフォルダの階層を確認できます。
正しいサブスクリプションを選んでください
ジョブを作成したい場所でVisual StudioをAzureサブスクリプションに接続してください。
Visual Studioのビューメニューから「サーバーエクスプローラー」を選択してください。
Azureを選択して長押し(または右クリック)し、「Microsoft Azureサブスクリプションに接続」を選択し、その後Azureアカウントでサインインします。
入力の定義
ジョブがストリーミングイベントを読み取るエッジハブ入力を設定してください。
ソリューション エクスプローラーからInputsノードを展開します。 EdgeInput.jsonという名前の入力が表示されます。 設定を見るために開いてください。
ソースタイプを データストリームに設定してください。 次に、Sourceを Edge Hubに、イベントシリアライゼーションフォーマットを JSON、エンコーディングを UTF8に設定します。 オプションとして、 入力エイリアスの名前を変更しても構いませんが、この例ではそのままにしてください。 入力エイリアスをリネームする場合は、クエリを定義する際に指定した名前を使いましょう。 [保存] を選択して設定を保存します。
出力を定義する
ジョブが結果を書き込むエッジハブの出力を設定しましょう。
ソリューション エクスプローラーからOutputsノードを展開します。 EdgeOutput.jsonという出力が表示されます。 設定を見るために開いてください。
Sinkを Edge Hubに設定し、Event Serialization Formatを JSONに設定し、Encodingを UTF8に、Formatを Arrayに設定します。 オプションとして、 出力エイリアスの名前を変更しても構いませんが、この例ではそのままにしてください。 出力エイリアスをリネームする場合は、クエリを定義した際に指定した名前を使いましょう。 [保存] を選択して設定を保存します。
支援されていない作戦のレビュー
Stream Analytics IoT Edge環境に展開されるStream Analyticsのジョブは、ほとんどのStream Analyticsクエリ言語参照をサポートします。 しかし、Stream Analytics Edgeのジョブでは以下の操作はサポートされていません。
- 分割
- オーバーごとのタイムスタンプ
- JavaScript UDF
- ユーザー定義アグリゲート(UDA)
- GetMetadataPropertyValue
- 14以上のアグリゲートを1ステップで使用
ポータルでStream Analytics Edgeジョブを作成すると、サポートされたオペレーターを使っていないとコンパイラが自動的に警告してくれます。
変換クエリを定義する
Visual Studioから、クエリエディタ(script.asaqlファイル)で以下の変換クエリを定義します。
SELECT * INTO EdgeOutput
FROM EdgeInput
ローカルで仕事をテストしてください
ローカルでクエリをテストするには、サンプルデータをアップロードします。 サンプルデータを入手するには、GitHubリポジトリから登録データをダウンロードし、ローカルのコンピュータに保存してください。
サンプルデータをアップロードするには、 EdgeInput.json ファイルを選択して長押し(または右クリック)し、「 ローカル入力を追加」を選択します。
ポップアップウィンドウで、ローカルパスのサンプルデータを 閲覧 し、「 保存」を選択します。
Visual Studio自動的に入力フォルダに local_EdgeInput.json というファイルを追加します。
ローカルで実行するか、Azureに提出するかのどちらかです。 クエリをテストするには、「 ローカル実行」を選択します。
コマンドプロンプトのウィンドウにはジョブのステータスが表示されます。 ジョブが正常に実行されると、プロジェクトのフォルダパス
Visual Studio 2015\Projects\MyASAEdgejob\MyASAEdgejob\ASALocalRun\2018-02-23-11-31-42に2018-02-23-11-31-42のようなフォルダが作成されます。 フォルダのパスに行ってローカルフォルダの結果を見ることができます。また、Azureポータルにサインインして、求人が作成されたかどうかも確認できます。
ジョブを Azure に送信する
クエリをテストした後、ジョブをAzureサブスクリプションに公開してください。
Azureに求人を提出する前に、まずAzureサブスクリプションに接続してください。 サーバーエクスプローラーを開き、Azureを選択して長押し(または右クリック)し、「Microsoft Azureサブスクリプションに繋がる」を選択し、その後Azureサブスクリプションにサインインします。
求人をAzureに提出するには、クエリエディターに行き「Azureに提出」を選択してください。
ポップアップ ウィンドウが開きます。 既存のStream Analytics Edgeジョブを更新するか、新しいジョブを作成するかを選びましょう。 既存のジョブを更新すると、ジョブ設定をすべて置き換えます。 このシナリオでは、新しいジョブを公開します。 「Create a New Azure Stream Analytics Job」を選択し、MyASAEdgeJobなどのジョブ名を入力し、必要なサブスクリプション、リソースグループ、ロケーションを選択し、「Submit」を選択します。
あなたは現在、Stream Analytics Edgeの仕事を持っています。 デバイスへのデプロイ方法については、「IoT Edgeでジョブを実行しましょう」をご覧ください。
仕事を管理しましょう
ジョブステータスとジョブ図をServer Explorerから管理します。
Server ExplorerのStream Analyticsから、サブスクリプションとStream Analytics Edgeジョブを展開したリソースグループを展開します。 MyASAEdgejobのステータスが「作成済み」と表示されます。 ジョブノードを展開し、そのジョブを開いて表示します。
ジョブビューウィンドウでジョブを更新し、削除し、Azureポータルで開くことができます。