2024 年 7 月 31 日,亚马逊 Web Services (AWS) 将停止支持创建和查看 AWS CodeStar 项目。2024 年 7 月 31 日之后,您将无法再访问 AWS CodeStar 控制台或创建新项目。但是,由 AWS CodeStar创建的 AWS 资源(包括您的源存储库、管道和构建)将不受此更改的影响,并将继续运行。 AWS CodeStar 此次停用不会影响连接和 AWS CodeStar 通知。
如果您想跟踪工作、开发代码以及构建、测试和部署应用程序,Amazon CodeCatalyst 提供了简化的入门流程和其他功能来管理您的软件项目。详细了解 Amazon 的功能
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除 AWS CodeStar
以下信息可帮助您处理 AWS CodeStar中的常见问题。
主题
- 项目创建失败:未创建项目
- 项目创建:我在创建项目的过程中尝试编辑 Amazon EC2 配置时,出现一个错误
- 项目删除: AWS CodeStar 项目已删除,但资源仍然存在
- 团队管理失败:无法将 IAM 用户添加到 AWS CodeStar 项目中的团队中
- 访问失败:联合用户无法访问 AWS CodeStar 项目
- 访问失败:联合用户无法访问或创建 AWS Cloud9 环境
- 访问失败:联合用户可以创建 AWS CodeStar 项目,但无法查看项目资源
- 服务角色问题:无法创建服务角色
- 服务角色问题:服务角色无效或缺失
- 项目角色问题: AWS CodeStar 项目中实例的运行 AWS Elastic Beanstalk 状况检查失败
- 项目角色问题:项目角色无效或缺失
- 项目扩展:无法连接到 JIRA
- GitHub: 无法访问仓库的提交历史记录、问题或代码
- AWS CloudFormation:由于缺少权限,堆栈创建已回滚
- AWS CloudFormation 无权在 Lambda PassRole 上执行 iam: 执行角色
- 无法为 GitHub 存储库创建连接
项目创建失败:未创建项目
问题:在尝试创建项目时,您看到一条指出创建失败的消息。
可能的修复措施:导致失败的最常见原因有:
-
您的 AWS 账户中已存在具有该 ID 的项目,可能位于其他 AWS 区域。
-
您用于登录的 IAM 用户 AWS Management Console 没有创建项目所需的权限。
-
AWS CodeStar 服务角色缺少一个或多个必需的权限。
-
您已达到项目一个或多个资源的最大限制(例如 IAM、Amazon S3 存储桶或中的管道中的客户托管策略的限制 CodePipeline)。
在创建项目之前,请验证您是否已将 AWSCodeStarFullAccess
策略应用于您的 IAM 用户。有关更多信息,请参阅 AWSCodeStarFullAccess 政策。
在创建项目时,请确保 ID 是唯一的,并且满足 AWS CodeStar 要求。请务必选中 “AWS CodeStar 希望获得代表您管理 AWS 资源的权限” 复选框。
要解决其他问题,请打开 AWS CloudFormation 控制台,为尝试创建的项目选择堆栈,然后选择 “事件” 选项卡。一个项目可能有多个堆栈。堆栈名称以 awscodestar-
开头,后跟项目 ID。堆栈可能位于 Deleted 筛选视图下。查看堆栈事件中的任何失败消息并纠正作为这些失败的原因列出的问题。
项目创建:我在创建项目的过程中尝试编辑 Amazon EC2 配置时,出现一个错误
问题:在项目创建过程中编辑 Amazon EC2 配置选项时,您看到一条错误消息或灰显选项,并且无法继续创建项目。
可能的修复措施:导致错误消息的最常见原因有:
-
AWS CodeStar 项目模板中的 VPC(默认 VPC 或编辑 Amazon EC2 配置时使用的那个)具有专用实例租期,专用实例不支持该实例类型。请选择另一个实例类型或另一个 Amazon VPC。
-
您的 AWS 账户没有亚马逊 VPC。您可能已删除默认 VPC,并且未创建任何其他 VPC。通过 https://console.aws.amazon.com/vpc/
打开 Amazon VPC 控制台,选择您的 VPC,并确保至少配置了一个 VPC。如果没有 VPC,请创建一个 VPC。有关更多信息,请参阅 Amazon Virtual Private Cloud 概览 中的 Amazon VPC 入门指南。 -
Amazon VPC 没有任何子网。请选择另一个 VPC,或者为该 VPC 创建子网。有关更多信息,请参阅 VPC 和子网基础知识。
项目删除: AWS CodeStar 项目已删除,但资源仍然存在
问题: AWS CodeStar 项目已删除,但为该项目创建的资源仍然存在。默认情况下, AWS CodeStar 删除项目时会删除项目资源。即使用户选中删除资源复选框,某些资源(例如 Amazon S3 存储桶)也将保留,因为存储桶可能包含数据。
可能的修复方法:打开AWS CloudFormation 控制台awscodestar-
开头,后跟项目 ID。这些堆栈可能位于 Deleted 筛选视图下。查看与堆栈关联的事件以发现为项目创建的资源。在您创建 AWS CodeStar 项目的 AWS 区域中打开每个资源的控制台,然后手动删除这些资源。
可能保留的项目资源包括:
-
Amazon S3 中的一个或多个项目存储桶。与其他项目资源不同,选中 “随项目一起删除关联的 AWS 资源” 复选框时,Amazon S3 中的 AWS CodeStar 项目存储桶不会被删除。
打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/
。 -
中项目的源存储库 CodeCommit。
打开 CodeCommit 控制台,网址为 https://console.aws.amazon.com/codecommit/
。 -
用于您的项目的管道 CodePipeline。
打开 CodePipeline 控制台,网址为 https://console.aws.amazon.com/codepipeline/
。 -
中的应用程序和关联的部署组 CodeDeploy。
打开 CodeDeploy 控制台,网址为 https://console.aws.amazon.com/codedeploy/
。 -
AWS Elastic Beanstalk中的应用程序和关联的环境。
从 https://console.aws.amazon.com/elasticbeanstalk/
打开 Elastic Beanstalk 控制台。 -
AWS Lambda中的函数。
打开 AWS Lambda 控制台,网址为 https://console.aws.amazon.com/lambda/
。 -
API Gateway 中的一个或多个 API。
打开 API Gateway 控制台,网址为:https://console.aws.amazon.com/apigateway/
。 -
IAM 中的一个或多个 IAM 策略或角色。
登录 AWS Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/
。 -
Amazon EC2 中的一个实例。
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
中的一个或多个开发环境 AWS Cloud9。
要查看、访问和管理开发环境,请打开 AWS Cloud9 控制台,网址为 https://console.aws.amazon.com/cloud9/
。
如果您的项目使用的是外部资源 AWS (例如, GitHub 存储库或 Atlassian JIRA 中的议题),则即使选中了 “随 CodeStar 项目一起删除关联的资源” 复选框,这些 AWS 资源也不会被删除。
团队管理失败:无法将 IAM 用户添加到 AWS CodeStar 项目中的团队中
问题:在尝试将用户添加到项目时,您看到一条错误消息,指出添加失败。
可能的修复措施:导致该错误的最常见原因是,用户已达到可在 IAM 中向用户应用的托管策略数限制。如果您在尝试添加用户的 AWS CodeStar 项目中没有所有者角色,或者 IAM 用户不存在或已被删除,则也可能会收到此错误。
请确保您以该 AWS CodeStar 项目所有者的用户身份登录。有关更多信息,请参阅 向 AWS CodeStar 项目添加团队成员 。
要排查其他问题,请打开 IAM 控制台,选择您尝试添加的用户,然后检查已向该 IAM 用户应用的托管策略数。
有关更多信息,请参阅 IAM 实体和对象的限制。有关可更改的限制,请参阅 AWS 服务限制。
访问失败:联合用户无法访问 AWS CodeStar 项目
问题:联合用户无法在 AWS CodeStar 控制台中查看项目。
可能的修复措施:如果您以联合身份用户登录,请确保您已将适当的托管策略附加到您登录时代入的角色。有关更多信息,请参阅 将项目的 AWS CodeStar 查看者/贡献者/所有者托管策略附加到联合用户的角色。
通过手动附加策略将联合用户添加到您的 AWS Cloud9 环境中。请参阅 将 AWS Cloud9 托管策略附加到联合用户的角色。
访问失败:联合用户无法访问或创建 AWS Cloud9 环境
问题:联合用户无法在 AWS Cloud9 控制台中查看或创建 AWS Cloud9 环境。
可能的修复措施:如果您以联合身份用户登录,请确保您已将适当的托管策略附加到联合身份用户的角色。
您可以通过手动将策略附加到联合用户的角色来将联合用户添加到您的 AWS Cloud9 环境中。请参阅 将 AWS Cloud9 托管策略附加到联合用户的角色。
访问失败:联合用户可以创建 AWS CodeStar 项目,但无法查看项目资源
问题:联合身份用户能够创建项目,但无法查看项目资源,如项目管道。
可能的修复方法:如果您已附加AWSCodeStarFullAccess
托管策略,则有权在中创建项目 AWS CodeStar。但是,要访问所有项目资源,您必须附加所有者托管策略。
AWS CodeStar 创建项目资源后,所有者、贡献者和查看者管理的策略中将提供对所有项目资源的项目权限。要访问所有资源,您必须手动将所有者策略附加到您的角色。请参阅 步骤 3:配置用户的 IAM 权限。
服务角色问题:无法创建服务角色
问题:当你尝试在中创建项目时 AWS CodeStar,你会看到一条消息,提示你创建服务角色。在选择该选项以创建服务角色时,您看到一条错误。
可能的修复方法:出现此错误的最常见原因是您登录时使用的账户没有足够的权限来创建服务角色。 AWS 要创建 AWS CodeStar 服务角色 (aws-codestar-service-role
),您必须以管理员用户或根账户的身份登录。从控制台注销,然后使用已应用 AdministratorAccess
托管策略的 IAM 用户登录。
服务角色问题:服务角色无效或缺失
问题:打开 AWS CodeStar 控制台时,您会看到一条消息,提示 AWS CodeStar 服务角色缺失或无效。
可能的修复措施:导致该错误的最常见原因是,管理用户已编辑或删除该服务角色 (aws-codestar-service-role
)。如果已删除该服务角色,系统将提示您创建它。您必须以管理用户身份登录或使用根账户登录才能创建该角色。如果该角色已经过编辑,则它将不再有效。以管理用户身份登录 IAM 控制台,在角色列表中找到该服务角色,然后删除它。切换到 AWS CodeStar 控制台并按照说明创建服务角色。
项目角色问题: AWS CodeStar 项目中实例的运行 AWS Elastic Beanstalk 状况检查失败
问题:如果你在 2017 年 9 月 22 日之前创建了一个包含 Elastic Beanstalk 的 AWS CodeStar 项目,那么 Elastic Beanstalk 运行状况检查可能会失败。如果您自创建项目以来尚未更改 Elastic Beanstalk 配置,则运行状况检查失败并报告灰显状态。尽管运行状况检查失败,但您的应用程序仍正常运行。如果您自创建项目以来更改了 Elastic Beanstalk 配置,则运行状况检查失败并且您的应用程序可能无法正常运行。
修复措施:一个或多个 IAM 角色缺少必需的 IAM 策略语句。将缺少的策略添加到 AWS 账户中的受影响角色。
-
登录 AWS Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/
。 (如果您无法执行此操作,请向您的 AWS 账户管理员寻求帮助。)
-
在导航窗格中,选择角色。
-
在角色列表中,选择 CodeStarWorker-
project-ID
-EB,其中Project-ID 是其中一个受影响项目
的 ID。(如果您无法轻松地在列表中找到角色,请在搜索框中输入角色的部分名称或全称。) -
在权限选项卡上,选择附加策略。
-
在策略列表中,选择AWSElasticBeanstalkEnhancedHealth和AWSElasticBeanstalkService。(如果您无法轻松地在列表中找到策略,请在搜索框中输入策略的部分名称或全称。)
-
选择附加策略。
-
对每个名称遵循模式 CodeStarWorker P
roject-ID-
EB 的受影响角色重复步骤 3 到 6。
项目角色问题:项目角色无效或缺失
问题:尝试向项目添加用户时,您看到一条错误消息,指出由于项目角色的策略缺失或无效,该添加失败。
可能的修复措施:导致该错误的最常见原因是,已在 IAM 中编辑或删除一个或多个项目策略。项目策略是 AWS CodeStar 项目所独有的,无法重新创建。无法使用该项目。在中创建项目 AWS CodeStar,然后将数据迁移到新项目。从不可用项目的存储库克隆项目代码,然后将该代码推送至新项目的存储库。将团队 wiki 信息从旧项目复制到新项目。向新项目添加用户。在您确定已迁移所有数据和设置后,删除不可用的项目。
项目扩展:无法连接到 JIRA
问题:当你使用 Atlassian JIRA 扩展程序尝试将 AWS CodeStar 项目连接到 JIRA 实例时,会显示以下消息:“该网址不是有效的 JIRA 网址。验证 URL 是否正确。”
可能的修复措施:
-
请确保 JIRA URL 正确,然后再次尝试连接。
-
可能无法从公共 Internet 访问您的自承载 JIRA 实例。请联系您的网络管理员以确保可从公共 Internet 访问您的 JIRA 实例,然后再次尝试连接。
GitHub: 无法访问仓库的提交历史记录、问题或代码
问题:在存储其代码的项目的仪表板中 GitHub,“提交历史记录” 和 “GitHub问题” 图块显示连接错误,或者在这些图块中选择 “打开” GitHub 或 “创建问题” 会显示错误。
可能的原因:
-
该 AWS CodeStar 项目可能无法再访问 GitHub 存储库。
-
存储库可能已在中删除或重命名 GitHub。
AWS CloudFormation:由于缺少权限,堆栈创建已回滚
在将资源添加到 template.yml
文件后,查看 AWS CloudFormation 堆栈更新是否显示任何错误消息。如果未满足特定条件(例如,缺少所需的资源权限时),堆栈更新将失败。
注意
自 2019 年 5 月 2 日起,我们已经更新了所有现有项目 AWS CloudFormation 的工作人员角色政策。此更新减小了授予您的项目管道的访问权限的范围,以提高项目的安全性。
要进行故障排除,请在 AWS CodeStar 控制面板视图中查看项目管道的故障状态。
接下来,在管道的 “部署” 阶段选择CloudFormation链接,以便在 AWS CloudFormation 控制台中对故障进行故障排除。要查看堆栈创建详细信息,请展开项目的事件列表,然后查看任何失败消息。该消息指出缺少哪些权限。改正 AWS CloudFormation 工作线程角色策略,然后再次执行管道。
AWS CloudFormation 无权在 Lambda PassRole 上执行 iam: 执行角色
如果您在 2018 年 12 月 6 日太平洋夏令时之前创建了一个创建 Lambda 函数的项目,则可能会看到如下 AWS CloudFormation 错误:
User: arn:aws:sts::
id
:assumed-role/CodeStarWorker-project-id
-CloudFormation/AWSCloudFormation is not authorized to perform: iam:PassRole on resource: arn:aws:iam::id
:role/CodeStarWorker-project-id
-Lambda (Service: AWSLambdaInternal; Status Code: 403; Error Code: AccessDeniedException; Request ID:id
)
之所以出现此错误,是因为您的 AWS CloudFormation 工作人员角色无权传递用于配置新 Lambda 函数的角色。
要修复此错误,您需要使用以下代码段更新您的 AWS CloudFormation 工作人员角色政策。
{ "Action":[ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
account-id
:role/CodeStarWorker-project-id
-Lambda", ], "Effect": "Allow" }
在更新该策略之后,请再次执行您的管道。
或者,您也可以按照 将 IAM 权限边界添加到现有项目 中所述,通过将权限边界添加到您的项目中,为您的 Lambda 函数使用自定义角色
无法为 GitHub 存储库创建连接
问题:
由于与 GitHub 存储库的连接使用 AWS 连接器 GitHub,因此您需要组织所有者权限或仓库管理员权限才能创建连接。
可能的修复方法:有关 GitHub 存储库权限级别的信息,请参阅 https://docs.github.com/en/ free-pro-team @latest /github/ setting-up-and-managing-/-organizations-and-teams