View a markdown version of this page

AWS 转变持续现代化 - AWS 转换

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

AWS 转变持续现代化

什么是 AWS 实现持续现代化转型?

AWS Transform 持续现代化为您的源代码存储库提供分析和补救。您可以连接 GitHub 组织、 GitLab 群组、Bitbucket 工作空间和本地存储库,然后运行自动分析以识别整个代码库中的技术债务、安全漏洞、现代化机会和代理准备情况。

所有分析和补救都 AWS 账户 使用您的证书在您中运行。您的源代码由您控制。

注意

我们建议从 Kiro Power 或代理插件开始。代理技能可以协调持续现代化的设置、入职和持续使用,包括基础设施配置、源配置、分析执行、调查结果分类和补救。有关安装说明,请参阅开发人员工具

关键功能

AWS Transform 持续现代化提供以下功能:

  • 技术债务分析 — 扫描存储库中是否存在过时的依赖关系、安全漏洞、代码质量问题和现代化机会。对软件包清单进行快速元数据扫描或全面的代码级分析。使用针对您的环境量身定制的转换定义来定义自定义分析标准。

  • 自主修复-大规模生成经过验证的拉取请求。每个发现都可以使用其关联的转换定义进行自动修正。修复会创建分支并在 GitHub GitLab、和 Bitbucket 上 PRs/MRs 自动打开。

  • 报告-生成 HTML 报告,按严重性、存储库和分析类型显示调查结果。随着时间的推移,跟踪修复进度并找到解决方案。

  • 持续监控 — 使用 Amazon EventBridge 计划程序安排定期分析。配置每日、每周或自定义 cron 时间表,持续监控您的投资组合中是否有新发行。

分析类型

AWS Transform 持续现代化支持以下分析类型,以满足您的现代化需求。

Type 说明
rapid-techdebt-analysis 对软件包清单(pom.xml、、requirements.txt)进行仅限元数据的快速扫描package.json,以识别过时的版本和过时的依赖关系。不分析源代码。
tech-debt-comprehensive 使用 AWS 转换代理进行深入的代码级技术债务分析。检查源代码以确定债务模式、代码质量问题、架构问题和改进机会。
security 使用安全代理进行安全漏洞和 CVE 检测。 AWS 扫描源代码和依赖关系,以查找已知漏洞、不安全的编码模式和可利用的漏洞。需要一次性基础架构设置。
agentic-readiness AI 和代理集成准备情况评估。在五个类别中评分 56 个标准:基础设施和平台、应用程序架构、数据基础以及运营与可观测性。 Identity/Security/Governance
modernization-readiness 云现代化机会评估。评估基础架构、应用程序、数据、安全和运营方面的准备情况。确定容器化、无服务器迁移和平台升级的候选对象。
custom 将任何变换定义 (TD) 作为分析运行。使用此类型来定义自己的分析标准或运行内置类型未涵盖的 AWS 托管变换。

了解关键概念

来源

消息来源告诉持续现代化您的存储库在哪里。支持的源类型:

  • GitHub— 拥有个人访问令牌的 Organizations(经典)

  • GitLab— 群组或用户,包括自托管实例

  • Bitbucket — 工作空间(云端)或项目(数据中心)

  • 本地-包含 git 存储库的父目录

Repositories

存储库是通过扫描源发现的。发现后,您可以按来源、标签或其他标准进行筛选;为组织应用标签(团队、优先级、迁移浪潮);并针对特定的存储库进行分析或修复。

分析

分析是使用特定分析类型对一个或多个存储库进行扫描。每次分析都会生成发现结果,以识别代码中的问题。您可以按需运行分析,也可以安排分析自动运行。分析类型包括快速技术债务分析、技术债务综合分析、安全性、代理就绪性、现代化准备情况和自定义。每项分析都会跟踪其状态(待处理、正在运行、已完成、已取消或失败)及其扫描的存储库。

结果

结果是分析的结果。每项发现都包括严重性(高、中或低)、状态(打开、已解除或已过时)以及可以对其进行补救的修复转换(如果可自动修复)。新的发现一开始是开放的。用户可以驳回调查结果并说明理由。 Re-analysis 自动将已解决的结果标记为已过时。

补救措施

修正应用转换定义来修复发现。三种模式:基于结果(每个查找结果都使用自己的修复变换)、TD 覆盖(覆盖指定查找结果的转换定义)和直接 TD(对没有发现结果的存储库运行转换)。输出取决于源提供商(GitHub PR、 GitLab MR、Bitbucket PR 或本地分支机构)。

转换定义

转换定义包含执行特定代码转换所需的指令和知识。持续现代化使用转换定义进行自定义分析 (--type custom --transformation-name name) 和修复 (--transformation-name name)。使用列出可用的转换定义atx custom def list

操作方法 AWS 转变持续的现代化工作

