View a markdown version of this page

自定义 - AWS 转换

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义

什么是 AWS 改造自定义?

AWS Transform custom 使用代理人工智能对软件、代码、库和框架进行大规模现代化改造,以减少技术债务。它可以处理各种场景,包括语言版本升级、API 和服务迁移、框架升级和迁移、代码重构以及特定于组织的转换。

通过持续学习,代理可以根据每次执行和开发人员反馈进行改进,无需专业的自动化专业知识即可提供高质量、可重复的转换。

关键功能

AWS 自定义转换提供以下功能:

  • 自然语言驱动的转换定义-使用自然语言、文档和代码示例创建自定义转换

  • 转换执行-在多个代码库中一致可靠地应用转换

  • 持续学习-自动提高每次执行的转换质量

  • AWS-托管转换 AWS-在常见场景中使用现成的、经过审查的转换

变换模式

AWS Transform custom 支持多种转型模式,以满足您的现代化需求。根据所需变更的范围和性质,每种模式都有不同的复杂性特征。

模式 说明 复杂度 示例
API 和服务迁移 在 API 版本或同等服务之间迁移,同时保持功能 AWS SDK v1→v2(Java、Python、 JavaScript)、Boto2→Boto3、junit 4→5、javax→雅加达
语言版本升级 升级到同一编程语言的较新版本,采用新功能并替换已弃用的功能 Low-Medium Java 8→17、Python 3.9→3.13、12→22、版本升级 Node.js TypeScript
框架升级 升级到同一框架的较新版本,解决重大变化 Spring Boot 2.x→3.x、React 17→18、Angular 升级、Django 升级
框架迁移 迁移到用途相似的完全不同的框架 Angular→React,Redux→Zustand,→React Vue.js
库和依赖项升级 将第三方库升级到新版本,同时保持相同的语言和框架 Low-Medium Pandas 1.x→2.x、 NumPy 升级、库升级、 Hadoop/HBase/Hive Lodash 升级
代码重构和模式现代化 在不更改外部功能的情况下实现代码模式现代化并采用最佳实践 Low-Medium 打印→日志框架、字符串连接→f-strings、类型提示采用、可观察性工具
脚本和 File-by-File 翻译 翻译独立脚本或配置文件,其中文件大多是独立的 Low-Medium AWS CDK→TerraForm、Terraform →、Excel→Python 笔记本、Bas CloudFormation h→ PowerShell
架构迁移 只需最少的代码更改即可在硬件架构或运行时环境之间迁移 Medium-High x86→AWS Graviton (ARM),本地部署→Lambda,传统服务器→容器
Language-to-Language 迁移 将代码库从一种编程语言翻译成另一种编程语言 非常高 Java→Python, JavaScript→,C→Rust,Python→ TypeScript Go
自定义和 Organization-Specific 转换 独特的组织要求和专业的现代化需求 变化 自定义内部库迁移、组织特定的编码标准、专有框架迁移
注意

对于 COBOL/mainframe 语言,请使用大型机 AWS 转换。要将.NET 框架升级到.NET Core,请考虑使用 Windows 版 AWS 转换。要将 VMware 迁移到 AWS,请考虑为 VMware 进行 AWS 转换。

操作方法 AWS 改造自定义作品

AWS Transform custom 通常用于转换多个代码库或模块的大型项目。团队通常遵循四个阶段的工作流程:

定义转换-向生成初始转换定义的代理提供自然语言提示、文档和代码示例。可以通过聊天或直接编辑来迭代完善此定义。使用 AWS管理的转换时,可以跳过此阶段。

P@@ ilot or Proof-of-Concept-在示例代码库上测试转换,并根据结果进行优化。此验证阶段有助于估算全面转型的成本和工作量。在此阶段,持续学习可以提高质量。

扩展执行-使用 CLI 设置自动批量执行,由开发人员查看和验证结果。使用 Web 应用程序监控进度并跟踪多个存储库之间的转换。

监控和审查-持续学习可自动提高转换质量。查看从前几次运行中提取的经验教训,确保它们符合质量标准,并将任何无用的内容存档。

了解主要 概念

本节介绍使用自定义 AWS 转换的关键概念。

转换定义

转换定义包含执行特定代码转换所需的指令和知识。它被表示为一项技能,包括:

  • SKILL.md(必填)-Markdown 中带有 YAML 前缀(namedescription字段)的指令,其中包含核心转换逻辑和执行指令

  • references/文件夹(可选)-在转换执行期间根据需要加载文档

  • scripts/folder(可选)-转换在执行期间下载并运行的脚本

AWS 在执行、检查或修改需要时,Transform CLI 会自动将转换定义下载到当前目录。

重要

发布转换时,该目录必须仅SKILL.md包含references/文件夹、文件scripts/夹,或两者兼而有之。不允许使用其他文件或子目录。

注意

CLI 版本 2.0 及更高版本使用技能格式。现有的转换定义由 CLI 自动处理。

转换注册表

转换注册表是您 AWS 账户的集中存储库,用于存储和管理转换定义。注册表中的转换可以是:

  • 使用列出 atx custom def list

  • 跨多个代码库执行

  • 与您 AWS 账户中的其他用户共享

  • Version-controlled

