Azure DevOps を使用して Stream Analytics ジョブの CI/CD パイプラインを作成する
この記事では、Azure Stream Analytics CI/CD ツールを使用して、Azure DevOps のビルド パイプラインとリリース パイプラインを作成する方法について説明します。
Stream Analytics プロジェクトをコミットする
開始する前に、Stream Analytics プロジェクトをソース ファイルとして Azure DevOps リポジトリにコミットします。 このサンプル リポジトリと Stream Analytics プロジェクト ソース コードを Azure Pipelines で参照できます。
この記事の手順では、Stream Analytics Visual Studio Code プロジェクトを使用します。 Visual Studio プロジェクトを使用している場合は、「CI/CD ツールを使用して Azure Stream Analytics ジョブのビルド、テスト、デプロイを自動化する」の手順に従ってください。
ビルド パイプラインを作成する
このセクションでは、ビルド パイプラインを作成する方法について説明します。
Web ブラウザーを開き、Azure DevOps で目的のプロジェクトに移動します。
左側のナビゲーション メニューの [パイプライン] で、[ビルド] を選択します。 [新しいパイプライン] を選択します。
[従来のエディターを使用する] を選択して、YAML なしでパイプラインを作成します。
ソースの種類、チーム プロジェクト、リポジトリを選択します。 その後、 [続行] を選択します。
[テンプレートの選択] ページで、[空のジョブ] を選択します。
npm パッケージをインストールする
[タスク] ページで、[Agent job 1](エージェントジョブ 1) の横にあるプラス記号を選択します。 タスク検索に「npm」と入力し、 [npm] を選択します。
タスクに表示名を付けます。 [コマンド] オプションを "カスタム" に変更し、[コマンドと引数] に次のコマンドを入力します。 他の既定のオプションはそのまま使用します。
install -g azure-streamanalytics-cicd
ホストされている Linux エージェントを使用する必要がある場合は、次の手順を使用します。
該当するエージェントの指定を選択します
[タスク] ページで、[Agent job 1](エージェントジョブ 1) の横にあるプラス記号を選択します。 タスク検索で「コマンド ライン」と入力し、 [コマンド ライン] を選択します。
タスクに表示名を付けます。 [スクリプト] に次のコマンドを入力します。 他の既定のオプションはそのまま使用します。
sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
ビルド タスクの追加
[変数] ページで、 [パイプライン変数] の [+ 追加] を選択します。 次の変数を追加します。 次の値を好みに応じて設定します。
変数名 値 projectRootPath <プロジェクト名> outputPath Output deployPath 配置 [タスク] ページで、[Agent job 1](エージェントジョブ 1) の横にあるプラス記号を選択します。 [コマンド ライン] を探します。
タスクに表示名を指定し、次のスクリプトを入力します。 リポジトリ名とプロジェクト名を使用してスクリプトを変更します。
Note
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 プロジェクトを例として使用しています。
テスト タスクを追加する
[変数] ページで、 [パイプライン変数] の [+ 追加] を選択します。 次の変数を追加します。 値は、実際の出力パスとリポジトリ名に合わせて変更してください。
変数名 値 testPath テスト [タスク] ページで、[Agent job 1](エージェントジョブ 1) の横にあるプラス記号を選択します。 [コマンド ライン] を探します。
タスクに表示名を指定し、次のスクリプトを入力します。 スクリプトは、実際のプロジェクト ファイル名とテスト構成ファイルのパスに合わせて変更してください。
テスト ケースを追加して構成する方法について詳しくは、自動テストの手順を参照してください。
azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json
ファイルのコピー タスクを追加する
テスト概要ファイルと Azure Resource Manager テンプレート ファイルを成果物フォルダーにコピーするには、ファイルのコピー タスクを追加する必要があります。
[タスク] ページで、[Agent job 1](エージェント ジョブ 1) の横にある + を選択します。 [ファイルのコピー] を探します。 次の構成を入力します。 [コンテンツ] に
**
を割り当てることにより、テスト結果のすべてのファイルがコピーされます。パラメーター 入力 表示名 ファイルのコピー先: $(build.artifactstagingdirectory) [同期元フォルダー] $(system.defaultworkingdirectory)/$(outputPath)/
内容 **
ターゲット フォルダー $(build.artifactstagingdirectory)
[管理オプション] を展開します。 [このタスクを実行] の [前のいずれかのタスクが失敗した場合でも、ビルドがキャンセルされていなければ] を選択します。
ビルド成果物の公開タスクを追加する
[タスク] ページで、[Agent job 1](エージェントジョブ 1) の横にあるプラス記号を選択します。 [ビルド成果物の公開] を探し、黒い矢印アイコン付きオプションを選択します。
[管理オプション] を展開します。 [このタスクを実行] の [前のいずれかのタスクが失敗した場合でも、ビルドがキャンセルされていなければ] を選択します。
保存と実行
npm パッケージ、コマンド ライン、ファイルのコピー、およびビルド成果物の公開タスクの追加が完了したら、[保存してキューに登録] を選択します。 メッセージが表示されたら、保存コメントを入力し、[保存および実行] を選択します。 テスト結果は、パイプラインの [Summary](概要) ページからダウンロードできます。
ビルドとテストの結果を確認する
テスト概要ファイルと Azure Resource Manager テンプレート ファイルは、 [Published](公開済み) フォルダーにあります。
Azure Pipelines を使用したリリース
このセクションでは、リリース パイプラインを作成する方法について説明します。
Web ブラウザーを開き、Azure Stream Analytics Visual Studio Code プロジェクトに移動します。
左側のナビゲーション メニューの [パイプライン] で、[リリース] を選択します。 [新しいパイプライン] を選択します。
[start with an Empty job](空のジョブを開始する) を選択します。
[Artifacts](成果物) ボックスで、[+ Add an artifact](+ 成果物の追加) を選択します。 [ソース] で、作成したビルド パイプラインを選択し、 [追加] を選択します。
[Stage 1](ステージ 1) の名前を [Deploy job to test environment](テスト環境にジョブをデプロイ) に変更します。
新しいステージを追加して、[Deploy job to production environment](運用環境にジョブをデプロイ) という名前を付けます。
デプロイ タスクを追加する
Note
パラメーターはオブジェクトとして渡されるため、Override template parameters
は ARM v2 ビルドには適用できません。 これに対処するには、パイプラインに PowerShell スクリプトを含め、パラメーター ファイルを JSON として読み取り、必要なパラメーター変更を行うことをお勧めします。
PowerShell スクリプトの追加に関するガイダンスについて詳しくは、「ConvertFrom-Json」と JSON ファイルでのオブジェクトの更新に関するページをご覧ください。
タスクのドロップダウンから、[Deploy job to test environment](テスト環境にジョブをデプロイ) を選択します。
[エージェント ジョブ] の横にある + を選択し、ARM テンプレート デプロイを検索します。 次のパラメーターを入力します。
パラメーター 値 表示名 myASAProject をデプロイする Azure サブスクリプション サブスクリプションを選択します。 アクション Create or update resource group (リソース グループを作成または更新) Resource group Stream Analytics ジョブを含めるテスト リソース グループの名前を選択します。 場所 テスト リソース グループの場所を選択します。 テンプレートの場所 Linked artifact (リンクされた成果物) Template $(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"
. パラメーターは、 [変数] を使用して定義できます。展開モード 増分 タスクのドロップダウンから、[Deploy job to production environment](運用環境にジョブをデプロイ) を選択します。
[エージェント ジョブ] の横にある + を選択し、"ARM テンプレート デプロイ" を検索します。 次のパラメーターを入力します。
パラメーター 値 表示名 myASAProject をデプロイする Azure サブスクリプション サブスクリプションを選択します。 アクション Create or update resource group (リソース グループを作成または更新) Resource group Stream Analytics ジョブを含める運用リソース グループの名前を選択します。 場所 運用リソース グループの場所を選びます。 テンプレートの場所 Linked artifact (リンクされた成果物) Template $(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"
展開モード 増分
リリースを作成する
リリースを作成するには、右上隅にある [リリースの作成] を選択します。