この記事では、Azure Stream Analytics CI/CD ツールを使用して、Azure DevOps build および release パイプラインを作成する方法について説明します。
Stream Analytics プロジェクトをコミットする
開始する前に、完全な Stream Analytics プロジェクトをソース ファイルとして Azure DevOps リポジトリにコミットします。 このサンプル リポジトリとStream Analytics プロジェクトのソース コードをAzure Pipelinesで参照できます。
この記事の手順では、Stream Analytics Visual Studio Code プロジェクトを使用します。 Visual Studio プロジェクトを使用している場合は、「
ビルド パイプラインを作成する
このセクションでは、ビルド パイプラインを作成する方法について説明します。
Web ブラウザーを開き、Azure DevOpsでプロジェクトに移動します。
左側のナビゲーション メニューの「パイプライン」で、「ビルド」を選択します。 次に、[ 新しいパイプライン] を選択します。
[ クラシック エディターを使用して YAML なしでパイプラインを作成する] を選択します。
ソースの種類、チーム プロジェクト、リポジトリを選択します。 次に、[ 続行] を選択します。
[ テンプレートの選択 ] ページで、[ 空のジョブ] を選択します。
npm パッケージをインストールする
[ タスク] ページで、[ エージェント ジョブ 1] の横にあるプラス記号を選択します。 タスク検索に 「npm 」と入力し、 npm を選択します。
タスクに 表示名を付けます。 Command オプションをカスタムに変更し、Command と引数に次のコマンドを入力します。 他の既定のオプションは変更しないでください。
install -g azure-streamanalytics-cicd
ホストされた Linux エージェントを使用する必要がある場合は、次の手順に従います。
エージェントの仕様を選択します。
[ タスク] ページで、[ エージェント ジョブ 1] の横にあるプラス記号を選択します。 タスク検索に コマンド ライン を入力し、[ コマンド ライン] を選択します。
タスクに 表示名を付けます。 スクリプトに次のコマンドを入力します。 他の既定のオプションは変更しないでください。
sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
ビルド タスクを追加する
[変数] ページで、[+ パイプライン変数に追加] を選択します。 次の変数を追加します。 次の値を好みに応じて設定します。
変数名 値 プロジェクトのルートパス <プロジェクト名> 出力パス 出力 デプロイパス デプロイ [ タスク] ページで、[ エージェント ジョブ 1] の横にあるプラス記号を選択します。 コマンド ラインを検索します。
タスクに 表示名 を付け、次のスクリプトを入力します。 リポジトリ名とプロジェクト名を使用してスクリプトを変更します。
注記
build --v2コマンドを使用してデプロイ用の ARM テンプレートを生成することを強くお勧めします。 新しい ARM テンプレートは、以前のバージョンと同じ機能を維持しながら、パラメーターの数が少なくなっています。古い ARM テンプレートは間もなく非推奨になります。
build --v2を使用して作成されたテンプレートのみが、更新プログラムとバグ修正を受け取ります。azure-streamanalytics-cicd build --v2 -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(deployPath)次の図では、例として Stream Analytics Visual Studio Code プロジェクトを使用しています。
ストリーム アナリティクス Visual Studio Code プロジェクトをビルドするコマンド ライン タスクを示すAzure DevOps パイプライン エディターのスクリーンショット
テスト タスクを追加する
[変数] ページで、[+ パイプライン変数に追加] を選択します。 次の変数を追加します。 値は、実際の出力パスとリポジトリ名に合わせて変更してください。
変数名 値 testPath テスト [ タスク] ページで、[ エージェント ジョブ 1] の横にあるプラス記号を選択します。 コマンド ラインを検索します。
タスクに 表示名 を付け、次のスクリプトを入力します。 スクリプトは、実際のプロジェクト ファイル名とテスト構成ファイルのパスに合わせて変更してください。
テスト ケースを追加および構成する方法の詳細については、 自動テストの手順 を参照してください。
azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json
ファイルのコピー タスクを追加する
テスト概要ファイルとAzure Resource Managerテンプレート ファイルを成果物フォルダーにコピーするコピー ファイル タスクを追加します。
[タスク] ページで、[+] の横にあるを選択します。 コピー ファイルを検索します。 次の構成を入力します。
**を Contents に割り当てることで、テスト結果のすべてのファイルがコピーされます。パラメーター 入力 表示名 ファイルのコピー先: $(build.artifactstagingdirectory) 元フォルダー $(system.defaultworkingdirectory)/$(outputPath)/内容 **ターゲット フォルダー $(build.artifactstagingdirectory)[コントロール オプション] を展開します。 このタスクの実行では、前のタスクが失敗しても、ビルドが取り消されていない限りを選択します。
ビルド成果物の公開タスクを追加する
[ タスク] ページで、[ エージェント ジョブ 1] の横にあるプラス記号を選択します。 [ビルド成果物の発行] を検索し、黒い矢印アイコンを使用してオプションを選択します。
[コントロール オプション] を展開します。 [このタスクの実行] でビルドが取り消されていない限り、前のタスクが失敗した場合でも選択します。
保存と実行
npm パッケージの追加、コマンド ライン、ファイルのコピー、ビルド成果物タスクの発行が完了したら、[ 保存] と [キュー] を選択します。 メッセージが表示されたら、保存コメントを入力し、[ 保存して実行] を選択します。 パイプラインの [概要] ページからテスト結果をダウンロードできます。
ビルドとテストの結果を確認する
テストの概要ファイルとAzure Resource Managerテンプレート ファイルは、Published フォルダーにあります。
Azure Pipelinesを使用したリリース
このセクションでは、リリース パイプラインを作成する方法について説明します。
Web ブラウザーを開き、Azure Stream Analytics Visual Studio Code プロジェクトに移動します。
左側 の ナビゲーション メニューの [パイプライン] で、[ リリース] を選択します。 新しいパイプラインを選択します。
[ 空のジョブで開始] を選択します。
[成果物] ボックス で 、[ + 成果物の追加] を選択します。 [ ソース] で、作成したビルド パイプラインを選択し、[ 追加] を選択します。
ステージ 1 の名前をテスト環境にジョブをデプロイするように変更します。
新しいステージを追加し、運用環境 にジョブをデプロイするという名前を付けます。
デプロイ タスクを追加する
注記
Override テンプレート パラメーター オプションは、Azure Resource Manager v2 ビルドには適用されません。これは、プロセスでパラメーターがオブジェクトとして渡されるためです。 この制限を回避するには、パラメーター ファイルを JSON として読み取り、必要なパラメーター変更を行う PowerShell スクリプトをパイプラインに追加します。
PowerShell スクリプトの追加の詳細については、「 ConvertFrom-Json 」および「 JSON ファイルのオブジェクトの更新」を参照してください。
[タスク] ドロップダウンから、[ Deploy job to test environment]\(テスト環境にジョブをデプロイする\) を選択します。
+の横にあるを選択し、ARM テンプレートのデプロイを検索します。 次のパラメーターを入力します。
パラメーター 値 表示名 myASAProject をデプロイする Azure サブスクリプション サブスクリプションを選択します。 アクション リソース グループを作成または更新する リソース グループ Stream Analytics ジョブを含むテスト リソース グループの名前を選択します。 場所 テスト リソース グループの場所を選択します。 テンプレートの場所 Linked artifact (リンクされた成果物) テンプレート $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.jsonテンプレート パラメーター $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.jsonテンプレート パラメーターのオーバーライド -<arm_template_parameter> "your value"。 変数を使用してパラメーターを定義 します。展開モード インクリメンタル [タスク] ドロップダウンから、[ ジョブを運用環境にデプロイ] を選択します。
+の横にあるを選択し、ARM テンプレートのデプロイを検索します。 次のパラメーターを入力します。
パラメーター 値 表示名 myASAProject をデプロイする Azure サブスクリプション サブスクリプションを選択します。 アクション リソース グループを作成または更新する リソース グループ Stream Analytics ジョブを含む運用リソース グループの名前を選択します。 場所 運用リソース グループの場所を選びます。 テンプレートの場所 リンクされた成果物 テンプレート $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.jsonテンプレート パラメーター $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.jsonテンプレート パラメーターのオーバーライド -<arm_template_parameter> "your value"展開モード インクリメンタル
リリースを作成する
リリースを作成するには、右上隅にある [ リリースの作成 ] を選択します。