AEM Development Agentを使用したCI/CD パイプラインのトラブルシューティング
AEM Development Agentを使用して、失敗したCI/CD パイプラインをトラブルシューティングおよび修正する方法を説明します。
AEM Development Agentは、AIを活用したガイダンスとアクションを提供することで、開発者、DevOps エンジニア、管理者などの技術部門が ワークフローを高速化 できるよう支援します。
概要
AEM Development Agentには、失敗したCI/CD パイプラインの一覧表示、トラブルシューティング、修正など、いくつかの機能が用意されています。 AI アシスタントを通じてAEM Development Agentを呼び出し、特定のユースケースに対処できます。
このチュートリアルでは、WKND Sites プロジェクト を使用して、AEM Development Agentを使用して失敗したCI/CD パイプラインをトラブルシューティングおよび修正する方法を示します。 AEMのプロジェクトにも同じ原則が適用されます。
簡単にするために、このチュートリアルでは、BylineImpl.java ファイルに単体テストの失敗を導入して、AEM Development Agentのパイプラインのトラブルシューティング機能を紹介します。
前提条件
このチュートリアルに従うには、以下が必要です。
- AEMのAI アシスタントとエージェントが有効になりました。 詳しくは、AEMでのAIの設定を参照してください。この記事に記載されているプレイグラウンドには、AEM Development Agent機能はありません。
- デベロッパーまたはプログラムマネージャーの役割でAdobe Cloud Managerにアクセスします。 詳しくは、役割の定義を参照してください。
- AEM as a Cloud Service環境
- Beta プログラム を介したAEMのエージェントへのアクセス
- WKND Sites プロジェクト がローカル コンピューターに複製されました
AEM Development Agentの現在の機能
このチュートリアルに入る前に、AEM Development Agentの現在の機能を確認しましょう。
- CI/CD パイプラインとそのステータスのリスト
- コード品質と デプロイメント の両方のタイプを含む、フルスタック パイプラインのトラブルシューティングと修正に失敗しました。
- フルスタック パイプラインのビルド (デプロイ可能なアーティファクトを生成するコードの補完)およびコード品質 (SonarQube ルールによる静的コード分析)ステップがサポートされています。
AEM Development Agentの機能は、継続的に拡張され、定期的に更新されます。 フィードバックと提案については、aem-devagent@adobe.comまで電子メールでお問い合わせください。
セットアップ
このチュートリアルを完了するには、次の手順に従います。
- WKND Sites プロジェクト を複製し、Cloud Manager Git リポジトリにプッシュします
- コード品質パイプラインの作成と設定
- パイプラインを実行し、失敗した実行を確認します
- AEM Development Agentを使用して、失敗したパイプラインのトラブルシューティングと修正を行います
各ステップを詳しく見ていきましょう。
デモプロジェクトとしてのWKND Sites プロジェクトの使用
このチュートリアルでは、WKND Sites プロジェクトのtutorial/dev-agent/unit-test-failure ブランチを使用して、AEM Development Agentの使用方法を説明します。 同じ原則をAEMのプロジェクトにも適用できます。
-
BylineImpl.javaファイルに単体テストの失敗が次のように導入されました。 独自のAEM プロジェクトを使用している場合は、同様の単体テストエラーが発生する可能性があります。code language-java ... @Override public String getName() { if (name != null) { return "Author: " + name; // This line is intentionally incorrect to introduce a unit test failure. } return name; } ... -
WKND Sites プロジェクト をローカル コンピューターに複製し、プロジェクト ディレクトリに移動して、
tutorial/dev-agent/unit-test-failureブランチに切り替えます。code language-shell git clone https://github.com/adobe/aem-guides-wknd.git cd aem-guides-wknd git checkout tutorial/dev-agent/unit-test-failure -
WKND Sites プロジェクト用に新しいCloud Manager Git リポジトリを作成し、ローカル Git リポジトリにリモートとして追加します。
-
Adobe Cloud Managerに移動し、プログラムを選択します。
-
左側のサイドバーで「リポジトリ」をクリックします。
-
右上隅の「リポジトリを追加」をクリックします。
-
リポジトリ名 (例:「wknd-site-tutorial」)を入力し、保存をクリックします。 リポジトリが作成されるのを待ちます。
-
右上隅の「リポジトリ情報にアクセス」をクリックし、リポジトリ URLをコピーします。
-
新しく作成したCloud Manager Git リポジトリをリモートとしてローカル Git リポジトリに追加します。
code language-shell git remote add adobe https://git.cloudmanager.adobe.com/<your-adobe-organization>/wknd-site-tutorial/
-
-
ローカル Git リポジトリをCloud Manager Git リポジトリにプッシュします。
code language-shell git push adobe資格情報の入力を求められたら、ユーザー名および パスワード を Cloud Manager の リポジトリ情報 モーダルから指定します。
コード品質パイプラインの作成と設定
このチュートリアルでは、コード品質パイプライン(実稼動以外)を使用して、パイプラインのエラーをトリガーし、トラブルシューティングを行います。 コード品質パイプラインについて詳しくは、CI/CD パイプラインの概要を参照してください。
-
Cloud Managerで、パイプライン セクションに移動し、追加 > 実稼動以外のパイプラインを追加を選択します。
-
実稼動以外のパイプラインを追加 ダイアログで、次の設定を行います。
-
設定 ステップ:
- Pipeline Typeのようなデフォルト値は
Code Quality Pipelineとして、デプロイメントトリガーはManualとして保持します。 - 実稼動以外のパイプライン名の場合、
Code Quality::Fullstackと入力します
- Pipeline Typeのようなデフォルト値は
-
Source コード ステップ:
- フルスタックコードを選択
- Repositoryで、新しく作成したCloud Manager Git リポジトリを選択します
- Git Branchの場合、
tutorial/dev-agent/unit-test-failureを選択します - 「保存」をクリックします。
-
-
パイプラインエントリの3 ドットメニューの 実行 をクリックして、新しく作成したコード品質パイプラインを実行します。
失敗したパイプライン実行の監視
コード品質パイプラインがアーティファクト準備 ステップで失敗し、エラーが発生します。
AEM Development Agentを使用しない場合、このパイプラインのエラーには手動でのトラブルシューティングが必要です。 開発者はログを確認し、コードを確認する必要があります。これは、面倒で時間のかかるプロセスです。
次に、Agentic AIが失敗したパイプライン実行のトラブルシューティングと修正を行う方法を確認します。
AEM Development Agentを使用して、失敗したパイプラインのトラブルシューティングと修正を行う
パイプラインの失敗を自然言語で説明することで、AEMのAI アシスタントを使用してAEM Development Agentを呼び出すことができます。
-
右上隅のAI アシスタント アイコンをクリックします。
-
パイプラインの失敗の詳細を自然言語(別名プロンプト)で入力します。 次に例を示します。
code language-text I have a failed pipeline execution on %PROGRAM-NAME% program, help me to troubleshoot and fix it.
失敗したパイプライン実行のトラブルシューティングと修正を行うために、AEM Development Agentが呼び出されます。
note NOTE 入力されたプロンプトが明確でない場合、AI アシスタントは明確化を求め、プロンプトを改善するための情報を提供します。 -
推論が完了したら、全画面で開く アイコンをクリックして、詳細なトラブルシューティング プロセスを表示します。
結果には、エラーの詳細、ソースファイル、行番号、問題を解決するための明確な手順を含む解決方法 セクションなど、貴重なインサイトが含まれています。
-
この場合、エージェントは、問題を修正するために、実装(
getName()メソッド)の変更または単体テスト(getNameTest()メソッド)の更新を正しく提案しました。 ハルシネーションを回避し、人間によるループ型のアプローチを採用しながら、開発者に実用的なコード変更を提供しました。
-
提案されたコードの変更を含む
BylineImpl.javaファイルを更新し、変更をコミットしてCloud Manager Git リポジトリにプッシュします。code language-java ... @Override public String getName() { return name; } ... -
パイプラインを再度実行し、正常な実行を確認します。
その他の例
WKND Sites プロジェクトには、依存の欠落や設定の誤りなど、破損したコードや設定の問題の追加例が含まれています。 これらの例を調べるには、tutorial/dev-agent/🔗で始まる分岐を確認します。 破損した変更を確認するには、比較 ボタンをクリックして、tutorial/dev-agent/unit-test-failure ブランチとmain ブランチを比較します。 次に、変更されたファイル セクションを探します。
AEM Development Agentの使用方法について詳しくは、 サンプルプロンプト を参照してください。
概要
このチュートリアルでは、AEM Development Agentを使用して、AI アシスタントを使用して失敗したCI/CD パイプラインをトラブルシューティングおよび修正する方法を学習しました。 また、エージェンティック AIによって、実用的なインサイトの提供やコードの変更を行うことで、テクニカルワークフローを高速化する方法についても学びました。
AEM Development AgentとAEMの他のAgentsを使用して、ワークフローを高速化する方法について詳しくは、AEMのAgentsの概要を参照してください。