重要

转换定义是特定于账户的。如果您想在其他 AWS 账户中使用转换,则必须在该账户中单独发布转换。

草稿与已发布的转换

AWS 自定义转换支持注册表中的两种转换状态:

草稿转换是正在进行或未经测试的转换定义。它们另存为特定版本,引用该特定版本的用户可以检索、更新和执行。在转换准备好与团队共享之前,草稿对于迭代开发、测试和完善非常有用。草稿还与特定的对话相关联。如果重新启动 CLI,则可以使用atx --conversation-id {id}恢复之前的 CLI。

已发布的转换可在您账户的转换注册表中找到,供具有所需 IAM 权限的其他用户执行。可以使用atx custom def list发现已发布的转换。

典型的工作流程是:

  1. 在本地创建转换

  2. 另存为草稿以供测试 (atx custom def save-draft)

  3. 完善和验证

  4. 发布以与您的团队共享 (atx custom def publish)

您也可以直接发布转换,而不必将其另存为草稿。

参考文献与教训

AWS 自定义转换使用两种类型的知识来提高转换质量:

参考文献是用户提供的文档,存储在转换定义的references/文件夹中。参考文献仅支持文本文件(所有文件的最大总容量为 10MB),通常包含文档、API 规范、迁移指南和代码示例。在转换执行期间,根据需要加载引用。在交互模式下创建或更新转换定义时,可以添加引用。

课程是从之前的转换运行中自动提取的。持续学习系统根据执行轨迹、开发者反馈以及转换过程中遇到的代码修复生成它们。它将相关的课程分为几类,以便您可以一起复习。与您预先提供的参考不同,当您在不同的代码库中运行转换时,经验会随着时间的推移而累积,系统会自动应用这些经验来改进 future 的运行。您可以通过交互方式复习和管理课程。atx custom def learnings

生成和验证命令

生成或验证命令是一个可选参数,用于指定在转换过程中如何验证代码。为了确保代码的完整性,此命令在转换过程中的不同时刻执行。

提供一个命令来验证结果并在验证失败时返回问题,对于通过持续学习提高转换质量非常重要。如果不需要构建或验证,请在输入中省略。

有关示例和详细指导,请参阅 “工作流程” 部分中的生成和验证命令。

持续学习

持续学习是一种自动捕获每次转换执行中的反馈并随着时间的推移提高转换质量的系统。系统通过以下方式收集信息:

  • 明确的反馈-在交互模式下提供的评论和代码修复

  • 隐式观察-代理在转换和调试代码时遇到的问题

持续学习系统处理这些信息以创建经验教训,将其添加到转型定义中,从而改进 future 的转型。转换完成后,系统会自动运行学习过程,无需您额外输入。

重要

课程是针对变革的,不会在不同的转型或不同的客户账户之间共享。

管理课程

系统会自动生成课程,但您可以控制将哪些课程应用于 future 的运行。该atx custom def learnings命令会打开一个交互式终端会话,用于查看和整理转换所积累的经验教训。

在此会话中,您可以:

  • 浏览按类别分组的课程,查看每个类别包含多少活跃课程。

  • 打开一节课以阅读其全部细节,包括课程正文、其影响以及之前有多少次跑步参考了它。

  • 将课程存档以防止系统将其应用到 future 的运行中,如果需要,可以稍后将其恢复。

  • 永久删除已不再有用的已存档课程。

如需分步指导,请参阅 持续学习

Client-Side 技能

Client-side 技能是在转换执行期间扩展代理的附加能力。与定义要执行什么转换的转换定义不同,客户端技能提供了辅助工具、脚本和指令,代理可以在任何转换过程中与其内置功能一起使用这些工具、脚本和指令。

Client-side 技能是从项目级和用户级目录中发现的。当技能强制执行特定于存储库的标准时,将技能放在项目级别,当这些标准适用于您的所有项目时,则将其置于用户级别。 Project-level 只有在提供了代码存储库路径时,技能才可用。有关详细的配置和用法,请参阅Client-Side 技能

自定义转换命令简介

以下是一些可用于自定义转换的命令。命令的完整列表位于AWS 转换自定义转换命令参考中。

  • atx custom

    • 执行自定义转换交互式体验,允许创建、发现、执行和完善转换。

    • 这是的默认命令atx

    • --trust-all-tools(-t) 是可选的,隐式允许代理请求的所有工具请求。请谨慎使用,尤其是在生产环境中。您可以使用信任设置文件为特定工具和命令配置工具信任

  • atx custom --help | atx custom -h

    • 显示帮助菜单。

    • 例如,每个命令还包括一个帮助菜单atx custom def exec --help

  • atx --version | atx -v

    • 显示版本。

    • 版本号随每个版本而变化。

  • atx custom def list

    • 打印转换注册表中可用的转换列表。

  • atx custom def exec

    • 执行转换

  • atx custom def learnings

    • 打开交互式会话以查看和管理转型从之前的运行中吸取的经验教训

  • atx mcp

    • 用于管理 MCP 服务器配置