チュートリアル: Visual Studio Code 上にある Azure Stream Analytics 用のカスタム .NET 逆シリアライザー (プレビュー)
重要
Azure Stream Analytics 用のカスタム .NET 逆シリアライザーは、2024 年 9 月 30 日に廃止されます。 この日付を過ぎると、この機能を使用できなくなります。
Azure Stream Analytics には、このドキュメントに示されているように、JSON、CSV、Avro の 3 つのデータ形式が組み込まれています。カスタム .NET 逆シリアライザーを使用すると、プロトコル バッファー、Bond、クラウド ジョブ用の他のユーザー定義形式などの他の形式でデータを処理できます。 このチュートリアルでは、Visual Studio Code を使用して Azure Stream Analytics ジョブ用のカスタム .NET 逆シリアライザーを作成、テスト、およびデバッグする方法について説明します。
学習内容は次のとおりです。
- プロトコル バッファー用のカスタム逆シリアライザーを作成する。
- Visual Studio Code で Azure Stream Analytics ジョブを作成する。
- カスタム逆シリアライザーを使用するように Stream Analytics ジョブを構成する。
- Stream Analytics ジョブをローカルで実行して、カスタム逆シリアライザーをテストおよびデバッグする。
前提条件
.NET Core SDK をインストールし、Visual Studio Code を再起動します。
このクイックスタートを使用して、Visual Studio Code を使用して Stream Analytics ジョブを作成する方法を学習します。
カスタム逆シリアライザーを作成する
Visual Studio Code 上でターミナルを開き、次のコマンドを実行して、カスタム逆シリアライザー用の ProtobufDeserializer という名前の .NET クラス ライブラリを作成します。
dotnet new classlib -o ProtobufDeserializer
ProtobufDeserializer プロジェクト ディレクトリに移動し、Microsoft.Azure.StreamAnalytics および Google.Protobuf NuGet パッケージをインストールします。
dotnet add package Microsoft.Azure.StreamAnalytics
dotnet add package Google.Protobuf
MessageBodyProto クラスと MessageBodyDeserializer クラスをプロジェクトに追加します。
ProtobufDeserializer プロジェクトをビルドします。
Azure Stream Analytics プロジェクトを追加する
Visual Studio Code を開き、Ctrl + Shift + P キーを押してコマンド パレットを開きます。 次に「ASA」と入力し、 [ASA: 新しいプロジェクトの作成] を選択します。 ProtobufCloudDeserializer という名前を付けます。
Stream Analytics ジョブを構成する
JobConfig.json をダブルクリックします。 次の設定を除き、既定の構成を使用します。
設定 推奨値 グローバル ストレージ設定のリソース 現在のアカウントからデータ ソースを選択します グローバル ストレージ設定のサブスクリプション < お客様のサブスクリプション > グローバル ストレージ設定のストレージ アカウント < お客様のストレージ アカウント > CustomCodeStorage 設定のストレージ アカウント < お客様のストレージ アカウント > CustomCodeStorage 設定のコンテナー < お客様のストレージ コンテナー > [入力] フォルダーの下にある input.json を開きます。 [Add live input](ライブ入力の追加) を選択し、Azure Data Lake Storage Gen2/Blob Storage から入力を追加し、 [Select from your Azure subscription](自分の Azure サブスクリプションから選択) を選択します。 次の設定を除き、既定の構成を使用します。
設定 推奨値 名前 入力 サブスクリプション < お客様のサブスクリプション > ストレージ アカウント < お客様のストレージ アカウント > コンテナー < お客様のストレージ コンテナー > シリアル化の種類 [カスタム] を選択します SerializationProjectPath CodeLens から [Choose library project path](ライブラリ プロジェクト パスの選択) を選択し、前のセクションで作成した ProtobufDeserializer ライブラリ プロジェクトを選択します。 [プロジェクトのビルド] を選択してプロジェクトをビルドします SerializationClassName CodeLens から [select deserialization class](逆シリアル化クラスの選択) を選択して、クラス名と DLL パスを自動設定します Class Name (クラス名) MessageBodyProto.MessageBodyDeserializer 次のクエリを ProtobufCloudDeserializer.asaql ファイルに追加します。
SELECT * FROM Input
サンプルの protobuf 入力ファイルをダウンロードします。 [入力] フォルダー内で、input.json を右クリックし、 [ローカル入力の追加] を選択します。 local_input1.json をダブルクリックし、次の設定を除き、既定の構成を使用します。
設定 推奨値 ローカル ファイル パスの選択 CodeLens を選択して、<ダウンロードしたサンプル protobuf 入力ファイルのファイル パス> を選択します
Stream Analytics ジョブを実行する
ProtobufCloudDeserializer.asaql を開き、CodeLens から [ローカルで実行] を選択し、ドロップダウン リストから [ローカル入力の使用] を選択します。
ジョブ ダイアグラムの [結果] タブで、出力結果を表示できます。 ジョブ ダイアグラム内のステップをクリックして、中間結果を表示することもできます。 詳細については、ジョブ ダイアグラムを使用したローカルでのデバッグに関する記事を参照してください。
Stream Analytics ジョブのカスタム逆シリアライザーが正常に実装されました。 このチュートリアルでは、ローカル入力データを使用してカスタム逆シリアライザーをローカルでテストしました。 クラウド内のライブ データ入力を使用して、このテストを行うこともできます。 クラウド内でこのジョブを実行するには、入力と出力を適切に構成する必要があります。 その後、Visual Studio Code から Azure にジョブを送信し、実装したカスタム逆シリアライザーを使用してクラウドでジョブを実行します。
逆シリアライザーをデバッグする
標準の.NET コードをデバッグするのと同じ方法で、.NET 逆シリアライザーをローカルでデバッグできます。
.NET 関数にブレークポイントを追加します。
Visual Studio Code の[アクティビティ] バーにある [実行] をクリックし、 [create a launch.json file](launch.json ファイルを作成) を選択します。
ProtobufCloudDeserializer を選択し、ドロップダウン リストから [Azure Stream Analytics] を選択します。
launch.json ファイルを編集して、<ASAScript>.asaql を ProtobufCloudDeserializer.asaql に置き換えます。
F5 キーを押してデバッグを開始します。 期待どおりに、プログラムはブレークポイントで停止します。 これは、ローカル入力データとライブ入力データの両方に対して機能します。
リソースをクリーンアップする
リソース グループ、ストリーミング ジョブ、および関連するすべてのリソースは、不要になったら削除します。 ジョブを削除すると、ジョブによって消費されるストリーミング ユニットに対する課金を回避することができます。 ジョブを後で使用する計画がある場合は、ジョブを停止し、必要なときに再起動することができます。 このジョブを継続して使用しない場合は、以下の手順を使用して、このチュートリアルで作成したすべてのリソースを削除してください。
Azure Portal の左側のメニューで [リソース グループ] を選択し、作成したリソースの名前を選択します。
リソース グループのページで [削除] を選択し、削除するリソースの名前をテキスト ボックスに入力してから [削除] を選択します。
次のステップ
このチュートリアルでは、プロトコル バッファー入力のシリアル化に対して、カスタム .NET 逆シリアライザーを実装する方法について学習しました。 カスタム逆シリアライザーの作成の詳細については、次の記事を参照してください。