本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 实现持续现代化转型
什么是 AWS 实现持续现代化转型?
AWS Transform 持续现代化为您的源代码存储库提供分析和补救措施。您可以连接 GitHub 组织、 GitLab 群组、Bitbucket 工作空间和本地存储库,然后运行自动分析,以确定整个代码库中的技术债务、安全漏洞、现代化机会和代理准备情况。
所有分析和补救都 AWS 账户 使用您的凭证在您中运行。您的源代码仍在您的控制之下。
注意
我们建议从 Kiro Power 或代理插件开始。代理技能负责协调持续现代化的设置、入职和持续使用,包括基础架构配置、源配置、分析执行、调查结果分类和补救。有关安装说明,请参阅开发人员工具。
关键功能
AWS Transform 持续现代化提供以下功能:
-
技术债务分析 — 扫描存储库中是否存在过时的依赖关系、安全漏洞、代码质量问题和现代化机会。对软件包清单进行快速元数据扫描或进行全面的代码级分析。使用为您的环境量身定制的转换定义定义自定义分析标准。
-
自主修复 — 大规模生成经过验证的拉取请求。可以使用其关联的转换定义自动修复每个发现。补救措施会创建分支并 PRs/MRs 自动在 GitHub GitLab、和 Bitbucket 上打开。
-
报告 -生成 HTML 报告,按严重性、存储库和分析类型显示调查结果。跟踪修复进度并随时间推移寻找解决方案。
-
持续监控 — 安排定期分析,持续监控您的投资组合中是否存在新问题。在没有设置的 AWS Transform-managed 基础设施上运行它们,或者使用亚马逊 EventBridge 调度器在预置的 Amazon EC2 或批处理堆栈上运行它们。配置每日、每周或每月的节奏。
分析类型
AWS Transform 持续现代化支持以下分析类型,以满足您的现代化需求。
| Type | 说明 |
|---|---|
rapid-techdebt-analysis |
对包清单(pom.xml、、requirements.txt)进行仅限元数据的快速扫描package.json,以识别过时的版本和过时的依赖关系。不分析源代码。 |
tech-debt-comprehensive |
使用 T AWS ransform 代理进行深入的代码级技术债务分析。检查源代码以确定债务模式、代码质量问题、架构问题和改进机会。 |
security |
使用安全代理进行安全漏洞和 CVE 检测。 AWS 扫描源代码和依赖项以查找已知漏洞、不安全的编码模式和可利用的漏洞。需要一次性基础架构设置。 |
agentic-readiness |
人工智能和代理集成准备情况评估。对五个类别的 56 个标准进行评分:基础设施和平台、应用程序架构、数据基础以及运营与可观测性。 Identity/Security/Governance |
modernization-readiness |
云现代化机会评估。评估基础架构、应用程序、数据、安全和运营方面的准备情况。确定容器化、无服务器迁移和平台升级的候选对象。 |
custom |
将任何变换定义 (TD) 作为分析运行。使用此类型定义自己的分析标准或运行内置类型未涵盖的 AWS 托管变换。 |
了解关键概念
来源
消息来源告诉持续现代化您的存储库在哪里。支持的源类型:
GitHub— 拥有个人访问令牌的组织(经典)
GitLab— 群组或用户,包括自托管实例
Bitbucket — 工作空间(云)或项目(数据中心)
本地 — 包含 git 存储库的父目录
Repositories
存储库由扫描源发现。发现后,您可以按来源、标签或其他条件进行筛选;为组织应用标签(团队、优先级、迁移浪潮);将特定的存储库作为目标进行分析或修复。
分析
分析是使用特定分析类型对一个或多个存储库进行扫描。每项分析都会产生发现结果,以识别代码中的问题。您可以按需运行分析,也可以安排分析自动运行。分析类型包括快速技术债务分析、技术债务综合分析、安全、机构准备情况、现代化准备情况和定制。每项分析都会跟踪其状态(待处理、正在运行、完成、已取消或失败)及其扫描的存储库。
结果
调查结果是分析的结果。每项发现都包括严重性(高、中或低)、状态(打开、已取消或已过时)以及可以对其进行补救的修复转换(如果可自动修复)。新发现一开始是开放的。用户可以有理由驳回调查结果。 Re-analysis 自动将已解决的发现标记为过时。
补救措施
补救措施应用转换定义来修复结果。三种模式:基于查找结果(每个查找结果使用自己的修复转换)、TD 覆盖(覆盖指定发现的转换定义)和直接 TD(针对没有发现的存储库运行转换)。输出取决于来源提供商(GitHub PR、 GitLab MR、Bitbucket PR 或本地分支机构)。
变换定义
转换定义包含执行特定代码转换所需的指令和知识。持续现代化使用转换定义进行自定义分析 (--type custom --transformation-name ) 和修复 (name--transformation-name )。使用列出可用的转换定义nameatx custom def list。
操作方法 AWS 改造持续现代化工作
AWS Transform 持续现代化通常用于需要持续分析和修复多个代码库的大型项目。团队通常遵循以下工作流程:
-
连接来源 — 添加 GitHub 组织、 GitLab群组、Bitbucket 工作空间或本地目录作为来源。提供具有适当范围的身份验证令牌。
-
发现存储库 -运行发现扫描以枚举源中的所有存储库。使用标签按团队、优先级或迁移浪潮来组织仓库。
-
运行分析 — 对您的投资组合进行分析。选择快速扫描以快速获得结果,或选择全面分析以获得详细结果。安全分析需要一次性基础架构设置。
-
对调查结果进行分类 -按严重性、存储库或分析类型查看调查结果。以有据可查的理由驳回误报。 Re-run分析将已解决的问题标记为过时。
-
修复 -创建补救措施以修复调查结果。持续现代化会自动创建分支并使用修复程序打开 pull/merge 请求。跟踪补救状态和重试失败次数。
-
设置持续分析 — 使用使用 Amazon EventBridge Scheduler 的
atx ct schedule命令安排定期分析。配置分析节奏(每天、每周或每月),持续监控您的投资组合中是否存在新问题。与自动修复相结合,可随着时间的推移保持代码的运行状况。
计算选项
持续现代化支持多种计算选项,用于运行分析和修复。分析可以在本地、在您的 AWS 账户 (Amazon EC2 或 B AWS atch)中预置和管理的 AWS Transform-managed 基础设施上运行,也可以在无需设置的基础设施上运行。Kiro Power 和代理插件中的代理技能可帮助您设置每个选项。
注意
无论采用哪种计算选项,您都可以 AWS 账户 使用凭证创建和拥有自己的所有资源,并且源代码仍在您的控制之下。运行分析和补救的基础架构要么由客户管理(您在账户中预置的堆栈) AWS Transform-managed,要么由客户管理,无需预置 AWS 任何资源。
本地(默认)
默认情况下,分析在本地计算机上运行。此选项不需要额外的基础架构。服务器在本地运行并使用本地计算资源执行分析。非常适合试用该工具、小型存储库或个人使用。
AWS Transform-managed (无需提供基础设施)
无需预置或管理堆栈即可对 AWS Transform-managed 基础架构进行分析。使用--mode aws-managed,您可以将分析提交给 T AWS ransform,Transform 将在 AWS运营的基础设施上运行分析。没有 Amazon EC2 实例,没有 AWS 批量堆栈,也没有 VPC 或子网可供配置。没有什么可以预置或拆除的——提交就是跑步了。当你不想管理任何基础设施时,这是远程运行的最快方式。
此选项要求源代码托管在支持的 SCM 提供商(GitHubGitLab、或Bitbucket)上。 AWS Transform-managed 基础架构不支持本地来源,因为它无法访问您计算机上的存储库。您可以使用该--region选项选择工作负载运行的 AWS 区域。
AWS Transform-managed 基础设施仅运行分析。要进行补救或运行自定义转换定义 (--type custom),请使用 AWS Batch 或 Amazon EC2。
要在 AWS Transform-managed 基础架构上运行,请使用atx ct remote analysis --mode aws-managed命令(参见远程执行),或者安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“在 AWS 没有基础架构的情况下运行我的分析” 。对 AWS Transform-managed 基础架构的反复分析需要执行角色(参见安排定期分析)。
您还可以从 T AWS ransform Web 应用程序的持续现代化页面开始对 AWS Transform-managed 基础设施进行分析(参见AWS 改造 Web 应用程序)。
AWS 批处理(Fargate)(推荐)
对于大多数投资组合,你可以使用Fargate进行 AWS 批量分析,这是推荐的计算选项。每项分析都作为独立作业在自己的容器中运行,使用无服务器计算,因此无需管理持久的基础架构,并且任务可以横向扩展,以便对多个来源或分析类型进行并行分析。
Provisioning 可部署所需的基础架构,包括:
AWS 批处理任务队列和计算环境
使用持续现代化容器镜像定义任务
用于执行批处理任务的 IAM 角色
用于提交任务的 Lambda 函数
配置基础架构需要管理员权限。要使用最低权限在已配置的批处理堆栈上运行分析和修复,请附加托管策略。 AWS
AWSTransformInfrastructureExecutorAccessBatch
要设置批量执行,请直接使用atx ct remote命令(参见远程执行),或者安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“在 Fargate 上运行我的分析” 或 “设置批处理执行以实现持续现代化”。代理部署堆栈,将您的源凭据存储在 Secrets Manager 中,并将分析任务提交给 AWS Batch。
Amazon EC2
在您的永久性 Amazon EC2 实例上运行分析 AWS 账户。此选项可将计算从本地计算机上卸下,支持更大规模的分析,并支持定期分析。该实例在两次提交之间保持运行状态。
配置部署的堆 AWS CloudFormation 栈包括:
带有 Docker 和持续现代化容器的亚马逊 EC2 实例(亚马逊 Linux 2023)
具有 T AWS ransform、Amazon S3、 AWS KMS、密钥管理器和安全代理权限的 IAM 角色
AmazonSSMManagedInstanceCore通过 SSM 进行 shell 访问(不需要 SSH 密钥对或入站端口)没有入站规则的安全组
配置基础设施需要管理员权限才能进行 Amazon EC2 生命周期管理、 AWS CloudFormation 堆栈操作、IAM 角色创建、Amazon S3 存储桶操作、密钥管理器密钥管理和 SSM 命令。要使用最低权限对已配置的 Amazon EC2 堆栈进行分析和修复,请附加托管策略。 AWS AWSTransformInfrastructureExecutorAccessEC2
要设置 Amazon EC2 执行,请直接使用atx ct remote命令(参见远程执行),或者安装 Kiro Power 或代理插件(参见开发人员工具)并询问代理:“设置 EC2 实例以进行持续的现代化分析” 。该代理预置基础架构,验证容器运行状况良好,并通过 SSM 提交您的分析,不需要 SSH。
安全代理设置
security分析类型使用 AWS 安全客户端服务进行漏洞和 CVE 检测。与其他分析类型不同,它需要在您的中进行一次性基础架构设置 AWS 账户。
注意
该security分析类型不适用于以下区域:加拿大(中部)(ca-central-1)、欧洲(伦敦)(eu-west-2)和亚太地区(首尔)(ap-northeast-2)。其他分析类型不受影响。
安装命令提供的堆 AWS CloudFormation 栈包括:
用于上传源代码的 Amazon S3 存储桶
IAM 角色由以下人员担任
securityagent.amazonaws.com安全代理角色的管理策略
要在设置后以最低权限运行安全分析,请将 AWS 托管策略附加AWSTransformSecurityAgentExecutorAccess到您的 IAM 用户或角色。
您的 IAM 用户或角色必须具有以下额外权限才能运行设置:
cloudformation:CreateStack,cloudformation:UpdateStack,cloudformation:DescribeStacksiam:CreateRole,iam:PutRolePolicy,iam:AttachRolePolicy,iam:CreatePolicys3: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
安装完成后,您可以像运行其他分析类型一样运行安全分析。