使用AEM Development Agent对CI/CD管道进行故障诊断
了解如何使用AEM开发代理对失败的CI/CD管道进行故障排除和修复。
AEM开发代理通过提供AI支持的指导和操作,帮助技术团队(包括开发人员、DevOps工程师和管理员)加快其工作流。
概述
AEM Development Agent提供了多项功能,包括列出、排除和修复失败的CI/CD管道的功能。 您可以通过AI Assistant调用AEM开发代理,以解决您的特定用例。
本教程使用WKND Sites项目来演示如何使用AEM开发代理对失败的CI/CD管道进行故障排除和修复。 同样的原则适用于任何AEM项目。
为简单起见,本教程在BylineImpl.java文件中引入了一个单元测试失败,以展示AEM开发代理的管道故障排除功能。
先决条件
要学习本教程,您需要:
- AEM中的AI助手和代理已启用。 有关详细信息,请参阅在AEM中设置AI,并请注意,该文章中提到的游乐场将不具有AEM开发代理功能。
- 使用开发人员或项目经理角色访问Adobe Cloud Manager。 有关详细信息,请参阅角色定义。
- AEM as a Cloud Service环境
- 通过Beta程序访问AEM中的代理
- WKND站点项目已克隆到您的本地计算机
AEM Development Agent的当前功能
在深入研究本教程之前,让我们先查看AEM Development Agent的当前功能:
- 列出CI/CD管道及其状态
- 排除和修复失败的 全栈 管道,包括 代码质量 和 部署 类型。
- 支持 全栈 管道的生成(生成可部署项目的代码复杂化)和代码质量(通过SonarQube规则进行静态代码分析)步骤。
AEM Development Agent的功能会不断扩展和定期更新。 若要获取反馈和建议,请发送电子邮件至aem-devagent@adobe.com。
设置
请按照以下高级步骤完成本教程:
- 克隆WKND站点项目并将其推送到Cloud Manager Git存储库
- 创建和配置代码质量管道
- 运行管道并观察失败的执行
- 使用AEM开发代理对失败的管道进行故障排除和修复
下面我们将详细介绍每个步骤。
使用WKND Sites项目作为演示项目
本教程使用WKND Sites项目的tutorial/dev-agent/unit-test-failure分支来演示如何使用AEM开发代理。 同样的原则可以应用于任何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站点项目克隆到本地计算机,导航到项目目录,然后切换到
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中,导航到 管道 部分,然后选择添加 > 添加非生产管道。
-
在 添加非生产管道 对话框中,配置以下内容:
-
配置步骤:
- 将诸如 管道类型 之类的默认值保留为
Code Quality Pipeline,部署触发器保留为Manual。 - 对于非生产管道名称,输入
Code Quality::Fullstack
- 将诸如 管道类型 之类的默认值保留为
-
Source代码步骤:
- 选择全栈代码
- 对于存储库,选择新创建的Cloud Manager Git存储库
- 对于Git分支,请选择
tutorial/dev-agent/unit-test-failure - 单击保存
-
-
在管道条目的三点式菜单中单击运行,运行新创建的代码质量管道。
观察失败的管道执行
代码质量管道在 工件准备 步骤中失败,并返回错误:
如果没有AEM开发代理,此管道故障需要手动疑难解答。 开发人员需要检查日志并查看代码,这是一个繁琐且耗时的过程。
接下来,您将了解代理人工智能如何对失败的管道执行进行故障排除和修复。
使用AEM开发代理对失败的管道进行故障排除和修复
您可以通过以自然语言描述管道故障,从而使用AEM中的AI Assistant调用AEM开发代理。
-
单击右上角的 AI助手 图标。
-
以自然语言(即提示)输入管道失败详细信息。 例如:
code language-text I have a failed pipeline execution on %PROGRAM-NAME% program, help me to troubleshoot and fix it.
调用 AEM开发代理 对失败的管道执行进行故障排除和修复。
note note NOTE 如果输入的提示不清晰,AI助手会要求您进行说明,并提供信息以帮助您优化提示。 -
推理完成后,单击 全屏打开 图标以查看详细的故障排除过程。
结果包含有用的见解,包括错误详细信息、源文件、行号以及 如何修复 部分,其中包含解决问题的明确步骤。
-
在这种情况下,代理正确地建议更改实现(
getName()方法)或更新单元测试(getNameTest()方法)以解决此问题。 它避免了幻觉,并采用了human-in-the-loop方法,同时为开发人员提供了可操作的代码更改。
-
使用建议的代码更改更新
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开发代理的更多想法。
摘要
在本教程中,您已了解如何使用AEM开发代理通过AI助手对失败的CI/CD管道进行故障排除和修复。 您还了解了代理人工智能如何通过提供可操作见解和代码更改来加速技术工作流。
开始使用AEM中的AEM开发代理和其他代理来加速您的工作流,有关详细信息,请参阅AEM中的代理概述。