

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

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

# 对亚马逊进行故障排除 CodeCatalyst
<a name="troubleshooting"></a>

以下信息可以帮助您解决中的常见问题 CodeCatalyst。您还可以使用 Amazon CodeCatalyst 健康报告来确定是否存在可能影响您的体验的服务问题。

**Topics**
+ [排查一般访问问题](#troubleshooting-general)
+ [排查支持问题](#troubleshoot-support)
+ [Amazon 的部分或全部商品 CodeCatalyst 不可用](#service-unavailable)
+ [我无法在中创建项目 CodeCatalyst](#troubleshoot-create-project)
+ [由于用户名被截断，我无法以新用户身份访问我的 BID 空间，或无法将其添加为新的 SSO 用户](#troubleshoot-username-truncated)
+ [将一个 SSO 用户作为新用户添加到我的联合空间后，创建了重复的用户](#troubleshoot-username-duplicated-SSO)
+ [我想通过以下方式提交反馈 CodeCatalyst](#troubleshoot-create-feedback)
+ [排查源存储库的问题](troubleshooting-source.md)
+ [排查项目和蓝图的问题](projects-troubleshooting.md)
+ [排查开发环境的问题](devenvironments-troubleshooting.md)
+ [排查工作流问题](troubleshooting-workflows.md)
+ [排查事务问题](troubleshooting-issues.md)
+ [疑难解答中搜索的问题 CodeCatalyst](troubleshooting-search.md)
+ [排查扩展问题](troubleshooting-extensions.md)
+ [排查与您的空间关联的账户问题](troubleshooting-connections.md)
+ [排查 Amazon CodeCatalyst 与 AWS SDK 或 AWS CLI 之间的问题](troubleshooting-cli-sdk.md)

## 排查一般访问问题
<a name="troubleshooting-general"></a>

### 我忘记密码了
<a name="id-forgot-password"></a>

**问题：**我忘记了用于 AWS 生成器 ID 和 Amazon 的密码 CodeCatalyst。

**可能的修复方法：**解决此问题的最简单方法是重置密码。

1. 打开 [Amazon CodeCatalyst](https://codecatalyst.aws/) 并输入您的**电子邮件地址**。然后，选择**继续**。

1. 选择**忘记密码？**。

1. 我们将向您发送一封电子邮件，其中包含更改密码的链接。如果您在收件箱中未看到这封电子邮件，请检查垃圾邮件文件夹。

### Amazon 的部分或全部商品 CodeCatalyst 不可用
<a name="service-unavailable"></a>

**问题：**我导航到控制台或点击了 CodeCatalyst 控制台的链接，但我看到一个错误。

**可能的修复方法：**出现这种问题的最常见原因是，您点击了一个链接，进入了一个您没有被邀请加入的项目或空间，或者是服务的总体可用性出现了问题。查看[运行状况报告](health-dashboard.md)，了解服务是否存在任何已知问题。如果不存在问题，请联系邀请您加入项目或空间的人员，并要求再次发出邀请。如果您尚未被邀请加入任何项目或空间，则可以注册并[创建自己的空间和项目](sign-up-create-resources.md)。

### 我无法在中创建项目 CodeCatalyst
<a name="troubleshoot-create-project"></a>

**问题：**我想创建一个项目，但**创建项目**按钮显示为不可用，或者我收到了错误消息。

**可能的修复方法：**出现此问题的最常见原因是您使用不具有 **Space 管理员**角色的 AWS Builder ID 登录控制台。您必须拥有此角色才能在空间中创建项目。

如果您确实拥有此角色，但该按钮显示不可用，则可能是服务出现了暂时性问题。刷新您的浏览器，然后重试。

## 排查支持问题
<a name="troubleshoot-support"></a>

### 我在访问 支持 Amazon 时出现错误 CodeCatalyst
<a name="troubleshoot-support-rolepolicy"></a>

**问题：**当我选择 “f 支持 or Amazon CodeCatalyst ” 选项时，我收到以下错误消息：

**`Unable to assume role`**

`To access support cases, you must add the role AWSRoleForCodeCatalystSupport to the AWS 账户 that is the billing account for the space.`

**可能的修复方法：**将所需角色添加到作为空间计费账户的 AWS 账户 。指定为空间计费账户的账户使用 `AWSRoleForCodeCatalystSupport` 角色和 `AmazonCodeCatalystSupportAccess` 托管式策略。有关更多信息，请参阅 [为您的账户和空间创建 **AWSRoleForCodeCatalystSupport** 角色](ipa-iam-roles.md#ipa-iam-roles-support-create)。

**注意**  
 AWS Builder ID 只能获得对他们进行身份验证的别名的支持，并且只能获得基于权限的资源的支持 CodeCatalyst。为空间中的所有用户提供账户和计费支持。但是，构建者只能获得他们有权访问的资源和信息的支持 CodeCatalyst。

### 我无法为自己的空间创建技术支持案例
<a name="troubleshoot-support-technical-cases"></a>

**问题：**我无法为自己的空间创建技术支持案例。

**修复方法：**需要在空间计费账户中添加 Business Support 或 Enterprise Support 计划，空间中的用户才能创建技术支持案例。请您的空间管理员为您的空间计费账户添加 支持 计划，或访问 https://repost.aws/ 向 AWS 社区提问。

### 我的支持案例账户已不再与我的空间关联 CodeCatalyst
<a name="troubleshoot-support-disconnected-account"></a>

**问题：**我的支持案例账户不再与我的空间相关联 CodeCatalyst。

**修复：**如果具有**空间管理员**角色的用户切换空间账单账户，则会断开 支持 计划和所有相关案例与空间的连接。在 Amazon 中，与旧空间账单账户相关的 支持 案例将不再可见 CodeCatalyst。 支持 该账单账户的根用户可以从中查看和解决旧案例，还可以设置 IAM 权限以 支持 供其他用户查看和解决旧案例。 AWS 管理控制台 您将无法继续通过旧空间账单账户获得技术支持 AWS 管理控制台，但是在您的 支持 计划取消之前，您可以获得其他服务的技术支持。 CodeCatalyst 

有关更多信息，请参阅《支持 User Guide》**中的 [Updating, resolving, and reopening your case](https://docs.aws.amazon.com//awssupport/latest/user/monitoring-your-case.html)。

### 我无法在 Amazon AWS 服务 中为另一位客户提交支持 支持案例 CodeCatalyst
<a name="troubleshoot-support-other-services"></a>

**问题：**我无法在 for AWS 服务 中 支持 为其他人打开支持案例 CodeCatalyst。

**可能的修复方法：**您只能从中 支持 打开 CodeCatalyst 支持案例 CodeCatalyst。如果您需要为从 CodeCatalyst 其他服务 AWS、Amazon 或其他第三方服务部署的服务或资源提供支持，则需要通过 AWS 管理控制台 或第三方服务支持渠道创建案例。有关更多信息，请参阅《支持 User Guide》**中的 [Creating support cases and case management](https://docs.aws.amazon.com//awssupport/latest/user/case-management.html)。

## Amazon 的部分或全部商品 CodeCatalyst 不可用
<a name="service-unavailable"></a>

**问题：**我导航到控制台或点击了 CodeCatalyst 控制台的链接，但我看到一个错误。

**可能的修复方法：**出现这种问题的最常见原因是，您点击了一个链接，进入了一个您没有被邀请加入的项目或空间，或者是服务的总体可用性出现了问题。查看[运行状况报告](health-dashboard.md)，了解服务是否存在任何已知问题。如果不存在问题，请联系邀请您加入项目或空间的人员，并要求再次发出邀请。如果您尚未被邀请加入任何项目或空间，则可以注册并[创建自己的空间和项目](sign-up-create-resources.md)。

## 我无法在中创建项目 CodeCatalyst
<a name="troubleshoot-create-project"></a>

**问题：**我想创建一个项目，但**创建项目**按钮显示为不可用，或者我收到了错误消息。

**可能的修复方法：**出现此问题的最常见原因是您使用不具有 **Space 管理员**角色的 AWS Builder ID 登录控制台。您必须拥有此角色才能在空间中创建项目。

如果您确实拥有此角色，但该按钮显示不可用，则可能是服务出现了暂时性问题。刷新您的浏览器，然后重试。

## 由于用户名被截断，我无法以新用户身份访问我的 BID 空间，或无法将其添加为新的 SSO 用户
<a name="troubleshoot-username-truncated"></a>

**问题：在** 100 个字符后 CodeCatalyst 截断用户名，这可能会导致某些用户名看起来相同。作为访问 CodeCatalyst 空间的新用户，我会遇到这个问题，具体取决于空间的类型，如下所示：
+ 我有一个 AWS Builder ID，我想用它来登录 CodeCatalyst。当我尝试登录该空间时，我收到一条信息，提示我的用户名无效。
+ 我是支持身份联合的 CodeCatalyst 空间的联合身份管理员。在 IAM Identity Center 中向 SSO 用户和组添加新用户时，我收到一条用户无效的消息。

**可能的修复方法：**第一个以给定截断用户名的 SSO 用户身份登录 CodeCatalyst或被添加到空间的用户将成功。任何使用 AWS 构建器 ID 注册或之后添加到 IAM Identity Center 的用户都将无法登录，因为该名称将显示为重复名称。根据空间类型，执行以下操作之一：
+ 为了能够登录 AWS Builder ID 空间，请使用不同的用户名进行注册。
+ 要能够在 IAM Identity Center 中添加新用户，请使用不同的用户名添加用户。

**注意**  
尽管用户名似乎被截断，但 CodeCatalyst 映射到身份的方式不受名称截断的用户名的影响。但是，如果创建的用户名与截断的用户名相同，则如果其他关联用户（使用相同的空间或 IAM Identity Center 应用程序）已使用该截断的用户名加入 CodeCatalyst ，则该用户名将不可用。

## 将一个 SSO 用户作为新用户添加到我的联合空间后，创建了重复的用户
<a name="troubleshoot-username-duplicated-SSO"></a>

**问题：**添加至 CodeCatalyst空间然后被移除的 CodeCatalyst SSO 用户可能会遇到用户名尝试重复使用的问题。这可能会导致类似于这样的错误：即使该用户是重新创建的，系统仍不允许重复使用它。

**`Unable to assume role`**

`To access support cases, you must add the role AWSRoleForCodeCatalystSupport to the AWS 账户 that is the billing account for the space.`

**可能的修复方法：**如果删除现有的 IDC 用户，然后使用相同的用户名重新创建新用户，则新用户无法登录，因为用户名与旧用户冲突。将用户名作为 SSO 用户添加到空间后，该名称将无法再次使用。任何使用 AWS 构建器 ID 注册或之后添加到 IAM Identity Center 的用户都将无法登录，因为该名称将显示为重复名称。

根据空间类型，执行以下操作之一：
+ 为了能够登录 AWS Builder ID 空间，请使用不同的用户名进行注册。
+ 要能够在 IAM Identity Center 中添加新用户，请使用不同的用户名添加用户。

## 我想通过以下方式提交反馈 CodeCatalyst
<a name="troubleshoot-create-feedback"></a>

**问题：**我在中发现了一个错误 CodeCatalyst ，我想提交反馈。

**可能的修复方法：**您可以直接在中提交反馈 CodeCatalyst。

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 在导航窗格中，选择**给出反馈**。

1. 从下拉菜单中选择反馈类型，然后输入您的反馈。

# 排查源存储库的问题
<a name="troubleshooting-source"></a>

以下信息可以帮助您解决中源存储库的常见问题 CodeCatalyst。

**Topics**
+ [我已达到空间的最大存储量并看到警告或错误](#source-troubleshoot-storage)
+ [我在尝试克隆或推送到 Amazon CodeCatalyst 源存储库时收到错误消息](#source-troubleshoot-clone)
+ [我在尝试提交或推送到 Amazon CodeCatalyst 源存储库时收到错误消息](#source-troubleshoot-commit-code)
+ [我的项目需要一个源存储库](#source-troubleshoot-need-repository)
+ [我的源存储库是全新的，但包含一个提交](#source-troubleshoot-initial-commit)
+ [我想要一个不同的分支作为默认分支](#source-troubleshoot-default-branch)
+ [我收到关于拉取请求中活动的电子邮件](#source-troubleshoot-repository-emails)
+ [我忘记了我的个人访问令牌（PAT）](#source-troubleshoot-forgot-pat)
+ [拉取请求不显示我期望的更改](#source-troubleshoot-pull-request-diff)
+ [拉取请求的状态显示为“不可合并”](#source-troubleshoot-pull-request-not-mergeable)

## 我已达到空间的最大存储量并看到警告或错误
<a name="source-troubleshoot-storage"></a>

**问题：**我想向中的一个或多个源代码库提交代码 CodeCatalyst，但我看到了错误。控制台中的源存储库页面上显示一条消息，指示我已达到空间的存储限制。

**可能的修复方法：**根据您在项目或空间中的角色，您可以缩小一个或多个源存储库的大小，删除未使用的源存储库，或者将计费套餐更改为具有更多存储量的计费套餐。
+ 要缩小项目中源存储库的大小，可以删除未使用的分支。有关更多信息，请参阅[删除分支](source-branches-delete.md)和[贡献者角色](ipa-role-types.md#ipa-role-contributor)。
+ 要减少空间的总体存储量，可以删除未使用的源存储库。有关更多信息，请参阅[删除源存储库](source-repositories-delete.md)和[项目管理员角色](ipa-role-types.md#ipa-role-project-admin)。
+ 要增加空间的可用存储量，您可以将计费套餐更改为具有更多存储量的计费套餐。有关更多信息，请参阅《Amazon CodeCatalyst 管理员指南》中的[更改 CodeCatalyst 账单等级](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-billing-change-plan.html)。

## 我在尝试克隆或推送到 Amazon CodeCatalyst 源存储库时收到错误消息
<a name="source-troubleshoot-clone"></a>

**问题：**当我尝试将源存储库克隆到本地计算机或集成式开发环境（IDE）时，出现权限错误。

**可能的修复方法：**您的 AWS 建筑商 ID 可能没有个人访问令牌 (PAT)，可能没有使用 PAT 配置凭证管理系统，或者您的 PAT 可能已过期。尝试以下一种或多种解决方案：
+ 创建个人访问令牌（PAT）。有关更多信息，请参阅 [使用个人访问令牌向用户授予对存储库的访问权限](ipa-tokens-keys.md)。
+ 确保您已接受加入包含源存储库的项目的邀请，并且您仍然是该项目的成员。如果您不是该项目的活跃成员，则无法克隆源存储库。登录控制台，并尝试导航到您试图克隆源存储库的空间和项目。如果您在空间的项目列表中看不到该项目，则说明您不是该项目的成员，或者您尚未接受加入该项目的邀请。有关更多信息，请参阅 [接受邀请并创建 AWS 建筑商 ID](sign-up-sign-in.md)。
+ 确保您的克隆命令格式正确，并包含您的 AWS 生成器 ID。例如：

  ```
  https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
  ```
+ 使用 AWS CLI 来确保您的 PAT 与您的 AWS 建筑商 ID 相关联，并且未过期。如果您没有 PAT 或 PAT 已过期，请创建一个。有关更多信息，请参阅 [使用个人访问令牌向用户授予对存储库的访问权限](ipa-tokens-keys.md)。
+ 尝试创建一个开发环境来处理源存储库中的代码，而不是将其克隆到本地存储库或 IDE。有关更多信息，请参阅 [创建开发环境](devenvironment-create.md)。

## 我在尝试提交或推送到 Amazon CodeCatalyst 源存储库时收到错误消息
<a name="source-troubleshoot-commit-code"></a>

**问题：**当我尝试推送到源存储库时，出现权限错误。

**可能的修复方法：**您在项目中可能没有可让您向项目提交和推送代码更改的角色。查看您在试图将更改推送到源存储库的项目中的角色。有关更多信息，请参阅[获取成员及其项目角色的列表](projects-members.md#projects-members-view)和[使用用户角色授予访问权限](ipa-roles.md)。

如果您的角色可让您提交和推送更改，那么您尝试提交更改的分支可能配置有一个分支规则，阻止您将代码更改推送到该分支。尝试创建一个分支，然后将代码推送到该分支。有关更多信息，请参阅 [使用分支规则管理分支允许的操作](source-branches-branch-rules.md)。

## 我的项目需要一个源存储库
<a name="source-troubleshoot-need-repository"></a>

**问题：**我的项目要么没有源存储库，要么我的项目需要另一个源存储库。

**可能的修复方法：**有些项目是在没有任何资源的情况下创建的。如果您是该项目的成员，则可以在中为该项目创建源存储库 CodeCatalyst。如果拥有 **Space 管理员**角色的用户安装了**GitHub 存储库**并将其关联到 GitHub 帐户，那么如果您具有项目**管理员角色，则可以链接到可用的 GitHub 存储库以将其添加到您的项目**中。有关更多信息，请参阅[创建源存储库](source-repositories-create.md)和[链接源存储库](source-repositories-link.md)。

## 我的源存储库是全新的，但包含一个提交
<a name="source-troubleshoot-initial-commit"></a>

**问题：**我刚刚创建了一个源存储库。该源存储库应该是空的，但其中包含一个提交、一个分支和一个 `README.md` 文件。

**可能的修复方法：**这是预期的行为。中的所有源存储库都 CodeCatalyst 包含初始提交，该提交将默认分支设置为`main`并包含示例代码（如果存储库是使用包含示例代码的蓝图为项目创建的）或存储库 README 文件的模板 markdown 文件。您可以在控制台和 Git 客户端中创建其它分支。您可以在控制台中创建和编辑文件，也可以在开发环境和 Git 客户端中删除文件。

## 我想要一个不同的分支作为默认分支
<a name="source-troubleshoot-default-branch"></a>

**问题：**我的源存储库有一个名为 `main` 的默认分支，但我想要一个不同的分支作为默认分支。

**可能的修复方法：**您无法在中更改或删除源存储库中的默认分支 CodeCatalyst。您可以创建其它分支，并在工作流的源操作中使用这些分支。您也可以选择链接 GitHub 存储库并将其用作项目的存储库。

## 我收到关于拉取请求中活动的电子邮件
<a name="source-troubleshoot-repository-emails"></a>

**问题：**我没有注册或配置关于拉请求活动的电子邮件通知，但我还是收到了相关通知。

**可能的修复方法：**自动发送关于拉取请求活动的电子邮件通知。有关更多信息，请参阅 [在 Amazon 中使用拉取请求查看代码 CodeCatalyst](source-pull-requests.md)。

## 我忘记了我的个人访问令牌（PAT）
<a name="source-troubleshoot-forgot-pat"></a>

**问题：**我一直在使用 PAT 来克隆、推送和拉取源存储库的代码，但我失去了令牌的价值，也无法在 CodeCatalyst 控制台中找到它。

**可能的修复方法：**解决此问题的最快方法是创建另一个 PAT，并将您的凭证管理器或 IDE 配置为使用这个新的 PAT。我们仅在您创建 PAT 时显示其值。如果您丢失该值，则无法检索它。有关更多信息，请参阅 [使用个人访问令牌向用户授予对存储库的访问权限](ipa-tokens-keys.md)。

## 拉取请求不显示我期望的更改
<a name="source-troubleshoot-pull-request-diff"></a>

**问题：**我创建了一个拉取请求，但我看不到源分支和目标分支之间预期的变化。

**可能的修复方法：**这可能是由许多问题引起的。尝试以下一种或多种解决方案：
+ 您可能正在查看旧修订版之间的更改，也可能没有查看最新更改。刷新浏览器，确保选择了要查看的修订版之间的比较。
+ 并非拉取请求中的所有更改都可以在控制台中显示。例如，您无法在控制台中查看 Git 子模块，因此无法在拉取请求中查看子模块中的差异。有些差异可能太大而无法显示。有关更多信息，请参阅[中的源存储库配额 CodeCatalyst](source-quotas.md)和[查看文件查看文件更改历史记录](source-files-view.md)。
+ 拉取请求会显示合并基准与您选择的任何修订版之间的差异。在创建拉取请求时，为您显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异是修订版与其合并基准之间的差异。合并基准是在创建修订版时作为目标分支最新块的提交。合并基准可在不同修订版之间发生变化。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

## 拉取请求的状态显示为“不可合并”
<a name="source-troubleshoot-pull-request-not-mergeable"></a>

**问题：**我想合并拉取请求，但其状态显示为**不可合并**。

**可能的修复方法：**这可能是由一个或多个问题引起的：
+ 拉取请求的所有必需的审阅者都必须批准拉取请求，然后才能合并请求。查看必需的审阅者列表中是否有在姓名旁边显示时钟图标的任何审阅者。时钟图标表示该审阅者尚未批准拉取请求。
**注意**  
如果在批准拉取请求之前从您的项目中移除了必需的审阅者，则无法合并拉取请求。关闭该拉取请求并创建新的拉取请求。
+ 源分支和目标分支之间可能存在合并冲突。 CodeCatalyst 不支持所有可能的 Git 合并策略和选项。您可以在开发环境中评估分支是否存在合并冲突，也可以克隆存储库，并使用 IDE 或 Git 工具来查找和解决合并冲突。有关更多信息，请参阅 [合并拉取请求](pull-requests-merge.md)。

# 排查项目和蓝图的问题
<a name="projects-troubleshooting"></a>

此部分可帮助您解决在 Amazon CodeCatalyst 中使用项目和蓝图时可能遇到的一些常见问题。

# 带有 AWS Fargate 蓝图的 Java API 缺少 ap ache-maven-3.8.6 的依赖关系
<a name="projects-troubleshooting-error-maven"></a>

**问题：**对于通过 Java API 创建的带有 AWS Fargate 蓝图的项目，工作流程失败并显示缺少`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. 在搜索栏中，输入 `apache-maven-3.8.6` 以在使用带 AWS Fargate 的 Java API 蓝图创建的项目中找到 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 账户 中使用的服务角色版本缺少 code **guru\$1codereview** 操作成功运行所需的权限。要解决此问题，要么必须使用所需权限更新服务角色，要么必须将用于工作流程的服务角色更改为具有 Amazon CodeGuru 和 Amazon CodeGuru Reviewer 所需权限的服务角色。使用以下步骤，找到您的角色并更新角色策略权限，以使工作流能够成功运行。

**注意**  
这些步骤适用于中的以下工作流程 CodeCatalyst：  
为使用现代三层 Web 应用程序蓝图创建的项目提供**OnPullRequest**的工作流程。 CodeCatalyst
通过访问 Amazon CodeGuru 或 Amazon CodeGuru Reviewer 的操作将工作流程添加到项目中 CodeCatalyst 。

每个项目都包含工作流程，其操作使用的是与您的项目 AWS 账户 关联的用户提供的角色和环境 CodeCatalyst。包含操作及其指定策略的工作流存储在源存储库中的 /.codecatalyst/workflows 目录中。除非您要向现有工作流添加新的角色 ID，否则无需修改工作流 YAML。有关 YAML 模板元素和格式的信息，请参阅[工作流 YAML 定义](workflow-reference.md)。

以下是编辑角色策略和验证工作流 YAML 时要遵循的高级步骤。

**在工作流 YAML 中引用您的角色名称并更新策略**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的 CodeCatalyst 空间。导航到您的项目。

1. 选择 **CI/CD**，然后选择**工作流**。

1. 选择标题为的工作流程**OnPullRequest**。选择**定义**选项卡。

1. 在工作流 YAML 中，在 **codeguru\$1codereview** 操作下的 `Role:` 字段中，记下角色名称。这是具有要在 IAM 中修改的策略的角色。以下示例显示了角色名称。  
![\[在工作流 YAML 中查看 IAM 角色名称\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/images/projects/ts-workflow-role.png)

1. 请执行以下操作之一：
   + （推荐）将与您的项目关联的服务角色更新为亚马逊 CodeGuru 和亚马逊 CodeGuru 评论者所需的权限。该角色的名称为 `CodeCatalystWorkflowDevelopmentRole-spaceName`，并且将附加唯一标识符。有关角色和角色策略的更多信息，请参阅[了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色](ipa-iam-roles.md#ipa-iam-roles-service-role)。继续执行后续步骤以在 IAM 中更新策略。
**注意**  
您必须拥有具有角色和策略的 AWS 管理员访问权限。 AWS 账户 
   + 将用于工作流程的服务角色更改为具有 Amazon CodeGuru 和 Amazon CodeGuru Reviewer 所需权限的服务角色，或者创建具有所需权限的新角色。

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/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 客户。请尽量提供详细信息，以便我们能最有效地解决您的问题。

# 排查开发环境的问题
<a name="devenvironments-troubleshooting"></a>

要排查与开发环境相关的问题，请参阅以下部分。有关开发环境的更多信息，请参阅[使用开发环境编写和修改代码 CodeCatalyst使用开发环境编写和修改代码](devenvironment.md)。

**Topics**
+ [由于出现配额问题，我无法创建开发环境](#troubleshooting-devenvironments-create)
+ [我无法将更改从开发环境推送到存储库中的特定分支](#troubleshooting-devenvironments-branchrules)
+ [我的开发环境未恢复](#troubleshooting-devenvironments-resume)
+ [我的开发环境已断开连接](#troubleshooting-devenvironments-connection)
+ [我的与 VPC 连接的开发环境出现问题](#troubleshooting-devenvironments-vpc)
+ [我找不到我的项目位于哪个目录](#troubleshooting-devenvironments-projects)
+ [我无法通过 SSH 连接到我的开发环境](#troubleshooting-devenvironments-connect-ssh)
+ [我无法通过 SSH 连接到我的开发环境，因为我的本地 SSH 配置缺失](#troubleshooting-devenvironments-projects-ssh-config)
+ [我无法通过 SSH 连接到我的开发环境，因为我的 AWS Config `codecatalyst`配置文件有问题](#troubleshooting-devenvironments-config-profile)
+ [当我 CodeCatalyst 使用单点登录账户登录时，我无法创建开发环境](#troubleshoot-create-dev-env-idprovider)
+ [排查 IDE 的问题](devenvironments-troubleshooting-ides.md)
+ [排查 devfile 的问题](devenvironments-devenvironments-devfile.md)

## 由于出现配额问题，我无法创建开发环境
<a name="troubleshooting-devenvironments-create"></a>

**问题：**我想在中创建一个开发环境 CodeCatalyst，但我看到一个错误。控制台中的开发环境页面上显示一条消息，指示我已达到空间的存储限制。

**可能的修复方法：**根据您在项目或空间中的角色，您可以删除自己的一个或多个开发环境，或者如果您具有空间管理员角色，则可以删除其他用户创建的未使用的开发环境。您也可以决定将计费等级更改为一个包含更多存储空间的计费等级。
+ 要查看存储限制，请查看 Amazon CodeCatalyst 空间的 “**账单**” 选项卡，查看**使用量**配额是否已达到允许的最大值。如果配额已达到最大值，请联系具有空间管理员角色的人员以移除不需要的开发环境或考虑更改计费等级。
+ 要移除您创建的不再需要的任何开发环境，请参阅[删除开发环境](devenvironment-delete.md)。

如果问题仍然存在，并且您的 IDE 中出现错误，请检查您的 CodeCatalyst 角色是否允许您创建开发环境。**空间管理员**角色、**项目管理员**角色和**贡献者**角色都有创建开发环境所需的权限。有关更多信息，请参阅[使用用户角色授予访问权限](ipa-roles.md)。

## 我无法将更改从开发环境推送到存储库中的特定分支
<a name="troubleshooting-devenvironments-branchrules"></a>

**问题：**我要将开发环境中的代码更改提交并推送到源存储库中的分支，但显示一个错误。

**可能的修复方法：**根据您在项目或空间中的角色，您可能无权将代码推送到项目中的源存储库。**空间管理员**角色、**项目管理员**角色和**贡献者**角色都有权将代码推送到项目中的存储库。

如果您具有**贡献者**角色但无法将代码推送到特定分支，则可能为该特定分支配置了一个分支规则，该规则禁止具有此角色的用户将代码推送到该特定分支。尝试将更改推送到其他分支，或者创建一个分支，然后将代码推送到该分支。有关更多信息，请参阅 [使用分支规则管理分支允许的操作](source-branches-branch-rules.md)。

## 我的开发环境未恢复
<a name="troubleshooting-devenvironments-resume"></a>

**问题：**我的开发环境在停止后未恢复。

**可能的修复方法：**要修复问题，请查看 Amazon CodeCatalyst 空间的 “**账单**” 选项卡，查看**使用**配额是否已达到最大限制。如果配额已达到最大限制，请联系您的空间管理员来提高计费等级。

## 我的开发环境已断开连接
<a name="troubleshooting-devenvironments-connection"></a>

**问题：**我的开发环境在使用期间断开连接。

**可能的修复方法：**要修复此问题，请检查您的 Internet 连接。如果您未连接到 Internet，请连接开发环境并继续工作。

## 我的与 VPC 连接的开发环境出现问题
<a name="troubleshooting-devenvironments-vpc"></a>

**问题：**我将 VPC 连接关联到我的开发环境，但出现错误。

**可能的修复方法：**Docker 使用了一种名为网桥网络的链路层设备，它使连接到同一网桥网络的容器能够进行通信。默认网桥通常使用 `172.17.0.0/16` 子网进行容器联网。如果环境实例的 VPC 子网使用的地址范围与 Docker 使用的相同，则可能会出现 IP 地址冲突。要解决由 Amazon VPC 和Docker使用相同 IPv4 CIDR 地址块引起的 IP 地址冲突，请配置与不同的 CIDR 块。`172.17.0.0/16`

**注意**  
您不能更改现有 VPC 或子网的 IP 地址范围。

## 我找不到我的项目位于哪个目录
<a name="troubleshooting-devenvironments-projects"></a>

**问题：**我找不到我的项目位于哪个目录

**可能的修复方法：**要找到您的项目，请将目录更改为 `/projects`。您可以在此目录中找到您的项目。

## 我无法通过 SSH 连接到我的开发环境
<a name="troubleshooting-devenvironments-connect-ssh"></a>

要排查通过 SSH 与开发环境建立的连接的问题，您可以执行带 `-vvv` 选项的 `ssh` 命令，以显示有关如何解决问题的更多信息：

```
ssh -vvv codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>
```

## 我无法通过 SSH 连接到我的开发环境，因为我的本地 SSH 配置缺失
<a name="troubleshooting-devenvironments-projects-ssh-config"></a>

如果本地 SSH 配置（`~/.ssh/config`）缺失或 `Host codecatalyst-dev-env*` 部分的内容已过期，则您将无法通过 SSH 连接到您的开发环境。要解决此问题，请删除 `Host codecatalyst-dev-env*` 部分并重新从 **SSH 访问权限**模式执行第一条命令。有关更多信息，请参阅 [使用 SSH 连接到开发环境](devenvironment-connect-ssh.md)。

## 我无法通过 SSH 连接到我的开发环境，因为我的 AWS Config `codecatalyst`配置文件有问题
<a name="troubleshooting-devenvironments-config-profile"></a>

确保您的`codecatalyst`个人资料的 AWS Config (`~/.aws/config`) 与中描述的相匹配[设置为 AWS CLI 与一起使用 CodeCatalyst](set-up-cli.md)。如果不是这样，请删除 `codecatalyst` 的个人资料并重新从 **SSH 访问权限**模式执行第一条命令。有关更多信息，请参阅 [使用 SSH 连接到开发环境](devenvironment-connect-ssh.md)。

## 当我 CodeCatalyst 使用单点登录账户登录时，我无法创建开发环境
<a name="troubleshoot-create-dev-env-idprovider"></a>

**问题：**当我以 SSO 用户身份登录 CodeCatalyst 控制台时，当我选择在空间中创建开发环境时，我收到一个未知的异常错误。当我选择创建开发环境并选择 IDE 进行访问时（例如） AWS Cloud9，我遇到了类似以下的问题：
+  CodeCatalyst 控制台中的**开发环境**页面在列表中显示带有`FAILED`状态的开发环境。
+ 这将显示一条与以下内容类似的错误消息：

  **`An unknown exception happened`**

  `We encountered an unknown exception when launching your Dev Environment. Mention your Dev Environment id error_message_ID if you want to report or need any help.`

**可能的修复方法：**

开发环境不适用于将 Active Directory 用作身份提供商的空间中的用户。该空间的管理员可以使用其他身份提供商来访问开发环境，例如 IAM Identity Center。有关规划支持身份联合的空间的更多信息，请参阅*《CodeCatalyst 管理员指南》*中的 “[规划支持身份联合的空间](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/setting-up-federation.html#setting-up-planning-federation)”。

# 排查 IDE 的问题
<a name="devenvironments-troubleshooting-ides"></a>

要在 CodeCatalyst 中排查与 IDE 相关的问题，请参阅以下部分。有关 IDE 的更多信息，请参阅[在 IDE 中创建开发环境](devenvironment-create.md#devenvironment-using-ide)。

**Topics**
+ [我在 AWS Cloud9 中的运行时映像版本不匹配](#troubleshooting-devenvironments-c9-runtime)
+ [我无法在 AWS Cloud9 中访问 `/projects/projects` 中的文件](#troubleshooting-devenvironments-c9-filesystem)
+ [我无法使用自定义 devfile 在 AWS Cloud9 中启动我的开发环境](#troubleshooting-devenvironments-c9-image)
+ [我在 AWS Cloud9 中遇到了问题](#troubleshooting-c9)
+ [在 JetBrains 中，我无法通过 CodeCatalyst 连接到我的开发环境](#troubleshooting-jetbrains-connect)
+ [我无法为我的 IDE 安装 AWS Toolkit](#troubleshooting-ide-toolkit)
+ [在我的 IDE 中，我无法启动我的开发环境](#troubleshooting-ide-launch)

## 我在 AWS Cloud9 中的运行时映像版本不匹配
<a name="troubleshooting-devenvironments-c9-runtime"></a>

AWS Cloud9 使用了不同版本的前端资产和后端运行时映像。使用不同的版本可能会导致 Git 扩展和 AWS Toolkit 无法正常运行。要修复此问题，请导航到开发环境控制面板，停止开发环境，然后重新启动它。要使用 API 修复此问题，请使用 `UpdateDevEnvironment` API 更新运行时。有关更多信息，请参阅《Amazon CodeCatalyst API reference》**中的 [UpdateDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_UpdateDevEnvironment.html)。

## 我无法在 AWS Cloud9 中访问 `/projects/projects` 中的文件
<a name="troubleshooting-devenvironments-c9-filesystem"></a>

AWS Cloud9 编辑器无法访问目录 `/projects/projects` 中的文件。要修复此问题，请使用 AWS Cloud9 终端访问您的文件或将其移至其他目录。

## 我无法使用自定义 devfile 在 AWS Cloud9 中启动我的开发环境
<a name="troubleshooting-devenvironments-c9-image"></a>

您的 devfile 映像可能与 AWS Cloud9 不兼容。要修复此问题，请查看存储库中的 devfile 和相应的开发环境，然后创建一个新的开发环境以继续。

## 我在 AWS Cloud9 中遇到了问题
<a name="troubleshooting-c9"></a>

有关其他问题，请查看 [AWS Cloud9 User Guide](https://docs.aws.amazon.com/cloud9/latest/user-guide/troubleshooting.html) 中的问题排查部分。

## 在 JetBrains 中，我无法通过 CodeCatalyst 连接到我的开发环境
<a name="troubleshooting-jetbrains-connect"></a>

要修复此问题，请检查您是否只安装了最新版本的 JetBrains。如果您有多个版本，请卸载旧版本，然后通过关闭 IDE 和浏览器来重新注册协议处理程序。然后，打开 JetBrains 并重新注册协议处理程序。

## 我无法为我的 IDE 安装 AWS Toolkit
<a name="troubleshooting-ide-toolkit"></a>

要为 VS Code 修复此问题，请从 [GitHub](https://github.com/aws/aws-toolkit-vscode/releases) 手动安装 AWS Toolkit for Visual Studio Code。

要为 JetBrains 修复此问题，请从 [GitHub](https://github.com/aws/aws-toolkit-jetbrains/releases) 手动安装 AWS Toolkit for JetBrains。

## 在我的 IDE 中，我无法启动我的开发环境
<a name="troubleshooting-ide-launch"></a>

要为 VS Code 修复此问题，请检查是否已安装最新版本的 VS Code 和 AWS Toolkit for Visual Studio Code。如果您没有最新版本，请更新并启动您的开发环境。有关更多信息，请参阅 [Amazon CodeCatalyst for VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-service.html)。

要为 JetBrains 修复此问题，请检查是否已安装最新版本的 JetBrains 和 AWS Toolkit for JetBrains。如果您没有最新版本，请更新并启动您的开发环境。有关更多信息，请参阅[适用于 JetBrains 的 Amazon CodeCatalyst](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-overview.html)。

# 排查 devfile 的问题
<a name="devenvironments-devenvironments-devfile"></a>

要解决中与 devfiles 相关的问题，请参阅以下章节。 CodeCatalyst有关 devfile 的更多信息，请参阅[配置开发环境的 devfile](devenvironment-devfile.md)。

**Topics**
+ [即使我在自定义 devfile 中实现了自定义映像，我的开发环境还是使用默认通用 devfile](#troubleshooting-devenvironments-custom-image)
+ [我的项目未使用默认通用 devfile 在我的开发环境中进行构建](#troubleshooting-devenvironments-default-image)
+ [我需要移动开发环境的存储库 devfile](#troubleshooting-devenvironments-devfile-moving)
+ [我在启动 devfile 时遇到了问题](#troubleshooting-devenvironments-devfile-recovery)
+ [我无法确定如何查看我的 devfile 状态](#troubleshooting-devenvironments-devfile-status)
+ [我的 devfile 与最新映像中提供的工具不兼容](#troubleshooting-devenvironments-devfile-version)

## 即使我在自定义 devfile 中实现了自定义映像，我的开发环境还是使用默认通用 devfile
<a name="troubleshooting-devenvironments-custom-image"></a>

如果在启动使用自定义开发文件的开发环境时 CodeCatalyst 遇到错误，则开发环境默认为默认的通用开发文件。要解决此问题，您可以在 `/aws/mde/logs/devfile.log` 下的日志中查看确切的错误。您还可以在日志中检查 `postStart` 执行是否成功：`/aws/mde/logs/devfileCommand.log`。

## 我的项目未使用默认通用 devfile 在我的开发环境中进行构建
<a name="troubleshooting-devenvironments-default-image"></a>

要解决此问题，请检查您是否未使用自定义 devfile。如果您未使用自定义 devfile，请在项目的源存储库中查看 `devfile.yaml` 文件以查找并纠正所有错误。

## 我需要移动开发环境的存储库 devfile
<a name="troubleshooting-devenvironments-devfile-moving"></a>

您可以将 `/projects/devfile.yaml` 中的默认 devfile 移至您的源代码存储库。要更新 devfile 的位置，请使用以下命令：`/aws/mde/mde start --location repository-name/devfile.yaml`。

## 我在启动 devfile 时遇到了问题
<a name="troubleshooting-devenvironments-devfile-recovery"></a>

如果启动 devfile 时出现问题，它将进入恢复模式，这样您仍能连接到您的环境并修复 devfile。在恢复模式中，运行 `/aws/mde/mde status` 将不会包含 devfile 的位置。

```
{
    "status": "STABLE"
}
```

您可以查看 `/aws/mde/logs` 下的日志中的错误，修复 devfile，然后重试运行 `/aws/mde/mde start`。

## 我无法确定如何查看我的 devfile 状态
<a name="troubleshooting-devenvironments-devfile-status"></a>

可以通过运行 `/aws/mde/mde status` 来查看 devfile 状态。运行此命令后，您可能会看到以下内容之一：
+ `{"status": "STABLE", "location": "devfile.yaml" }`

  这表明 devfile 是正确的。
+ `{"status": "STABLE" }`

  这表示 devfile 无法启动并且已进入恢复模式。

您可以在 `/aws/mde/logs/devfile.log` 下的日志中查看确切的错误。

您还可以在日志中检查 `postStart` 执行是否成功：`/aws/mde/logs/devfileCommand.log`。

有关更多信息，请参阅[为开发环境指定通用 devfile 映像](devenvironment-universal-image.md)。

## 我的 devfile 与最新映像中提供的工具不兼容
<a name="troubleshooting-devenvironments-devfile-version"></a>

在您的开发环境中，如果 `latest` 工具没有特定项目所需的工具，则 `devfile` 或 `devfile postStart` 可能会失败。要修复此问题，请执行以下操作：<a name="devenvironment-devfile-version"></a>

1. 导航到您的 devfile。

1. 在您的 devfile 中，更新至精细映像版本，而不是 `latest`。其内容可能与以下内容类似：

   ```
   components:
     - container:
         image: public.ecr.aws/amazonlinux/universal-image:1.0
   ```

1. 使用更新后的 devfile 创建新的开发环境。

# 排查工作流问题
<a name="troubleshooting-workflows"></a>

要解决与 Amazon 工作流程相关的问题，请参阅以下章节 CodeCatalyst。有关工作流的更多信息，请参阅[使用工作流进行构建、测试和部署使用工作流进行构建、测试和部署](workflow.md)。

**Topics**
+ [如何修复“工作流非活动”消息？](#troubleshooting-workflows-inactive)
+ [如何修复 “工作流程定义有*n*错误” 错误？](#troubleshooting-workflows-asterisks)
+ [如何修复 “找不到凭证” 和 “ExpiredToken” 错误？](#troubleshooting-workflows-auth-errors-eks)
+ [如何修复“无法连接到服务器”错误？](#troubleshooting-workflows-unable-connect-eks)
+ [为什么可视化编辑器中缺少 CodeDeploy 字段？](#troubleshooting-workflows-codedeploy)
+ [如何修复 IAM 功能错误？](#troubleshooting-workflows-capabilities)
+ [如何修复“npm install”错误？](#troubleshooting-workflows-npm)
+ [为什么多个工作流具有相同的名称？](#troubleshooting-workflows-name)
+ [能否将我的工作流定义文件存储在另一个文件夹中？](#troubleshooting-workflows-folder)
+ [如何按顺序向我的工作流中添加操作？](#troubleshooting-workflows-visual)
+ [为什么我的工作流成功验证但在运行时失败？](#troubleshooting-workflows-validation)
+ [自动发现功能未发现我的操作的任何报告](#troubleshooting-reports-auto-discovery)
+ [配置成功标准后，我对自动发现的报告执行操作失败](#troubleshooting-success-auto-discovery)
+ [自动发现功能生成我不想要的报告](#troubleshooting-unwanted-auto-discovery)
+ [自动发现功能为单个测试框架生成许多小报告](#troubleshooting-reports-combined)
+ [下面列出的工作流程与源存储库中的工作流程 CI/CD 不匹配](#troubleshooting-workflow-source)
+ [我无法创建或更新工作流](#troubleshooting-workflows-branchrules)

## 如何修复“工作流非活动”消息？
<a name="troubleshooting-workflows-inactive"></a>

**问题**：在 CodeCatalyst 控制台的 C **I/CD** “**工作流程**” 下，您的工作流程将显示以下消息：

`Workflow is inactive.`

此消息表示工作流定义文件包含一个不适用于您当前所在分支的触发器。例如，您的工作流定义文件可能包含引用 `main` 分支的 `PUSH` 触发器，但您位于功能分支上。由于您在功能分支中所做的更改不适用于也不会启动工作流程在中运行`main`，因此在该分支 CodeCatalyst 上停用工作流程并将其标记为`Inactive`。`main`

**可能的修复方法：**

如果要在功能分支上启动工作流，可以执行以下操作：
+ 在您的功能分支中，在工作流定义文件中，从 `Triggers` 部分中移除 `Branches` 属性，使其如下所示：

  ```
  Triggers:
    - Type: PUSH
  ```

  此配置会使触发器在推送到任何分支（包括功能分支）时激活。如果激活了触发器，则 CodeCatalyst 将使用工作流程定义文件和你要推送到的任何分支中的源文件启动工作流程运行。
+ 在您的功能分支中，在工作流定义文件中，移除 `Triggers` 部分并手动运行工作流。
+ 在您的功能分支中，在工作流定义文件中，更改 `PUSH` 部分，使其引用您的功能分支而不是另一个分支（例如 `main`）。

**重要**  
如果您不打算将这些更改合并回 `main` 分支，请注意不要提交这些更改。

有关编辑工作流定义文件的更多信息，请参阅[创建工作流](workflows-create-workflow.md)。

有关触发器的更多信息，请参阅[使用触发器自动启动工作流运行](workflows-add-trigger.md)。

## 如何修复 “工作流程定义有*n*错误” 错误？
<a name="troubleshooting-workflows-asterisks"></a>

**问题：**您看到以下任何错误消息：

**错误 1：**

在 **CI/CD** 的**工作流**页面中，在您的工作流名称下，您看到：

`Workflow definition has n errors`

**错误 2：**

编辑工作流程时，选择 “**验证**” 按钮， CodeCatalyst 控制台顶部会显示以下消息：

`The workflow definition has errors. Fix the errors and choose Validate to verify your changes.`

**错误 3：**

导航到工作流的详细信息页面后，您在**工作流定义**字段中看到以下错误：

`n errors`

**可能的修复方法：**
+ 依次选择 **CI/CD**、**工作流**和出错的工作流的名称。在靠近顶部的**工作流定义**字段中，选择错误链接。错误的详细信息出现在页面底部。按照错误中的问题排查提示修复问题。
+ 确保工作流定义文件是 YAML 文件。
+ 确保工作流定义文件中的 YAML 属性嵌套在正确的级别。要了解应如何将属性嵌套在工作流定义文件中，请参阅[工作流 YAML 定义](workflow-reference.md)，或查阅您的操作文档，该文档链接自[添加操作到工作流](workflows-add-action.md)。
+ 确保正确转义星号（`*`）和其它特殊字符。要转义这些字符，请添加单引号或双引号。例如：

  ```
  Outputs:      
    Artifacts:
      - Name: myartifact
        Files:
          - "**/*"
  ```

  有关工作流定义文件中特殊字符的更多信息，请参阅[语法准则和惯例](workflow-reference.md#workflow.terms.syntax.conv)。
+ 确保工作流定义文件中的 YAML 属性使用正确的大小写。有关大小写规则的更多信息，请参阅[语法准则和惯例](workflow-reference.md#workflow.terms.syntax.conv)。要确定每个属性的正确大小写，请参阅[工作流 YAML 定义](workflow-reference.md)，或查阅您的操作文档，该文档链接自[添加操作到工作流](workflows-add-action.md)。
+ 确保 `SchemaVersion` 属性存在并在工作流定义文件中设置为正确的版本。有关更多信息，请参阅 [SchemaVersion](workflow-reference.md#workflow.schemaversion)。
+ 确保工作流定义文件中的 `Triggers` 部分包含所有必需的属性。要确定所需的属性，请在[可视化编辑器](workflow.md#workflow.editors)中选择触发器并查找缺少信息的字段，或者查阅[Triggers](workflow-reference.md#triggers-reference)处的触发器参考文档。
+ 确保工作流定义文件中的 `DependsOn` 属性配置正确，并且不会引入循环依赖关系。有关更多信息，请参阅 [顺序操作](workflows-depends-on.md)。
+ 确保工作流定义文件中的 `Actions` 部分至少包含一个操作。有关更多信息，请参阅 [操作](workflow-reference.md#actions-reference)。
+ 确保每个操作都包含所有必需的属性。要确定所需的属性，请在[可视化编辑器](workflow.md#workflow.editors)中选择操作并查找缺少信息的字段，或者查阅您的操作文档，该文档链接自[添加操作到工作流](workflows-add-action.md)。
+ 确保所有输入构件都有相应的输出构件。有关更多信息，请参阅 [定义输出构件](workflows-working-artifacts-output.md)。
+ 确保导出在一个操作中定义的变量，以便可以在其它操作中使用它们。有关更多信息，请参阅 [导出变量以便其他操作使用](workflows-working-with-variables-export-input.md)。

## 如何修复 “找不到凭证” 和 “ExpiredToken” 错误？
<a name="troubleshooting-workflows-auth-errors-eks"></a>

**问题**：在完成[教程：将应用程序部署到 Amazon EKS](deploy-tut-eks.md) 时，您在开发计算机的终端窗口中看到以下一条或两条错误消息：

`Unable to locate credentials. You can configure credentials by running "aws configure".`

`ExpiredToken: The security token included in the request is expired` 

**可能的修复方法：**

这些错误表明您用于访问 AWS 服务的凭证已过期。在此情况下，请不要运行 `aws configure` 命令。相反，请按照以下说明刷新您的 AWS 访问密钥和会话令牌。

**刷新您的 AWS 访问密钥和会话令牌**

1. 请确保您拥有正在使用的用户的 AWS 访问门户 URL、用户名和密码，完成了 Amazon EKS 教程 (`codecatalyst-eks-user`)。完成该教程的[步骤 1：设置开发机器](deploy-tut-eks.md#deploy-tut-eks-dev-env-create)后，您应该已经配置了这些项。
**注意**  
如果您没有这些信息，请转至 IAM Identity Center 中的 `codecatalyst-eks-user` 详细信息页面，选择**重置密码**和**生成一次性密码 [...]**，然后再次选择**重置密码**以在屏幕上显示信息。

1. 请执行以下操作之一：
   + 将 AWS 访问门户 URL 粘贴到浏览器的地址栏中。

     Or
   + 如果 AWS 访问门户页面已加载，请刷新该页面。

1. 如果您尚未登录，请使用 `codecatalyst-eks-user` 的用户名和密码登录。

1. 选择 **AWS 账户**，然后选择您为其分配了 `codecatalyst-eks-user` 用户和权限集的 AWS 账户 的名称。

1. 在权限集名称（`codecatalyst-eks-permission-set`）旁边，选择**命令行访问或以编程方式访问**。

1. 复制页面中间的命令。其内容与以下内容类似：

   ```
   export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
   export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
   export AWS_SESSION_TOKEN="session-token"
   ```

   ... 其中*session-token*是一个长随机字符串。

1. 将命令粘贴到开发计算机上的终端提示中，然后按 Enter。

   新密钥和会话令牌已加载。

   现在，您已经刷新了凭证。 AWS CLI`eksctl`、和`kubectl`命令现在应该可以正常工作了。

## 如何修复“无法连接到服务器”错误？
<a name="troubleshooting-workflows-unable-connect-eks"></a>

**问题**：在完成[教程：将应用程序部署到 Amazon EKS](deploy-tut-eks.md) 中描述的教程时，您在开发计算机的终端窗口中看到类似以下内容的错误消息：

`Unable to connect to the server: dial tcp: lookup long-string.gr7.us-west-2.eks.amazonaws.com on 1.2.3.4:5: no such host`

**可能的修复方法：**

此错误通常表示 `kubectl` 实用程序用于连接到 Amazon EKS 集群的凭证已过期。要解决此问题，请在终端提示符处输入以下命令来刷新凭证：

```
aws eks update-kubeconfig --name codecatalyst-eks-cluster --region us-west-2
```

其中：
+ *codecatalyst-eks-cluster*将替换为您的 Amazon EKS 集群的名称。
+ *us-west-2*将替换为部署集群的 AWS 区域。

## 为什么可视化编辑器中缺少 CodeDeploy 字段？
<a name="troubleshooting-workflows-codedeploy"></a>

**问题**：您正在使用 “[部署到 Amazon ECS](deploy-action-ecs.md)” 操作，但在工作流程的可视化编辑器**CodeDeploy AppSpec**中看不到诸如此类的 CodeDeploy 字段。之所以出现此问题，可能是因为您在**服务**字段中指定的 Amazon ECS 服务未配置为执行蓝绿部署。

**可能的修复方法：**
+ 在**部署到 Amazon ECS** 操作的**配置**选项卡上选择其它 Amazon ECS 服务。有关更多信息，请参阅 [使用工作流部署到 Amazon ECS](deploy-action-ecs.md)。
+ 配置所选的 Amazon ECS 服务以执行 blue/green 部署。有关配置 blue/green 部署的更多信息，请参阅 A *mazon 弹性容器服务开发人员*指南 CodeDeploy中的[蓝/绿部署](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)。

## 如何修复 IAM 功能错误？
<a name="troubleshooting-workflows-capabilities"></a>

**问题**：您正在使用[部署 CloudFormation 堆栈](deploy-action-cfn.md)操作，并且可以在**部署 CloudFormation 堆栈**操作的日志`##[error] requires capabilities: [capability-name]`中看到。

**可能的修复方法**：完成以下步骤，将该功能添加到工作流定义文件中。有关 IAM 功能的更多信息，请参阅 [IAM *用户指南中的在 CloudFormation 模板中确认 IAM* 资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)。

------
#### [ Visual ]

**使用可视化编辑器添加 IAM 功能**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择**可视化**。

1. 在工作流图表中，选择**部署 CloudFormation 堆栈**操作。

1. 选择**配置**选项卡。

1. 在底部，选择**高级 - 可选**。

1. 在**功能**下拉列表中，选中错误消息中提到的功能旁边的复选框。如果列表中没有该功能，请使用 YAML 编辑器添加该功能。

1. （可选）选择**验证**，在提交之前验证工作流的 YAML 代码。

1. 选择**提交**，输入提交消息，然后再次选择**提交**。

1. 如果新的工作流运行未自动启动，请手动运行工作流以查看更改是否修复了错误。有关手动运行工作流的更多信息，请参阅[手动启动工作流运行](workflows-manually-start.md)。

------
#### [ YAML ]

**使用 YAML 编辑器添加 IAM 功能**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择 **YAML**。

1. 在 “**部署 CloudFormation 堆栈**” 操作中，添加一个`capabilities`属性，如下所示：

   ```
   DeployCloudFormationStack:
     Configuration:
       capabilities: capability-name
   ```

   *capability-name*替换为错误消息中显示的 IAM 功能的名称。使用逗号来列出多个功能（不含空格）。有关更多信息，请参阅['部署 CloudFormation 堆栈'动作 YAML](deploy-action-ref-cfn.md)中对 `capabilities` 属性的说明。

1. （可选）选择**验证**，在提交之前验证工作流的 YAML 代码。

1. 选择**提交**，输入提交消息，然后再次选择**提交**。

1. 如果新的工作流运行未自动启动，请手动运行工作流以查看更改是否修复了错误。有关手动运行工作流的更多信息，请参阅[手动启动工作流运行](workflows-manually-start.md)。

------

## 如何修复“npm install”错误？
<a name="troubleshooting-workflows-npm"></a>

**问题**：[AWS CDK 部署操作](cdk-dep-action.md)或 [AWS CDK 引导操作](cdk-boot-action.md)因 `npm install` 错误而失败。之所以发生此错误，可能是因为您将 AWS CDK 应用程序依赖项存储在操作无法访问的私有节点包管理器 (npm) 注册表中。

**可能的修复方法**：按照以下说明使用其他注册表和身份验证信息更新 AWS CDK 应用程序的`cdk.json`文件。

**开始前的准备工作**

1. 为您的身份验证信息创建密钥。您将在 `cdk.json` 文件中引用这些密钥，而不是提供等效的明文信息。要创建密钥，请执行以下操作：

   1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

   1. 选择您的项目。

   1. 在导航窗格中，选择 **CI/CD**，然后选择**密钥**。

   1. 创建两个具有以下属性的密钥：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      有关密钥的更多信息，请参阅[使用密钥遮蔽数据](workflows-secrets.md)。

1. 将密钥作为环境变量添加到您的 AWS CDK 操作中。该操作将在运行时用实际值替换变量。要添加密钥，请执行以下操作：

   1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

   1. 选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

   1. 选择**编辑**。

   1. 选择**可视化**。

   1. 在工作流程图中，选择您的 AWS CDK 操作。

   1. 选择**输入**选项卡。

   1. 添加两个具有以下属性的变量：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      现在，您有两个包含对密钥的引用的变量。

   工作流定义文件 YAML 代码应该类似于以下内容：
**注意**  
下面的代码示例来自 **AWS CDK 引导**操作；**AWS CDK 部署**操作与此类似。

   ```
   Name: CDK_Bootstrap_Action
   SchemaVersion: 1.0
   Actions:
     CDKBootstrapAction:
       Identifier: aws/cdk-bootstrap@v2
       Inputs:
         Variables:
           - Name: NPMUSER
             Value: ${Secrets.npmUsername}
           - Name: NPMTOKEN
             Value: ${Secrets.npmAuthToken}
         Sources:
           - WorkflowSource
       Environment:
         Name: Dev2
         Connections:
           - Name: account-connection
             Role: codecatalystAdmin
       Configuration:
         Parameters:
           Region: "us-east-2"
   ```

   现在，您已准备好在 `cdk.json` 文件中使用 `NPMUSER` 和 `NPMTOKEN` 变量了。继续下一过程。

**更新 cdk.json 文件**

1. 切换到 AWS CDK 项目的根目录，然后打开该`cdk.json`文件。

1. 找到该`"app":`属性，然后将其更改为包含如下所示的代码*red italics*：
**注意**  
以下示例代码来自一个 TypeScript 项目。如果您使用的是 JavaScript 项目，则代码看起来很相似，但并不相同。

   ```
   {
     "app": "npm set registry=https://your-registry/folder/CDK-package/ --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:always-auth=true --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:_authToken=\"${NPMUSER}\":\"${NPMTOKEN}\" && npm install  && npx ts-node --prefer-ts-exts bin/hello-cdk.ts|js",
     "watch": {
       "include": [
         "**"
       ],
       "exclude": [
         "README.md",
         "cdk*.json",
         "**/*.d.ts",
         "**/*.js",
         "tsconfig.json",
         "package*.json",
   ...
   ```

1. 在中突出显示的代码中*red italics*，替换：
   + *your-registry/folder/CDK-package/*在私有注册表中包含 AWS CDK 项目依赖关系的路径。
   + *hello-cdk.ts\$1.js*使用您的入口点文件的名称。这可能是 `.ts` (TypeScript) 或 `.js` (JavaScript) 文件，具体取决于你使用的语言。
**注意**  
该操作会将*NPMUSER*和*NPMTOKEN*变量替换为您在 S **ec** rets 中指定的 npm 用户名和访问令牌。

1. 保存 `cdk.json` 文件。

1. 手动重新运行该操作以查看更改是否修复了错误。有关手动运行操作的更多信息，请参阅[手动启动工作流运行](workflows-manually-start.md)。

## 为什么多个工作流具有相同的名称？
<a name="troubleshooting-workflows-name"></a>



工作流存储在每个存储库的每个分支上。如果两个不同的工作流存在于不同的分支中，则它们可以具有相同的名称。在“工作流”页面中，您可以通过查看分支名称来区分同名工作流。有关更多信息，请参阅 [使用 Amazon 中的分支来整理源代码 CodeCatalyst](source-branches.md)。

![\[工作流分支\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/images/flows/workflow-branch.png)


## 能否将我的工作流定义文件存储在另一个文件夹中？
<a name="troubleshooting-workflows-folder"></a>

否，必须将所有工作流定义文件存储在 `.codecatalyst/workflows` 文件夹或该文件夹的子文件夹中。如果您使用的是包含多个逻辑项目的单一存储库，请将所有工作流定义文件放在 `.codecatalyst/workflows` 文件夹或其子文件夹中，然后使用触发器中的**文件已更改**字段（可视化编辑器）或 `FilesChanged` 属性（YAML 编辑器）在指定的项目路径上自动触发工作流。有关更多信息，请参阅[添加触发器到工作流](workflows-add-trigger-add.md)和[示例：带有推送、分支和文件的触发器](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-multi)。

## 如何按顺序向我的工作流中添加操作？
<a name="troubleshooting-workflows-visual"></a>

默认情况下，当您向工作流中添加操作时，该操作没有依赖关系，将与其它操作并行运行。

如果要按顺序排列操作，可以通过设置 `DependsOn` 字段来设置对另一个操作的依赖关系。您还可以将操作配置为使用作为其它操作输出的构件或变量。有关更多信息，请参阅 [顺序操作](workflows-depends-on.md)。

## 为什么我的工作流成功验证但在运行时失败？
<a name="troubleshooting-workflows-validation"></a>

如果您使用 `Validate` 按钮验证了工作流，但工作流还是失败了，这可能是因为验证器存在限制。

在提交过程中，在工作流程配置中引用密钥、环境或队列等 CodeCatalyst 资源时出现的任何错误都不会被记录下来。如果使用了任何无效的引用，则只有在运行工作流时才会发现错误。同样，如果操作配置中存在任何错误，例如缺少必需字段或操作属性拼写错误，则只有在运行工作流时才会发现错误。有关更多信息，请参阅 [创建工作流](workflows-create-workflow.md)。

## 自动发现功能未发现我的操作的任何报告
<a name="troubleshooting-reports-auto-discovery"></a>

**问题：**我为运行测试的操作配置了自动发现，但未发现任何报告。 CodeCatalyst

**可能的修复方法：**这可能是由许多问题引起的。尝试以下一种或多种解决方案：
+ 确保用于运行测试的工具以一种可以 CodeCatalyst 理解的格式生成输出。例如，如果您想`pytest` CodeCatalyst 允许发现测试和代码覆盖率报告，请包含以下参数：

  ```
  --junitxml=test_results.xml --cov-report xml:test_coverage.xml
  ```

  有关更多信息，请参阅 [质量报告类型](test-workflow-actions.md#test-reporting)。
+ 确保输出的文件扩展名与所选格式一致。例如，当配置 `pytest` 以 `JUnitXML` 格式生成结果时，请检查文件扩展名是否为 `.xml`。有关更多信息，请参阅 [质量报告类型](test-workflow-actions.md#test-reporting)。
+ 确保 `IncludePaths` 配置为包含整个文件系统（`**/*`），除非您有意排除某些文件夹。同样，确保 `ExcludePaths` 不排除您希望报告所在的目录。
+ 如果您手动将报告配置为使用特定的输出文件，则该报告将排除在自动发现之外。有关更多信息，请参阅 [质量报告 YAML 示例](test-config-action.md#test.success-criteria-example)。
+ 自动发现功能可能找不到报告，因为操作在生成任何输出之前就失败了。例如，构建操作可能在运行任何单元测试之前就失败了。

## 配置成功标准后，我对自动发现的报告执行操作失败
<a name="troubleshooting-success-auto-discovery"></a>

**问题：**当我启用自动发现并配置成功标准时，有些报告不符合成功标准，因此操作失败。

**可能的修复方法：**要解决此问题，请尝试以下一种或多种解决方案：
+ 修改 `IncludePaths` 或 `ExcludePaths` 以排除您不感兴趣的报告。
+ 更新成功标准以使所有报告能够通过。例如，如果发现两份报告，其中一份的行覆盖率为 50%，另一份的行覆盖率为 70%，则将最小行覆盖率调整为 50%。有关更多信息，请参阅 [成功标准](test-best-practices.md#test.best-success-criteria)。
+ 将失败的报告转换为手动配置的报告。这使您能够为该特定报告配置不同的成功标准。有关更多信息，请参阅 [配置报告的成功标准](test-config-action.md#test.success-criteria)。

## 自动发现功能生成我不想要的报告
<a name="troubleshooting-unwanted-auto-discovery"></a>

**问题：**当我启用自动发现功能时，该功能生成我不想要的报告。例如，为存储在我的应用程序依赖项中的文件 CodeCatalyst 生成代码覆盖率报告`node_modules`。

**可能的修复方法：**您可以调整 `ExcludePaths` 配置以排除不需要的文件。例如，要排除 `node_modules`，请添加 `node_modules/**/*`。有关更多信息，请参阅 [包含/排除路径](test-best-practices.md#test.best-include-exclude)。

## 自动发现功能为单个测试框架生成许多小报告
<a name="troubleshooting-reports-combined"></a>

**问题：**当我使用某些测试和代码覆盖率报告框架时，我注意到自动发现功能生成大量报告。例如，在使用 [Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) 时，自动发现功能为每个测试类生成不同的报告。

**可能的修复方法：**您的框架也许能够将输出聚合到单个文件中。例如，如果您使用的是 Maven Surefire Plugin，则可以使用 `npx junit-merge` 手动聚合文件。完整的表达式可能如下所示：

```
mvn test; cd test-package-path/surefire-reports && npx junit-merge -d ./ && rm *Test.xml
```

## 下面列出的工作流程与源存储库中的工作流程 CI/CD 不匹配
<a name="troubleshooting-workflow-source"></a>

**问题：****CI/CD** 的**工作流**页面上显示的工作流与[源存储库](source.md)的 `~/.codecatalyst/workflows/` 文件夹中的工作流不匹配。您可能会看到以下不匹配情况：
+ 一个工作流显示在**工作流**页面上，但源存储库中不存在相应的工作流定义文件。
+ 源存储库中存在工作流定义文件，但相应的工作流未显示在**工作流**页面上。
+ 源存储库和**工作流**页面中都存在一个工作流，但两者不同。

如果**工作流**页面没有时间刷新，或者超过了工作流配额，则可能会出现此问题。

**可能的修复方法：**
+ 等待。在提交到源后，您通常需要等待两三秒钟才能在**工作流**页面上看到更改。
+ 如果您已超过工作流配额，请执行以下操作之一：
**注意**  
要确定是否超过了工作流配额，请查看 [中的工作流程配额 CodeCatalyst](workflows-quotas.md)，并将记录的配额与源存储库中或**工作流**页面上的工作流进行交叉检查。没有错误消息表明已超出配额，因此您必须自行调查。
  + 如果您已超过**每个空间的最大工作流数**配额，请删除一些工作流，然后对工作流定义文件执行测试提交。测试提交的一个例子可能是在文件中添加一个空格。
  + 如果您已超过**最大工作流定义文件大小**配额，请更改工作流定义文件以缩短其长度。
  + 如果您已超过**单个源事件中处理的最大工作流文件数**配额，请执行多次测试提交。修改为少于每次提交的最大工作流数。

## 我无法创建或更新工作流
<a name="troubleshooting-workflows-branchrules"></a>

**问题：**我想创建或更新工作流，但当我尝试提交更改时出现错误。

**可能的修复方法：**根据您在项目或空间中的角色，您可能无权将代码推送到项目中的源存储库。工作流的 YAML 文件存储在存储库中。有关更多信息，请参阅 [工作流定义文件](workflows-concepts.md#workflows-concepts-workflows-def)。**空间管理员**角色、**项目管理员**角色和**贡献者**角色都有权将代码提交和推送到项目中的存储库。

如果您具有**贡献者**角色，但无法在特定分支中创建或提交对工作流 YAML 的更改，则可能是为该分支配置了分支规则，阻止拥有该角色的用户向该特定分支推送代码。尝试在不同的分支中创建工作流，或者将您的更改提交到其它分支。有关更多信息，请参阅 [使用分支规则管理分支允许的操作](source-branches-branch-rules.md)。

# 排查事务问题
<a name="troubleshooting-issues"></a>

以下信息可以帮助您解决中的常见问题 CodeCatalyst。

**Topics**
+ [我无法为我的事务选择受让人](#troubleshooting-issues-assignees)

## 我无法为我的事务选择受让人
<a name="troubleshooting-issues-assignees"></a>

**问题：**创建事务时，受让人列表为空。

**可能的修复方法：**受托人列表直接链接到列为项目成员的 CodeCatalyst 用户。要验证用户个人资料访问是否正常运行，请选择配置文件图标，然后选择**用户个人资料**。如果用户个人资料信息未填充，请检查运行状况报告是否存在任何事件。如果这些信息已填充，请提交服务单。

# 疑难解答中搜索的问题 CodeCatalyst
<a name="troubleshooting-search"></a>

要解决与搜索有关的问题，请参阅以下章节 CodeCatalyst。有关工作流的更多信息，请参阅[在 CodeCatalyst 中搜索代码、事务、项目和用户搜索代码、事务、项目和用户](search.md)。

**Topics**
+ [我在项目中找不到用户](#troubleshooting-search-users)
+ [我在项目或空间中找不到想要的内容](#troubleshooting-missing-results)
+ [当我浏览页面时，搜索结果的数量不断变化](#troubleshooting-search-results)
+ [我的搜索查询未完成](#troubleshooting-requests-limits)

## 我在项目中找不到用户
<a name="troubleshooting-search-users"></a>

**问题：**当我尝试查看用户的详细信息时，我在项目中看不到用户信息。

**可能的修复方法：**搜索功能目前不支持在项目中搜索用户。要搜索有权访问您的空间的用户，请切换到 “**此空间**” QuickSearch，或者移除您可能使用高级查询语言指定的任何项目筛选器。

## 我在项目或空间中找不到想要的内容
<a name="troubleshooting-missing-results"></a>

**问题：**当我尝试搜索特定信息时，结果不出现。

**可能的修复方法：**内容更新可能需要几秒钟才能在搜索结果中更新。大型更新可能需要几分钟时间。

对于最近未更新的资源，您可能需要优化搜索。您可以通过添加更多关键字或使用高级查询语言进行优化。有关优化查询的更多信息，请参阅[细化搜索查询](search.md#search-query-language-examples)。

## 当我浏览页面时，搜索结果的数量不断变化
<a name="troubleshooting-search-results"></a>

**问题：**当我转到下一页时，搜索结果的数量似乎发生了变化，因此不清楚总共有多少结果。

**可能的修复方法：**在浏览搜索结果页面时，您可能会看到与您的查询匹配的搜索结果数量发生了变化。结果数量可能会更新，以反映您在浏览页面时发现的更准确的匹配项数量。

当您浏览结果时，您可能会看到以下消息：**No results for "test"**。如果您无权访问其余结果，则会收到此消息。

## 我的搜索查询未完成
<a name="troubleshooting-requests-limits"></a>

**问题：**我的搜索查询结果没有显示，而且似乎花了太长时间。

**可能的修复方法：**当空间中同时进行许多搜索时，无论是程序性的还是由于团队活动频繁，您的搜索可能无法完成。如果您正在运行程序化搜索，请暂停或减少搜索。否则，几秒钟后再试一次。

# 排查扩展问题
<a name="troubleshooting-extensions"></a>

要解决中与扩展相关的问题，请参阅以下章节 CodeCatalyst。有关扩展的更多信息，请参阅[为带有扩展程序的项目添加功能 CodeCatalyst使用扩展向项目添加功能](extensions.md)。

**Topics**
+ [我看不到对链接的第三方存储库的更改，也无法搜索这些更改的结果](#troubleshooting-detect-3p-changes)

## 我看不到对链接的第三方存储库的更改，也无法搜索这些更改的结果
<a name="troubleshooting-detect-3p-changes"></a>

**问题：**我的第三方存储库中的更改未显示在。 CodeCatalyst

**可能的修复：** CodeCatalyst 目前不支持检测链接仓库的默认分支中的更改。要更改链接存储库的默认分支，必须先取消其与该分支的链接 CodeCatalyst，更改默认分支，然后再次进行链接。有关更多信息，请参阅 [在中关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-link.md)。

# 排查与您的空间关联的账户问题
<a name="troubleshooting-connections"></a>

在中 CodeCatalyst，您可以 AWS 账户 向空间添加以授予资源权限和计费。以下信息可以帮助您解决中关联账户的常见问题 CodeCatalyst。

**Topics**
+ [我的 AWS 账户 连接请求收到一个无效的令牌错误](#troubleshooting-connection-token)
+ [我的 Amazon CodeCatalyst 项目工作流程失败，配置的账户、环境或 IAM 角色出现错误](#connections-troubleshoot-workflow)
+ [我需要一个关联的账户、角色和环境来创建项目](#connections-troubleshoot-environment)
+ [我无法访问中的 Amazon CodeCatalyst Spaces 页面 AWS 管理控制台](#connections-troubleshoot-console)
+ [我想要一个不同的账户作为计费账户](#connections-troubleshoot-billing)
+ [我的项目工作流因连接名称错误而失败](#connections-troubleshoot-restriction)

## 我的 AWS 账户 连接请求收到一个无效的令牌错误
<a name="troubleshooting-connection-token"></a>

**问题：**使用连接令牌创建连接请求时，页面不接受令牌并显示错误，说明令牌无效。

**可能的修复方法：**确保提供您要添加到空间的账户 ID。您必须拥有自己的管理权限 AWS 账户 或能够与您的管理员合作才能添加帐户。

选择验证账户后， AWS 管理控制台中将打开一个新的浏览器窗口。在控制台端登录时需要使用同一账户。验证以下内容后再试一次：
+ 您已 AWS 管理控制台 使用要添加到空间 AWS 账户 的相同信息登录。
+ 您登录时将 “区域” 设置为 AWS 管理控制台 与您的空间对应的正确区域。
+ 如果您从计费页面进入，并希望将 AWS 账户 添加为空间的指定计费账户，请确保该账户作为其它一个或多个空间的计费账户没有达到配额。

## 我的 Amazon CodeCatalyst 项目工作流程失败，配置的账户、环境或 IAM 角色出现错误
<a name="connections-troubleshoot-workflow"></a>

**问题：**如果工作流运行时没有找到与空间相关联的已配置账户或 IAM 角色，则必须在工作流 YAML 中手动填写角色、连接和环境字段。查看失败的工作流操作，并注意错误消息是否如下：
+ 角色不适用于与环境关联的连接。
+ 操作失败。状态：“失败”；为账户连接或环境提供的值无效。确认连接与您的空间关联，并且环境与您的项目关联。
+ 操作失败。状态：“失败”；为 IAM 角色提供的值无效。验证名称是否存在，IAM 角色已添加到您的账户连接中，并且该连接已与您的 Amazon CodeCatalyst 空间关联

**可能的修复方法：**确保工作流 YAML 字段中的[环境](build-action-ref.md#build.environment)、[连接](build-action-ref.md#build.environment.connections)和[角色](build-action-ref.md#build.environment.connections.role)值准确无误。需要环境 CodeCatalyst 的工作流程操作是运行 AWS 资源或生成 AWS 资源堆栈的生成或部署操作。

选择失败的工作流操作块，然后选择**可视化**。选择**配置**选项卡。如果未填写**环境**、**连接名称**和**角色名称**字段，则需要手动更新工作流。使用以下步骤编辑工作流 YAML：
+ 展开 `/.codecatalyst` 目录，然后展开 `/workflows` 目录。打开工作流 YAML 文件。确保在您为工作流配置的 YAML 中指定了 IAM 角色和账户信息。示例：

  ```
  Actions:
    cdk_bootstrap:
      Identifier: action-@v1
      Inputs:
        Sources:
          - WorkflowSource
      Environment:
        Name: Staging
        Connections:
          - Name: account-connection
            Role: build-role
  ```

  使用 AWS 资源运行 CodeCatalyst 工作流程生成**和部署操作需要环境、连接和角色**属性。有关示例，请参阅[环境](build-action-ref.md#build.environment)、[连接](build-action-ref.md#build.environment.connections)和[角色](build-action-ref.md#build.environment.connections.role)的 CodeCatalyst 构建操作参考 YAML 参数。
+ 确保您的空间中添加了一个账户，并确保该账户中添加了一个或多个适当的 IAM 角色。如果您拥有**空间管理员**角色，则可以调整或添加账户。有关更多信息，请参阅 [允许在已连接的情况下访问 AWS 资源 AWS 账户](ipa-connect-account.md)。

## 我需要一个关联的账户、角色和环境来创建项目
<a name="connections-troubleshoot-environment"></a>

**问题：**在项目创建选项中，我的项目在空间中没有添加可用的账户，或者我需要在空间中添加另一个账户以供项目使用。

**可能的修复方法：**对于您的空间，如果您具有**空间管理员**角色，则可以添加已授权 AWS 账户 将其添加到您的项目中。您还必须拥有一个具有管理权限或可以与 AWS 管理员合作处理的 AWS 账户 。

要确保账户和角色在项目创建屏幕中可用，必须首先添加账户和角色。有关更多信息，请参阅 [允许在已连接的情况下访问 AWS 资源 AWS 账户](ipa-connect-account.md)。

您可以选择使用名为 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色策略的角色策略来创建服务角色。该角色的名称为 `CodeCatalystWorkflowDevelopmentRole-spaceName`，并且将附加唯一标识符。有关角色和角色策略的更多信息，请参阅[了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色](ipa-iam-roles.md#ipa-iam-roles-service-role)。有关创建角色的步骤，请参阅[为您的账户和空间创建 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色](ipa-iam-roles.md#ipa-iam-roles-service-create)。该角色已添加到您的账户，可在中的项目创建页面中找到 CodeCatalyst。

## 我无法访问中的 Amazon CodeCatalyst Spaces 页面 AWS 管理控制台
<a name="connections-troubleshoot-console"></a>

**问题：**当我尝试访问中的 Amazon CodeCatalyst 页面 AWS 管理控制台 以向我的 CodeCatalyst 空间添加账户或向中的账户添加角色时 AWS，我收到权限错误。

**可能的修复方法：**

对于您的空间，如果您具有**空间管理员**角色，则可以添加已授权 AWS 账户 将其添加到您的项目中。您还必须拥有一个具有管理权限或可以与 AWS 管理员合作处理的 AWS 账户 。您必须首先确保使用您想要管理 AWS 管理控制台 的相同账户登录。登录后 AWS 管理控制台，您可以打开控制台并重试。

在[https://us-west-2.console.aws.amazon.com/codecatalyst/家中打开 Amazon CodeCatalyst 页面？ AWS 管理控制台 region=us-west](https://us-west-2.console.aws.amazon.com/codecatalyst/home?region=us-west-2#/) -2\$1/。

## 我想要一个不同的账户作为计费账户
<a name="connections-troubleshoot-billing"></a>

**问题：**当我设置 CodeCatalyst 登录名时，我完成了几个步骤来设置我的空间并关联已获得授权的人 AWS 账户。现在，我想授权另一个账户进行计费。

**可能的修复方法：**对于您的空间，如果您具有**空间管理员**角色，则可以授权计费账户。您还必须拥有一个拥有管理权限或可以与 AWS 管理员合作 AWS 账户 的地方。

有关更多信息，请参阅《Amazon CodeCatalyst 管理员指南》中的[管理账单](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-billing.html)。

## 我的项目工作流因连接名称错误而失败
<a name="connections-troubleshoot-restriction"></a>

**问题：**创建项目然后运行项目工作流时，工作流失败并显示错误，指出连接名称无效，如下所示：

<action\$1name> 失败：连接名称无效。

**可能的修复方法：**确保提供要添加到空间的账户 ID，并确保该账户未启用受项目限制的账户连接。如果该账户启用了受项目限制的账户连接，则您可能需要通过启用对新项目的访问权限来更新账户连接。有关更多信息，请参阅 [Configuring project-restricted account connections](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts.html#managing-accounts-restriction)。

# 排查 Amazon CodeCatalyst 与 AWS SDK 或 AWS CLI 之间的问题
<a name="troubleshooting-cli-sdk"></a>

以下信息有助于您排查在使用 CodeCatalyst 和 AWS CLI 或 AWS SDK 时遇到的常见问题。

**Topics**
+ [在命令行或终端输入 **aws codecatalyst** 时，我收到一个错误，提示选择无效。](#cli-sdk-troubleshoot-no-commands)
+ [运行 **aws codecatalyst** 命令时，我收到一个凭证错误](#cli-sdk-troubleshoot-profile)

## 在命令行或终端输入 **aws codecatalyst** 时，我收到一个错误，提示选择无效。
<a name="cli-sdk-troubleshoot-no-commands"></a>

**问题：**当我尝试将 AWS CLI 与 CodeCatalyst 一起使用时，一个或多个 **aws codecatalyst** 命令未被识别为有效。

**解决方案：**导致此问题的最常见原因是您使用的 AWS CLI 版本不包含最新服务和命令的最新更新。更新 AWS CLI 的安装，然后重试。有关更多信息，请参阅 [设置为 AWS CLI 与一起使用 CodeCatalyst](set-up-cli.md)。

## 运行 **aws codecatalyst** 命令时，我收到一个凭证错误
<a name="cli-sdk-troubleshoot-profile"></a>

**问题：**当我尝试将 AWS CLI 与 CodeCatalyst 一起使用时，我收到一条消息，提示 `You can configure credentials by running "aws configure".` 或 `Unable to locate authorization token`。

**解决方案：**您必须配置 AWS CLI 配置文件才能使用 CodeCatalyst 命令。有关更多信息，请参阅 [设置为 AWS CLI 与一起使用 CodeCatalyst](set-up-cli.md)。