

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

# AWS 转变持续现代化
<a name="continuous-modernization"></a>

## 什么是 AWS 实现持续现代化转型？
<a name="ct-what-is"></a>

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

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

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

## 关键功能
<a name="ct-key-capabilities"></a>

AWS Transform 持续现代化提供以下功能：
+ **技术债务分析** — 扫描存储库中是否存在过时的依赖关系、安全漏洞、代码质量问题和现代化机会。对软件包清单进行快速元数据扫描或全面的代码级分析。使用针对您的环境量身定制的转换定义来定义自定义分析标准。
+ **自主修复**-大规模生成经过验证的拉取请求。每个发现都可以使用其关联的转换定义进行自动修正。修复会创建分支并在 GitHub GitLab、和 Bitbucket 上 PRs/MRs 自动打开。
+ **报告**-生成 HTML 报告，按严重性、存储库和分析类型显示调查结果。随着时间的推移，跟踪修复进度并找到解决方案。
+ **持续监控** — 使用 Amazon EventBridge 计划程序安排定期分析。配置每日、每周或自定义 cron 时间表，持续监控您的投资组合中是否有新发行。

## 分析类型
<a name="ct-analysis-types"></a>

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 托管变换。 | 

## 了解关键概念
<a name="ct-key-concepts"></a>

### 来源
<a name="ct-concept-sources"></a>

消息来源告诉持续现代化您的存储库在哪里。支持的源类型：
+ **GitHub**— 拥有个人访问令牌的 Organizations（经典）
+ **GitLab**— 群组或用户，包括自托管实例
+ **Bitbucket** — 工作空间（云端）或项目（数据中心）
+ **本地**-包含 git 存储库的父目录

### Repositories
<a name="ct-concept-repositories"></a>

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

### 分析
<a name="ct-concept-analyses"></a>

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

### 结果
<a name="ct-concept-findings"></a>

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

### 补救措施
<a name="ct-concept-remediations"></a>

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

### 转换定义
<a name="ct-concept-transformation-definitions"></a>

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

## 操作方法 AWS 转变持续的现代化工作
<a name="ct-how-it-works"></a>

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

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

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

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

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

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

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

### 计算选项
<a name="ct-compute-options"></a>

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

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

#### 本地（默认）
<a name="ct-compute-local"></a>

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

#### Amazon EC2
<a name="ct-compute-ec2"></a>

在您的永久性 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 或代理插件（参见[开发人员工具](ct-developer-tools.md)），然后询问代理：*“设置 EC2 实例以进行持续的现代化分析”*。代理配置基础架构，验证容器是否运行正常，并通过 SSM 提交您的分析，无需使用 SSH。

#### AWS Batch (Fargate)
<a name="ct-compute-batch"></a>

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

此选项重复使用 AWS 转换 CDK 基础架构堆栈。代理技能部署所需的基础架构，包括：
+ AWS Batch 作业队列和计算环境
+ 使用持续现代化容器镜像定义 Job
+ 用于执行批处理作业的 IAM 角色
+ 用于提交任务的 Lambda 函数

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

### 安全代理设置
<a name="ct-security-agent-setup"></a>

`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
```

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