

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 對專案和藍圖進行故障診斷
<a name="projects-troubleshooting"></a>

本節可協助您針對在 Amazon CodeCatalyst 中使用專案和藍圖時可能遇到的一些常見問題進行疑難排解。

# Java API 搭配 apache-maven-3.8.6 的 AWS Fargate 藍圖缺少相依性
<a name="projects-troubleshooting-error-maven"></a>

**問題：**對於從具有 AWS Fargate 藍圖的 Java API 建立的專案，工作流程會失敗，並出現缺少`apache-maven-3.8.6`相依性的錯誤。工作流程失敗，輸出類似下列範例：

```
Step 8/25 : RUN wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz -P /tmp
---> Running in 1851ce6f4d1b
[91m--2023-03-10 01:24:55--  https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
[0m[91mResolving dlcdn.apache.org (dlcdn.apache.org)... 
[0m[91m151.101.2.132, 2a04:4e42::644
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... 
[0m[91mconnected.
[0m[91mHTTP request sent, awaiting response... [0m[91m404 Not Found
2023-03-10 01:24:55 ERROR 404: Not Found.
[0mThe command '/bin/sh -c wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz -P /tmp' returned a non-zero code: 8
[Container] 2023/03/10 01:24:55 Command failed with exit status 8
```

**解決方案：**使用下列步驟更新藍圖 Dockerfile。

1. 在搜尋列中，輸入 在具有藍圖的 AWS Fargate Java API 建立的專案中`apache-maven-3.8.6`尋找 dockerfile。

1.  更新 Dockerfile (`/static-assets/app/Dockerfile`) 以`maven:3.9.0-amazoncorretto-11`用作基礎映像，並移除`apache-maven-3.8.6`套件的相依性。

1. （建議） 我們也建議將 Maven 堆積大小更新為 6 GB。

以下是範例 Dockerfile。

```
FROM maven:3.9.0-amazoncorretto-11 AS builder

COPY ./pom.xml ./pom.xml
COPY src ./src/

ENV MAVEN_OPTS='-Xmx6g'

RUN mvn -Dmaven.test.skip=true clean package

FROM amazoncorretto:11-alpine

COPY —from=builder target/CustomerService-0.0.1.jar CustomerService-0.0.1.jar
EXPOSE 80
CMD ["java","-jar","-Dspring.profiles.active=prod","/CustomerService-0.0.1.jar", "—server.port=80"]
```

# 現代三層 Web 應用程式藍圖工作流程 **OnPullRequest** 失敗，並出現 Amazon CodeGuru 的許可錯誤
<a name="projects-troubleshooting-onpullrequest"></a>

**問題：**當我嘗試執行專案的工作流程時，工作流程無法以下列訊息執行：

```
Failed at codeguru_codereview: The action failed during runtime. View the action's logs for more details.
```

``

**解決方案：**此動作失敗的一個可能原因是 IAM 角色政策中缺少許可，其中連線的 CodeCatalyst 所使用的服務角色版本 AWS 帳戶 缺少成功執行 **codeguru\$1codereview** 動作所需的許可。若要修正此問題，服務角色必須以必要的許可更新，或者您必須將工作流程所用的服務角色變更為具有 Amazon CodeGuru 和 Amazon CodeGuru Reviewer 必要許可的服務角色。使用下列步驟，尋找您的角色並更新角色政策許可，以允許工作流程成功執行。

**注意**  
這些步驟適用於 CodeCatalyst 中的下列工作流程：  
為在 CodeCatalyst 中使用現代三層 Web 應用程式藍圖建立的專案提供的 **OnPullRequest** 工作流程。
使用存取 Amazon CodeGuru 或 Amazon CodeGuru Reviewer 的動作，將工作流程新增至 CodeCatalyst 中的專案。

每個專案都包含具有動作的工作流程，這些動作使用連線至 CodeCatalyst 中 AWS 帳戶 專案的 所提供的角色和環境。具有 動作及其指定政策的工作流程會存放在 /.codecatalyst/workflows 目錄中的來源儲存庫中。除非您要將新的角色 ID 新增至現有的工作流程，否則不需要修改工作流程 YAML。如需 YAML 範本元素和格式的相關資訊，請參閱 [工作流程 YAML 定義](workflow-reference.md)。

這些是編輯角色政策並驗證工作流程 YAML 時要遵循的高階步驟。

**在工作流程 YAML 中參考您的角色名稱並更新政策**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至 CodeCatalyst 空間。導覽至您的專案。

1. 選擇 **CI/CD**，然後選擇**工作流程**。

1. 選擇名為 **OnPullRequest** 的工作流程。選擇 **Definition (定義)** 索引標籤。

1. 在工作流程 YAML 中，在 **codeguru\$1codereview** 動作下的 `Role:` 欄位中，記下角色名稱。這是您將在 IAM 中修改的政策角色。下列範例顯示角色名稱。  
![\[在工作流程 YAML 中檢視 IAM 角色名稱\]](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/projects/ts-workflow-role.png)

1. 執行以下任意一項：
   + （建議） 使用 Amazon CodeGuru 和 Amazon CodeGuru Reviewer 所需的許可更新連線至專案的服務角色。角色會有附加`CodeCatalystWorkflowDevelopmentRole-spaceName`唯一識別符的名稱。如需角色和角色政策的詳細資訊，請參閱 [了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服務角色](ipa-iam-roles.md#ipa-iam-roles-service-role)。繼續進行後續步驟，以更新 IAM 中的政策。
**注意**  
您必須擁有 AWS 帳戶 具有 角色和政策的 AWS 管理員存取權。
   + 將工作流程所用的服務角色變更為具有 Amazon CodeGuru 和 Amazon CodeGuru Reviewer 必要許可的服務角色，或建立具有必要許可的新角色。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   在 IAM 主控台中，從步驟 5 尋找角色，例如 `CodeCatalystPreviewDevelopmentRole`。

1. 在步驟 5 的角色中，變更許可政策以包含 `codeguru-reviewer:*`和 `codeguru:*`許可。新增這些許可後，許可政策看起來應該類似以下內容：

1. 進行政策更正後，請返回 CodeCatalyst 並再次啟動工作流程執行。

## 仍在想解決您的問題嗎？
<a name="projects-last-help"></a>

您可以前往 [Amazon CodeCatalyst](https://codecatalyst.aws/) 或填寫[支援意見回饋表單](https://support.aws.amazon.com/#/contacts/aws-account-support/)。在**請求資訊**區段的 ** 如何協助您**，包含您是 Amazon CodeCatalyst 客戶。盡可能提供詳細資訊，以便我們最有效地處理您的問題。