

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS 轉換持續現代化
<a name="continuous-modernization"></a>

## 什麼是 AWS 轉型持續現代化？
<a name="ct-what-is"></a>

AWS 轉換持續現代化可為您的原始程式碼儲存庫提供分析和修復。您可以連接 GitHub 組織、GitLab 群組、Bitbucket 工作區和本機儲存庫，然後執行自動化分析，以在整個程式碼庫中識別技術債務、安全漏洞、現代化機會和客服人員就緒度。

所有分析和修復 AWS 帳戶 都會使用 登入資料在 中執行。您的原始程式碼仍由您控制。

**注意**  
我們建議您從 Kiro Power 或代理程式外掛程式開始。客服人員技能會協調持續現代化的設定、加入和持續使用，包括基礎設施佈建、來源組態、分析執行、問題清單分類和修復。如需安裝指示，請參閱[開發人員工具](ct-developer-tools.md)。

## 關鍵功能
<a name="ct-key-capabilities"></a>

AWS 轉型持續現代化提供下列功能：
+ **技術債務分析** — 掃描儲存庫是否有過時的相依性、安全漏洞、程式碼品質問題和現代化機會。跨套件資訊清單或全面的程式碼層級分析執行快速中繼資料掃描。使用為您的環境量身打造的轉換定義來定義自訂分析條件。
+ **自主修復** — 大規模產生經過驗證的提取請求。每個調查結果都可以使用其相關聯的轉換定義自動修復。修復會在 GitHub、GitLab 和 Bitbucket 中自動建立分支並開啟 PRs/MRs。
+ **報告** — 產生 HTML 報告，依嚴重性、儲存庫和分析類型顯示問題清單。追蹤一段時間內的修復進度和問題清單解決方案。
+ **持續監控** — 使用 Amazon EventBridge 排程器排程週期性分析。設定每日、每週或自訂 Cron 排程，以持續監控您的產品組合是否有新問題。

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

AWS 轉換持續現代化支援下列分析類型，以滿足您的現代化需求。


| Type | 說明 | 
| --- | --- | 
| rapid-techdebt-analysis | 快速掃描僅中繼資料的套件資訊清單 (pom.xml、package.json、requirements.txt)，以識別過時版本和過時的相依性。不會分析原始程式碼。 | 
| tech-debt-comprehensive | 使用 AWS Transform 代理程式進行深度程式碼層級的技術負債分析。檢查原始程式碼以識別債務模式、程式碼品質問題、架構問題和改善機會。 | 
| security | 使用 Security Agent AWS 的安全漏洞和 CVE 偵測。掃描原始程式碼和相依性是否有已知漏洞、不安全的編碼模式，以及可利用的弱點。需要一次性基礎設施設定。 | 
| 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** — 具有個人存取字符的組織 （傳統）
+ **GitLab** — 群組或使用者，包括自我託管執行個體
+ **Bitbucket** — Workspaces （雲端） 或專案 （資料中心）
+ **Local** — 包含 git 儲存庫的父目錄

### 儲存庫
<a name="ct-concept-repositories"></a>

掃描來源會探索儲存庫。探索之後，您可以依來源、標籤或其他條件進行篩選；套用組織標籤 （團隊、優先順序、遷移波），並將特定儲存庫設為目標以進行分析或修復。

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

分析是使用特定分析類型的一或多個儲存庫的掃描。每個分析都會產生問題清單，以識別程式碼中的問題。您可以隨需執行分析，或將分析排程為自動執行。分析類型包括rapid-techdebt-analysis、tech-debt-comprehensive、 安全性、代理程式就緒性、現代化就緒性和自訂。每個分析都會追蹤其狀態 （待定、執行中、完成、取消或失敗） 及其掃描的儲存庫。

### 調查結果
<a name="ct-concept-findings"></a>

調查結果是分析的結果。每個調查結果都包含嚴重性 （高、中或低）、狀態 （開啟、關閉或淘汰），以及可以修復它的修正轉換 （如果可自動修正）。新問題清單開始為開啟。使用者可以根據原因關閉問題清單。重新分析會將已解決的問題清單自動標記為已淘汰。

