引言
在当今快速发展的云计算环境中,游戏开发者面临着新的挑战和机遇。为了提升开发效率,需要更智能的工具来辅助工作流程。Amazon Q Developer CLI 作为亚马逊云科技推出的生成式 AI 助手,为开发者提供了一种新的方式来与云服务交互。
Amazon Q Developer CLI 是一个命令行工具,它让开发者可以在终端环境中使用生成式 AI 功能。通过自然语言交互和代码生成等特性,Amazon Q Developer CLI 可以帮助更高效地完成特定开发任务,减少重复性工作。开发者只需一句自然语言指令,便可完成原本需要数十个复杂命令才能实现的操作,从而真正实现”所想即所得”。
需要特别强调的是,尽管 Amazon Q Developer CLI 能够自动化许多复杂任务,但在生产环境中,开发者应始终对其生成的命令和代码进行审核后再执行。这种人为审核确保了安全性和准确性,尤其是在处理敏感资源或执行关键操作时,防止潜在的错误产生不可预见的后果。
原力棱镜游戏公司在研发和运维流程中全面引入了 Amazon Q Developer CLI,将其应用于复杂代码分析、策划数据表分析、基础设施搭建、线上排障、多云管理等多个环节,显著提升了开发效率和团队协作。在众多应用场景中,本文精选了两个具有代表性的案例进行详细介绍:Amazon EKS (Elastic Kubernetes Service) 研发联调类环境管理和助力游戏微信小程序转型。这些案例展示了 Amazon Q Developer CLI 如何帮助开发团队克服技术壁垒,加速业务创新。
Amazon Q Developer CLI 概述
Amazon Q Developer 是亚马逊云科技推出的生成式人工智能驱动的对话式助手,旨在帮助开发者理解、构建、扩展和操作亚马逊云科技应用程序。Amazon Q Developer CLI 是这一工具的命令行界面版本,专为喜欢在终端环境中工作的开发者设计。
Amazon Q Developer CLI 提供了多种功能,包括交互式聊天体验、自然语言到代码转换、代码生成与转换,以及工具权限管理等。它支持多种操作系统环境,安装过程简单直观,并与亚马逊云科技生态系统中的其他开发工具集成。
案例一:CLI 助力研发联调类环境快速交付
在游戏开发中,Kubernetes 常被用于容器编排,支持游戏服务的部署和扩展。传统上,创建和管理 EKS 集群是运维团队的专属工作,需要掌握大量 Kubernetes 相关命令和专业知识。原力棱镜游戏公司希望打破这一壁垒,让开发人员能够在需要时自主创建和管理资源,实现”随用随开”的灵活开发环境。
面临的背景和需求
作为一家游戏开发公司,原力棱镜团队经常需要为不同的项目和测试环境快速创建基础设施。以往这类需求需要提交工单给运维团队,通常会遇到以下问题:
- 资源管理困难:临时环境的创建和销毁缺乏灵活性
- 知识壁垒:大多数开发人员不熟悉 Kubernetes 的复杂概念和操作命令
团队曾考虑过采用自动化脚本或工具来解决这一问题,但传统自动化方案存在几个明显缺点:
- 维护成本高:自动化脚本需要运维团队持续维护和更新
- 缺乏灵活性:预设的自动化流程难以满足多变的项目需求
- 学习曲线陡峭:开发人员仍需学习特定的配置语法和参数
原力棱镜希望找到一种方法,让不懂 Kubernetes 的开发人员也能够自主创建和管理所需的开发环境,而不必依赖专职运维团队或复杂的自动化流程。
Amazon Q Developer CLI 的应用
原力棱镜引入 Amazon Q Developer CLI,使开发人员可以通过自然语言交互直接创建和管理 EKS 集群。以下是一个典型的使用场景。
在这个示例中,开发人员使用了完全不含任何 Kubernetes 专业术语的简单描述,Amazon Q Developer CLI 能够理解意图并将其分解为具体的技术步骤。需要注意的是,在生产环境中,我们建议开发人员不要使用 /acceptall 指令让 CLI 自动执行所有任务,而是应该仔细审查每一条生成的命令,确保其符合预期后再手动执行。这样可以避免潜在的错误配置或安全风险。同时,我们也建议开发人员逐步学习相关的 Kubernetes 概念,如角色、节点组等,以便更好地理解和管理生产环境。虽然 CLI 可以帮助快速搭建测试环境,但在生产环境中,深入理解底层技术架构仍然是必要的。
传统 EKS 集群创建流程
在使用 Amazon Q Developer CLI 之前,创建 EKS 集群通常需要运维工程师按照亚马逊云科技官方最佳实践手动执行以下步骤:
1、准备 IAM 角色和权限
- 创建 EKS 集群 IAM 角色
- 附加必要的策略
- 创建节点组 IAM 角色
- 为节点组角色附加工作节点策略
2、网络配置
- 规划 VPC 和子网
- 配置安全组
- 设置路由表
- 创建和配置集群
3、使用 eksctl 或 AWS CLI 创建 EKS 集群
- 等待集群创建完成
- 配置 kubectl 认证
- 添加节点组
4、创建节点组配置
- 部署节点组
- 验证节点就绪状态
这个过程不仅需要专业知识,还容易出错。而 Amazon Q Developer CLI 严格遵循 AWS 最佳实践,自动化地完成上述所有步骤,既保证了配置的正确性,又大大简化了操作流程。
使用自然语言描述需求
一位游戏开发人员(非 Kubernetes 专家)需要创建一个测试环境来部署新开发的游戏服务。在代码仓库切出了一个新的特性分支后,他需要立即测试这段代码的功能。他只需启动 Amazon Q Developer CLI 并输入一句简单的自然语言描述:
请帮我在东京地区创建eks集群,命名为lost2-battle,启动一个pod,pod配置4C8G,镜像在东京ECR仓库,volcanoforce/lost2_battle,版本:v1.0.3。services使用Internet-facing类型lb,对外开放80端口。nodegroup使用c5a.2xlarge机型。请在完成所有的创建后,在本地新建更新pod脚本。
图 1:开发人员使用自然语言请求创建 EKS 集群
自主完成集群创建与配置
Amazon Q Developer CLI 理解了这一需求,自动生成所需的命令和配置,并自动执行:
1、创建 EKS 集群角色
图 2:CLI 自动生成创建 EKS 角色的命令
在这一步中,CLI 自动识别出创建 EKS 集群的前置条件是需要一个具有正确权限的 IAM 角色。
2、创建 EKS 集群
图 3:CLI 生成 EKS 集群创建命令并执行
在生成 EKS 集群创建命令时,CLI 根据开发人员使用自然语言描述的 EKS 版本和亚马逊云科技区域选择合适的参数,无需开发人员查阅文档即可完成任务,并且这一过程是全自动的。
3、创建节点组
图 4:CLI 创建和配置节点组角色权限
节点组角色的创建通常需要理解复杂的 Amazon IAM 政策和权限系统。CLI 自动生成了所需的策略附加命令,并且自动执行。
图 5:CLI 创建节点组并监控进度
在创建节点组时,CLI 自动设置了开发人员要求的实例类型和节点数量,CLI 还主动等待操作完成,提供实时反馈。
4、创建 Pod 和 Service
图 6:CLI 自动生成并应用 Kubernetes 资源配置
CLI 自动编写并应用了 Kubernetes YAML 文件,省去了开发人员学习 Kubernetes 资源定义的时间。
5、生成更新容器镜像版本的 shell 脚本
图 7:CLI 生成容器镜像版本更新脚本
CLI 自动生成了一个shell脚本,用于更新容器镜像版本。这个脚本可以帮助开发人员在后续需要更新应用程序时,快速完成容器镜像的更新操作,无需手动编写复杂的 kubectl 命令。这种自动化脚本的生成大大简化了应用程序的维护工作。
6、检查集群状态
图 8:CLI 检查部署状态
CLI 自动定时轮训检查部署状态,直到部署完成。
7、生成任务总结和维护说明
图 9:操作总结和资源访问指南
最后,CLI 提供了完整的操作总结,包括所创建资源的概览、如何访问服务的说明,以及生成的 update_pod.sh 脚本使用说明。这个脚本可以让开发人员通过简单的命令行操作完成容器镜像的更新,无需手动编写复杂的 kubectl 命令。
自主完成集群删除
通过 Amazon Q Developer CLI 使用自然语言实现 EKS 集群的删除,整个过程也是自动的(开发人员事先输入了 /acceptall 指令,授权 CLI 自动执行全部任务),交互过程如下:
1、用自然语言与 Amazon Q Developer CLI 交互
注意:本示例中由于东京区域只有一个 EKS 集群,所以简单的描述就足够了。但在实际应用中,如果区域内有多个 EKS 集群,应该明确指定要删除的集群名称,例如”请帮我删除东京区域的 eks-demo 集群”,以避免误操作。
我在东京区域有个eks集群,请帮我删了
图 10:使用自然语言请求删除 EKS 集群
开发人员只需使用简单的自然语言请求删除集群,无需知道 EKS 资源之间的依赖关系和正确的删除顺序,这些复杂性由 CLI 自动处理。
2、删除 EKS 节点组,并等待删除完成
图 11:CLI 智能执行节点组删除操作
CLI 理解 EKS 资源之间的依赖关系,知道必须先删除节点组才能删除集群。它自动执行这一步骤,避免了因资源依赖关系导致的删除错误,这是缺乏经验的开发人员常犯的错误。
3、确认 EKS 节点组删除后,删除 EKS 集群
图 12:CLI 执行集群删除并提供进度反馈
CLI 智能地等待节点组完全删除后再删除集群,这种依赖关系的管理通常需要运维经验。同时,它还提供实时反馈,让开发人员了解操作进度。
4、等待 EKS 集群删除完成并进行任务总结
图 13:资源清理确认和操作总结
最后,CLI 确认所有资源已正确清理,防止资源泄漏导致的不必要费用产生。这种彻底清理的做法体现了良好的云资源管理实践。
这种方式使得开发人员无需了解底层的 Kubernetes 命令和概念,也能完成以前只有运维人员才能完成的任务。与固定的自动化脚本不同,CLI 能灵活应对各种场景需求,无需预先编写和维护大量脚本。开发人员只需用自然语言表达需求,就能获得定制化的环境。CLI 不仅能完成环境搭建,还能自动生成便于后续维护的工具脚本,比如用于更新容器镜像版本的 shell 脚本,这进一步降低了开发人员的操作门槛。这种”所想即所得”的体验,真正实现了”随需应变”。
通过赋能开发人员直接管理环境,原力棱镜实现了以下收益:
- 加速开发流程:从提交工单到自助创建,环境准备时间从数天缩短到数小时。
- 优化资源使用:开发人员可以在不需要时立即释放资源,节约成本。
- 专注核心开发:开发人员可以更专注于游戏功能开发,而不是等待基础设施。
这一案例展示了 Amazon Q Developer CLI 如何赋能非专业运维人员完成复杂的云基础设施任务。企业仍应建立适当的权限和安全策略,确保开发人员创建的资源符合组织的安全标准和最佳实践。值得注意的是,上述测试环境案例中使用了 /acceptall 指令来自动执行命令,这适用于开发测试场景。但在生产环境中,强烈建议开发者逐条审核 CLI 生成的命令和配置后再执行,以确保万无一失。
案例二:CLI 助力游戏微信小程序转型
原力棱镜的某款热门游戏需要接入微信小程序生态以扩展用户群体,但面临微信小程序 30MB 包体限制的挑战。团队需要将数百 MB 的游戏资源放到 CDN 上通过异步形式加载,因此需要将大量 C# 代码由同步调用改为异步调用。这种转换通常是一项耗时且容易出错的任务。
面临的挑战
原力棱镜团队的 C# 游戏应用程序包含大量同步方法,移植到微信小程序平台需要解决以下问题:
- 大量代码需要转换:应用程序中有几百个同步方法需要转换为异步实现。
- 保持功能一致性:确保转换后的代码行为与原始代码相同。
- 处理复杂依赖关系:许多方法之间存在复杂的调用关系和依赖。
- 时间压力:为了赶上市场窗口期,需要在短时间内完成微信小程序版本的开发。
Amazon Q Developer CLI 如何辅助代码转换
团队使用 Amazon Q Developer CLI 来辅助这一转换过程:
1、自然语言请求代码转换
开发人员通过简单的自然语言请求,向 Amazon Q Developer CLI 描述了需求:
找到GuideNavigationContext.cs 然后里面有UIManager.CreateView的调用,我现在需要异步编程,所以我写了一个新的UIManager.CreateViewAsyncUniTask,我现在需要你帮我把GuideNavigationContext.cs里面的同步改异步,UniTask你可以从工程里找到,你试试吧
图 14:使用自然语言请求 C#代码转换
2、代码分析与转换建议
Amazon Q Developer CLI 分析了原始 C# 代码,并进行了转换。以下是代码转换前后的对比:
图 15:C#同步方法转异步方法示例
Amazon Q Developer CLI 先找到所有调用位置,参见下图:
图 16:CLI 找到所有调用方代码
接下来,Amazon Q Developer CLI 完成了对所有调用代码的调整,下图为其中一个示例:
图 17:调用方代码异步化改造
这一案例展示了 Amazon Q Developer CLI 如何辅助完成代码转换任务。尽管 Amazon Q Developer CLI 可以提供转换建议,但开发人员仍需要审核和测试转换后的代码,确保其正确性和性能。在某些复杂场景下,可能需要手动调整生成的代码。
总结与最佳实践
Amazon Q Developer CLI 将生成式 AI 的能力集成到命令行环境中,通过上述两个案例,可以看到它为原力棱镜游戏公司带来了多方面的业务价值:
- 消除技术壁垒:让开发人员无需深入了解 Kubernetes 底层技术就能完成复杂任务,降低了技术门槛。
- 加速业务创新:从研发环境快速交付到微信小程序转型,CLI 工具帮助团队快速响应业务需求和市场机会。
- 降低成本:通过赋能开发人员自助服务,减少了环境等待时间和资源浪费,提高了整体研发效率。
- 业务敏捷性提升:使团队能够快速适应业务变化(如拓展到微信小程序平台),进入新的用户市场。
- 一句话完成复杂操作:以前需要编写数十行命令或复杂脚本的操作,现在只需一句自然语言指令即可完成,大幅降低了操作门槛。
- 分支即环境:任何代码分支都可以立即拥有对应的测试环境,开发人员能够随时进行功能验证和联调测试。
与传统解决方案相比,Amazon Q Developer CLI 提供了独特的优势:
- 相比人工操作:无需等待专家执行,避免了人员依赖,大幅减少了等待时间。
- 相比自动化脚本:无需预先定义所有场景,能够灵活应对变化的需求,且无需维护大量脚本。
- 相比低代码平台:更加灵活,可处理复杂场景,同时保持了接近原生命令的完整功能。
在使用 Amazon Q Developer CLI 时,推荐遵循以下最佳实践:
- 明确表达意图:向 CLI 提供清晰、具体的需求描述,让 AI 更好地理解目标。
- 迭代式交互:复杂任务可以分步实施,在每一步验证结果后再继续。
- 审核生成的代码和命令:特别是在生产环境中,始终检查 Amazon Q Developer CLI 生成的内容。切勿在生产环境中使用 /acceptall 指令自动执行所有命令,而应当逐条审核确认,特别是对于可能影响生产服务或产生不可逆转更改的操作。
- 建立治理机制:企业应建立适当的权限和安全策略,确保通过 CLI 创建的资源符合组织标准,并对生产环境中的 CLI 使用制定明确的审核流程和权限控制。
- 持续学习:让团队在使用过程中积累经验,逐步掌握如何更有效地使用自然语言与 CLI 交互。
- 生产环境安全第一:在生产环境中使用 Amazon Q Developer CLI 时,应遵循”先审核,后执行”的原则。可以先在非生产环境中验证命令的正确性,然后再将其应用到生产环境。
随着生成式 AI 技术的不断发展,Amazon Q Developer CLI 将继续进化,为开发者提供更强大的能力。通过合理利用这一工具,企业可以加速数字化转型,让团队聚焦于创造业务价值而非处理繁琐的技术细节。同时,保持对自动化操作的审慎态度,确保技术创新与运营安全的平衡。
资源链接
要开始使用 Amazon Q Developer CLI,请访问以下资源:
- Amazon Q Developer 官方文档 – 全面了解 Amazon Q Developer 的功能和使用方法
- Amazon Q Developer CLI 安装指南 – 详细的安装步骤和系统要求
- Amazon Q Developer 定价 – 了解各种使用场景下的费用计算
通过利用这些资源,您可以更快地掌握 Amazon Q Developer CLI 并将其集成到您的开发工作流程中。随着 Amazon Q 能力的不断扩展,建议定期访问这些资源以了解最新更新和最佳实践。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。
本篇作者
本期最新实验为《Agentic AI 帮你做应用 —— 从0到1打造自己的智能番茄钟》
✨ 自然语言玩转命令行,10分钟帮你构建应用,1小时搞定新功能拓展、测试优化、文档注释和部署
💪 免费体验企业级 AI 开发工具,质量+安全全掌控
⏩️[点击进入实验] 即刻开启 AI 开发之旅
构建无限, 探索启程!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。