利用亚马逊AI代码助手生成、构建和编译代码应用项目

随着AI在软件开发领域的快速创新,高质量的代码生成需要一个可靠的实时测试运行环境。开发者经常需要花费大量时间调试和迭代AI生成的代码,以确保其符合项目需求,从而导致功能交付延迟。此前Amazon Q Developer开发代理主要专注于代码生成。在最新的版本更新中,该代理现在可以实时构建和测试代码,在开发者审核之前进行代码验证。这一新功能主要针对亚马逊社区开发者,对代码推荐、生成质量的反馈意见,包括检测错误、保持生成的代码与工程项目当前状态同步,并通过简化代码生成和测试流程,加快开发进程。

借助自然语言输入和项目代码的特定上下文,Amazon Q Developer代理能够帮助开发者实现复杂的多代码文件生成功能、修复Bug以及编写测试用例。例如开发者可以请求Amazon Q Developer代理为电商应用程序添加结账功能。代理会分析现有代码库,并在几分钟内完成所有必要的代码修改和测试,包括运行单元测试和构建代码,以确保代码可以被审核。这种方式显著提升了开发效率并减少错误。要在IDE中使用Amazon Q Developer代理,只需安装Amazon Q扩展,并在聊天窗口中输入/dev命令即可启动请求。

当开发者在IDE中输入/dev命令后,代理会打包项目并安全地上传至Amazon Q,然后启动针对特定项目的代码生成。Amazon Q Developer代理不仅负责代码生成,还能与开发者保持实时连接,在整个过程中提供更新,并最终交付一个完善的补丁或功能实现。

实时执行依赖Devfile

Amazon Q Developer的实时代码执行功能由Devfile - 容器化开发环境工具提供支持,它定义了开发环境以及代理在启动应用时执行的命令。如果项目中尚未包含Devfile,Amazon Q Developer将在首次运行/dev后提示开发者创建一个。如果没有Devfile,代理仍然可以利用AI代码助手开发解决方案,但无法对应用进行构建或单元测试,限制了开发者获取实时反馈的能力。Devfile需符合 Devfile 2.2.0 规范。目前,Amazon Q Developer支持安装(install)、构建(build)和测试(test)命令。

最新Amazon Q Developer更新中的核心增强功能

  • 自定义命令:开发者可以在Devfile中指定代理可执行的命令,以减少不必要的步骤,提高准确性。
  • 灵活的环境设置:开发者可以使用预装依赖项的自定义Docker镜像来加快容器化开发环境的启动速度,确保代理具备所需工具。
  • 沙盒安全性:Amazon Q Developer在隔离环境内执行代码,提供全面的日志记录和严格的权限控制,确保代码修改的安全性。

在该设置下,Amazon Q Developer可以直接在沙盒环境中执行测试、应用数据库迁移和运行安装命令,并将反馈提供给代理,以便进行应用迭代改进。

 

安全性与隔离机制

鉴于在AI代码助手中构建和测试我们的代码可能引入安全风险,Amazon Q Developer代理引入了多项安全防护措施:

  • 环境隔离:所有命令都在隔离的安全沙盒环境中执行,且该环境不包含任何访问非公网资源的秘钥和密码,确保只有明确允许的操作能够安全执行。
  • Devfile驱动:整个过程完全依赖于Devfile配置文件执行,开发者可以通过Devfile完全控制代理在SDLC过程中执行的命令。

开始使用Amazon Q Developer代理

要开始使用Amazon Q代码生成代理,大家需要拥有亚马逊云科技Builder ID,或使用IAM Identity Center进行组织级别授权,以便使用Amazon Q Developer。要在Visual Studio Code中使用Amazon Q Developer代理进行软件开发,只需安装Amazon Q扩展。扩展的最新版本可以在Amazon Q Developer页面找到。此外,该扩展还支持JetBrains、Eclipse(预览版)和Visual Studio IDE。关于支持的IDE列表及各IDE支持的功能,可以参考Amazon Q Developer文档。

接下来大家就可以在Amazon Q Developer的聊天窗口中输入“/dev”激活代码开发助手。

执行过程概览

Amazon Q Developer依托隔离的沙盒环境来安全地执行代理生成的代码,确保生成的代码安全运行并与原始代码库的代码不会有冲突。以下是执行过程的详细步骤:

1. 启动执行环境

在接收到开发者的请求后,Amazon Q Developer代理会启动一个沙盒实例或开发者指定的Docker容器,作为代码执行的隔离环境。

2. 安全执行命令

代理在沙盒环境中,基于Devfile规定的命令,安全地执行一系列Shell命令。Devfile起到测试环境配置的作用,确保开发环境的可复现性,并减少手动设置的工作量。

开发者可以在Devfile中定义自定义命令,用于安装依赖项、运行测试、应用数据库迁移或执行构建脚本,从而提高准确性和效率。

3. 反馈与同步

每个命令执行后,代理会跟踪代码变更并实时提供反馈,在命令执行过程中就进行实时迭代改进。

在本系列的上篇中,我们介绍了通过Amazon Q Developer代理的实时代码生成和测试功能,开发者可以更高效地交付高质量代码,同时减少错误,提升整体开发体验。欢迎大家继续关注小李哥的生成式AI应用安全系列,了解国际前沿的亚马逊云科技解决方案,关注我不要错过未来更多的干货内容! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值