### 修復
<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 轉型持續現代化通常用於需要持續分析和修復多個程式碼庫的大規模專案。團隊通常會遵循此工作流程：

1. **Connect Sources** — 新增 GitHub 組織、GitLab 群組、Bitbucket 工作區或本機目錄做為來源。提供具有適當範圍的身分驗證字符。

1. **探索儲存庫** — 執行探索掃描以列舉來源中的所有儲存庫。使用標籤依團隊、優先順序或遷移波來組織儲存庫。

1. **執行分析** — 跨產品組合執行分析。選擇快速掃描以取得快速結果，或選擇完整分析以取得詳細的調查結果。安全分析需要一次性基礎設施設定。

1. **分類調查結果** — 依嚴重性、儲存庫或分析類型檢閱調查結果。以文件記錄的原因關閉誤報。重新執行分析，將已解決的問題標記為已淘汰。

1. **修復** — 建立修復以修正問題清單。持續現代化會自動建立分支，並使用修正開啟提取/合併請求。追蹤修復狀態和重試失敗。

1. **設定持續分析** — 使用 Amazon EventBridge 排程器排程週期性分析。設定分析節奏 （每日、每週或自訂 Cron)，以持續監控您的產品組合是否有新問題。結合自動修復，以維持程式碼運作狀態。

### 運算選項
<a name="ct-compute-options"></a>

持續現代化支援執行分析和修復的三個運算選項。Kiro Power 中的代理程式技能和代理程式外掛程式可協助您為每個選項設定基礎設施。

**注意**  
無論運算選項為何，所有分析和修復都會使用登入資料發生在 AWS 帳戶 中。您的原始程式碼仍由您控制。

#### Local （預設）
<a name="ct-compute-local"></a>

根據預設， 分析會在您的本機電腦上執行。此選項不需要額外的基礎設施。伺服器會在本機執行，並使用本機運算資源執行分析。適用於試用工具、小型儲存庫或個別使用。

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

在 中的持久性 Amazon EC2 執行個體上執行分析 AWS 帳戶。此選項會從本機機器卸載運算、支援較大的分析，並啟用週期性排程分析。執行個體會在提交之間保持執行狀態。

客服人員技能會佈建 AWS CloudFormation 堆疊，其中包含：
+ 具有 Docker 和持續現代化容器的 Amazon EC2 執行個體 (Amazon Linux 2023)
+ 具有 AWS Transform、Amazon S3、 AWS KMS、Secrets Manager 和安全代理程式許可的 IAM 角色
+ `AmazonSSMManagedInstanceCore` 透過 SSM 進行 Shell 存取 （不需要 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>

在 AWS Batch with Fargate 上以隔離任務執行分析，以進行無伺服器運算。每個分析都在自己的容器中執行，而不管理持久性基礎設施。適用於多個來源或分析類型的平行分析。

此選項會重複使用 AWS 轉換 CDK 基礎設施堆疊。代理程式技能會部署所需的基礎設施，包括：
+ AWS 批次任務佇列和運算環境
+ 具有持續現代化容器映像的任務定義
+ 批次任務執行的 IAM 角色
+ 用於提交任務的 Lambda 函數

若要設定批次執行，請安裝 Kiro Power 或代理程式外掛程式 （請參閱[開發人員工具](ct-developer-tools.md))，然後詢問代理程式：*「在 Fargate 上執行我的分析」*或*「設定批次執行以進行持續現代化」*。代理程式會部署 CDK 堆疊、將來源登入資料存放在 Secrets Manager 中，並將分析任務提交至 AWS Batch。

### 安全代理程式設定
<a name="ct-security-agent-setup"></a>

`security` 分析類型使用 AWS Security Agent 服務進行漏洞和 CVE 偵測。與其他分析類型不同，它需要在 中設定一次性基礎設施 AWS 帳戶。

安裝命令會佈建 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
```

設定完成後，您可以像其他分析類型一樣執行安全分析。