AWS Transform 持续现代化通常用于需要持续分析和修复多个代码库的大型项目。团队通常遵循以下工作流程:

  1. Connect Sources — 添加 GitHub 组织、 GitLab群组、Bitbucket 工作空间或本地目录作为源。提供具有适当范围的身份验证令牌。

  2. 发现存储库-运行发现扫描以枚举源中的所有存储库。使用标签按团队、优先级或迁移浪潮来组织仓库。

  3. 运行分析-对您的投资组合执行分析。选择快速扫描以获得快速结果,或选择全面分析以获得详细结果。安全分析需要一次性基础架构设置。

  4. 分类结果-按严重性、存储库或分析类型查看结果。驳回带有记录原因的误报。 Re-run分析以将已解决的问题标记为已过时。

  5. 修复-创建修正以修复发现的问题。持续现代化会自动创建分支并打开包含修复的 pull/merge 请求。跟踪补救状态和重试失败。

  6. 设置持续分析-使用 Amazon EventBridge 计划程序安排重复分析。配置分析节奏(每日、每周或自定义 cron),持续监控您的投资组合中是否有新问题。与自动修复相结合,随着时间的推移保持代码的运行状况。

计算选项

持续现代化支持三种计算选项,用于运行分析和修复。Kiro Power 和代理插件中的代理技能可帮助您为每个选项设置基础架构。

注意

无论使用哪种计算选项,所有分析和补救都是在您 AWS 账户 使用凭据时进行的。您的源代码仍处于您的控制之下。

本地(默认)

默认情况下,分析在您的本地计算机上运行。此选项不需要额外的基础架构。服务器在本地运行,并使用本地计算资源执行分析。适合试用该工具、小型存储库或个人使用。

Amazon EC2

在您的永久性 Amazon EC2 实例上运行分析 AWS 账户。此选项可将计算从本地计算机上卸载,支持更大规模的分析,并允许定期进行分析。实例在两次提交之间保持运行。

代理技能提供的堆 AWS CloudFormation 栈包括:

  • 带有 Docker 和持续现代化容器的亚马逊 EC2 实例(亚马逊 Linux 2023)

  • 一个具有 Trans AWS form、Amazon S3、 AWS KMS、Secrets Manager 和安全代理权限的 IAM 角色

  • AmazonSSMManagedInstanceCore用于通过 SSM 进行外壳访问(不需要 SSH 密钥对或入站端口)

  • 没有入站规则的安全组

您的 IAM 用户或角色需要获得 Amazon EC2 生命周期管理、 AWS CloudFormation 堆栈操作、IAM 角色创建、Amazon S3 存储桶操作、Secrets Manager 机密管理和 SSM 命令的权限。

要设置 EC2 执行,请安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“设置 EC2 实例以进行持续的现代化分析”。代理配置基础架构,验证容器是否运行正常,并通过 SSM 提交您的分析,无需使用 SSH。

AWS Batch (Fargate)

使用 Fargate 在 Bat AWS ch 上以孤立作业的形式运行分析,实现无服务器计算。每项分析都在自己的容器中运行,无需管理永久基础架构。适用于对多个来源或分析类型进行并行分析。

此选项重复使用 AWS 转换 CDK 基础架构堆栈。代理技能部署所需的基础架构,包括:

  • AWS Batch 作业队列和计算环境

  • 使用持续现代化容器镜像定义 Job

  • 用于执行批处理作业的 IAM 角色

  • 用于提交任务的 Lambda 函数

要设置批量执行,请安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“在 Fargate 上运行我的分析或 “设置批处理执行以实现持续现代化”。代理部署 CDK 堆栈,将您的源凭据存储在 Secrets Manager 中,并将分析作业提交到 Batch AWS 。

安全代理设置

security分析类型使用 AWS 安全代理服务进行漏洞和 CVE 检测。与其他分析类型不同,它需要在您的中进行一次性基础架构设置 AWS 账户。

setup 命令提供的 AWS CloudFormation 堆栈包括:

  • 用于上传源代码的 Amazon S3 存储桶

  • 由担任的 IAM 角色 securityagent.amazonaws.com

  • 安全代理角色的托管策略

您的 IAM 用户或角色必须具有以下额外权限才能运行安装程序:

  • cloudformation:CreateStack, cloudformation:UpdateStack, cloudformation:DescribeStacks

  • iam:CreateRole, iam:PutRolePolicy, iam:AttachRolePolicy, iam:CreatePolicy

  • s3:CreateBucket, s3:PutBucketEncryption, s3:PutBucketPublicAccessBlock

使用以下命令管理安全代理基础架构:

# Provision the security agent infrastructure atx ct setup security-agent # Check the status atx ct setup security-agent --status # Delete the infrastructure atx ct setup security-agent --delete

设置完成后,您可以像其他分析类型一样运行安全分析。