排除连接故障 - 开发工具控制台

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

排除连接故障

以下信息可以帮助您解决 AWS CodeBuild AWS CodeDeploy、和中资源连接的常见问题 AWS CodePipeline。

我无法创建连接

您可能无权创建连接。有关更多信息,请参阅 的权限和示例 AWS CodeConnections

当我尝试创建或完成连接时出现权限错误

当您尝试在 CodePipeline 控制台中创建或查看连接时,可能会返回以下错误消息。

用户:username无权permission在资源上执行:connection-ARN

If this message appears, make sure that you have sufficient permissions.(用户:username 无权对资源:connection-ARN 执行操作:permission。如果出现此消息,请确保您有足够的权限。)

在 AWS Command Line Interface (AWS CLI) 或中创建和查看连接的权限 AWS Management Console 只是您在控制台上创建和完成连接所需的权限的一部分。只执行查看、编辑或创建连接,然后完成待处理连接所需的权限,应该分配给仅需执行某些任务的用户。有关更多信息,请参阅 的权限和示例 AWS CodeConnections

当我尝试使用连接时出现权限错误

如果您尝试在 CodePipeline 控制台中使用连接,即使您有权列出、获取和创建权限,也可能会返回以下一条或两条错误消息。

您无法对您的账户进行身份验证。

用户:无权username在资源上执行:codestar-connections:UseConnection connection-ARN

If this occurs, make sure that you have sufficient permissions. (您帐户的身份验证失败。用户:username 无权对资源:connection-ARN 执行:codestar-connections:UseConnection。如出现此消息,请确保您有足够的权限。)

Make sure you have the permissions to use a connection, including listing the available repositories in the provider location。有关更多信息,请参阅 的权限和示例 AWS CodeConnections

Connection is not in available state or is no longer pending (确保您具有使用连接的权限,包括在提供程序位置列出可用存储库。连接不处于可用状态或不再处于待处理状态)

如果控制台显示连接不处于可用状态的消息,请选择 Complete connection (完成连接)

如果选择完成连接,并显示一条消息,指出连接未处于待处理状态,则可以取消请求,因为连接已处于可用状态。

为连接添加 GitClone 权限

当您在源操作和操作中使用 AWS CodeStar 连接时,可以通过两种方式将输入构件传递给构建: CodeBuild

  • 默认:源操作生成一个 zip 文件,其中包含要 CodeBuild下载的代码。

  • Git 克隆:源代码可以直接下载到构建环境中。

    Git 克隆模式允许您将源代码作为工作 Git 存储库进行交互。要使用此模式,必须向您的 CodeBuild 环境授予使用连接的权限。

要向 CodeBuild 服务角色策略添加权限,您需要创建一个附加到 CodeBuild 服务角色的客户托管策略。以下步骤将创建一个策略,其中在字段中指定UseConnection权限,并在该action字段中指定连接 Amazon 资源名称 (ARN)。Resource

使用控制台添加 UseConnection 权限
  1. 要查找管道ARN的连接,请打开管道并选择源操作上的 (i) 图标。将打开 “配置” 窗格,连接ARN显示在旁边ConnectionArn。您将连接ARN添加到您的 CodeBuild 服务角色策略中。

  2. 要查找您的 CodeBuild 服务角色,请打开管道中使用的构建项目,然后导航到构建详细信息选项卡。

  3. 在 Environment (环境) 部分,选择 Service role (服务角色) 链接。这将打开 AWS Identity and Access Management (IAM) 控制台,您可以在其中添加授予连接访问权限的新策略。

  4. 在IAM控制台中,选择附加策略,然后选择创建策略

    使用以下示例策略模板。在Resource字段ARN中添加您的连接,如本示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codestar-connections:UseConnection", "Resource": "insert connection ARN here" } ] }

    JSON选项卡上,粘贴您的政策。

  5. 选择查看策略。为策略输入名称(例如 connection-permissions),然后选择 Create policy (创建策略)

  6. 返回到服务角色 Attach Permissions (附加权限) 页面上,刷新策略列表,然后选择您刚才创建的策略。选择附加策略。​

主机不处于可用状态

如果控制台显示一条消息,指出主机不处于 Available 状态,则选择 Set up host (设置主机)

创建主机的第一步将导致创建的主机现在处于 Pending 状态。将主机变为 Available 状态时,必须选择在控制台中设置主机。有关更多信息,请参阅 设置待处理的主机

注意

您不能使用 AWS CLI来设置Pending主机。

故障排查有连接错误的主机

如果底层 GitHub 应用程序被删除或修改,连接和主机可能会进入错误状态。无法恢复处于错误状态的主机和连接,必须重新创建主机。

  • 更改应用程序 pem 密钥、更改应用名称(初始创建后)等操作将导致主机和所有相关连接变为错误状态。

如果控制台或CLI返回与Error处于状态的主机相关的主机或连接,则可能需要执行以下步骤:

  • 删除并重新创建主机资源,然后重新安装主机注册应用程序。有关更多信息,请参阅 创建主机

我无法为主机创建连接

要创建连接或主机,必须满足以下条件。

  • 您的房东必须处于该AVAILABLE状态。有关更多信息,请参阅

  • 连接必须在与主机相同的区域中创建。

对主机的VPC配置进行故障排除

创建主机资源时,必须为安装 GitHub 企业服务器实例的基础架构提供网络连接或VPC信息。要对您的主机VPC或子网配置进行故障排除,请使用此处显示的示例VPC信息作为参考。

注意

使用本节排除与 Amazon 中的 GitHub 企业服务器主机配置相关的疑难解答VPC。有关与配置为使用 webhook 端点用于 VPC (PrivateLink) 的连接相关的疑难解答,请参阅 GitHub 企业服务器连接的 webhook VPC 端点 (PrivateLink) 疑难解答

在本示例中,您将使用以下过程来配置将安装 GitHub 企业服务器实例的VPC和服务器:

注意

每台主机一次VPC只能与一台主机(GitHub 企业服务器实例)关联。

下图显示了使用 GitHub 企业版启动的EC2实例AMI。

显示实例描述的控制台屏幕截图

使用VPC用于 GitHub 企业服务器连接时,在设置主机时必须为基础架构提供以下内容:

  • VPCID:VPC用于安装 GitHub企业服务器实例的服务器或通过VPN或 Direct Connect 访问已安装的 GitHub企业服务器实例的服务器。VPC

  • 子网 ID 或IDs:安装 GitHub 企业服务器实例的服务器的子网或可通过VPN或 Direct Connect 访问已安装的 GitHub 企业服务器实例的子网。

  • 一个@@ 或多个安全组:安装 GitHub 企业服务器实例的服务器的安全组或可通过VPN或 Direct Connect 访问已安装的 GitHub 企业服务器实例的安全组。

  • 终端节点:准备好您的服务器终端节点,并继续下一步。

有关使用VPCs和子网的更多信息,请参阅 Amazon VPC 用户指南IPv4中的VPC和子网大小

我无法获取处于待处理状态的主机

如果您的主机进入 VPC CONFIG FAILED _ _ INITIALIZATION 状态,则可能是因为您为主机选择的VPC、子网或安全组存在问题。

  • VPC、子网和安全组都必须属于创建主机的账户。

  • 子网和安全组必须属于选VPC定的。

  • 每个提供的子网必须位于不同的可用区。

  • 创建主机的用户必须具有以下IAM权限:

    ec2:CreateNetworkInterface ec2:CreateTags ec2:DescribeDhcpOptionsec2:DescribeNetworkInterfaces ec2:DescribeSubnets ec2:DeleteNetworkInterface ec2:DescribeVpcs ec2:CreateVpcEndpoint ec2:DeleteVpcEndpoints ec2:DescribeVpcEndpoints

我无法获取处于可用状态的主机

如果您无法完成主机的 CodeConnections 应用程序设置,则可能是因为您的VPC配置或 GitHub 企业服务器实例存在问题。

  • 如果您未使用公共证书颁发机构,则需要向您的主机提供 GitHub 企业实例使用的TLS证书。TLS证书值应为证书的公钥。

  • 要创建 GitHub 应用程序,您需要是 GitHub 企业服务器实例的管理员。

我的连接/主机刚才正常现在却停止工作

如果连接/主机以前运行但现在无法运行,则可能是由于您的配置更改VPC或 GitHub 应用程序已被修改。请检查以下事项:

  • 连接到您为连接创建的主机资源的安全组现已更改或无法再访问 GitHub 企业服务器。 CodeConnections 需要一个可以连接到 GitHub 企业服务器实例的安全组。

  • DNS服务器 IP 最近发生了变化。您可以通过检查为连接创建的主机资源中VPC指定的附加DHCP选项来验证这一点。请注意,如果您最近从自定义服务器转移 AmazonProvidedDNS到自定义DNS服务器或开始使用新的自定义DNS服务器,则主机/连接将停止工作。要修复此问题,请删除现有的主机并重新创建,这样会将最新的DNS设置存储在我们的数据库中。

  • 网络ACLs设置已更改,不再允许HTTP连接到您的 GitHub 企业服务器基础架构所在的子网。

  • GitHub 企业服务器上该 CodeConnections 应用程序的所有配置均已更改。对任何配置(例如URLs或应用程序密钥)的修改都可能导致已安装的 En GitHub terprise Server 实例与之间的连接中断 CodeConnections。

我无法删除我的网络接口

如果无法检测到网络接口,请确认以下内容:

  • CodeConnections 只能通过删除主机来删除由创建的网络接口。用户不能手动删除它们。

  • 您必须拥有以下权限:

    ec2:DescribeNetworkInterfaces ec2:DeleteNetworkInterface

GitHub 企业服务器连接的 webhook VPC 端点 (PrivateLink) 疑难解答

当您使用VPC配置创建主机时,将为您创建 webhook VPC 端点。

注意

使用此部分进行与配置为使用 webhook 终端节点的连接相关的疑难解答 VPC (PrivateLink)。有关与 Amazon 中的 GitHub 企业服务器主机配置相关的疑难解答VPC,请参阅对主机的VPC配置进行故障排除

当您创建与已安装提供程序类型的连接时,您已指定服务器配置在中,然后 AWS CodeConnections 创建您的主机VPC,并为您创建 webhook 的VPC终端节点 (PrivateLink)。这使主机能够通过 Webhook 通过 Amazon 网络将事件数据发送到您的集成 AWS 服务。有关更多信息,请参阅 AWS CodeConnections 和接口VPC端点 (AWS PrivateLink)

我无法删除我的 webhook 端点 VPC

AWS CodeConnections 管理主机的 webhook VPC 端点的生命周期。要删除终端节点,您必须删除相应的主机资源。

  • 创建的 webhook VPC 端点 (PrivateLink) CodeConnections 只能通过删除主机来删除。无法手动删除它们。

  • 您必须拥有以下权限:

    ec2:DescribeNetworkInterfaces ec2:DeleteNetworkInterface

对 2020 年 11 月 24 日之前创建的主机进行故障排查

自 2020 年 11 月 24 日起,在 AWS CodeConnections 设置主机时,将为您设置额外的VPC终端节点 (PrivateLink) 支持。对于在此更新之前创建的主机,请使用此故障排查内容。

有关更多信息,请参阅 AWS CodeConnections 和接口VPC端点 (AWS PrivateLink)

我有一台在 2020 年 11 月 24 日之前创建的主机,我想在 webhook 上使用VPC端点 (PrivateLink)

在为 GitHub 企业服务器设置主机时,将为您创建 webhook 端点。连接现在使用 VPC PrivateLink webhook 端点。如果您在 2020 年 11 月 24 日之前创建了主机,并且想要使用 VPC PrivateLink webhook 终端节点,则必须先删除主机,然后再创建一个新主机。

我无法让主机处于可用状态(VPC错误)

如果您的主机是在 2020 年 11 月 24 日之前创建的,并且您无法完成主机的 CodeConnections 应用程序设置,则可能是因为您的VPC配置或 GitHub 企业服务器实例存在问题。

VPC您将需要一个NAT网关(或出站互联网接入),这样您的 GitHub企业服务器实例才能发送 GitHub webhook 的出口网络流量。

无法为 GitHub 存储库创建连接

问题:

由于与 GitHub 存储库的连接使用 AWS 连接器 GitHub,因此您需要组织所有者权限或仓库管理员权限才能创建连接。

可能的修复方法:有关 GitHub 存储库权限级别的信息,请参阅 https://docs.github.com/en/free-pro-team@ latest/github/setting-up-and-managing-organizations-and-teams/permission-levels-for-an-organization

编辑您的 GitHub 企业服务器连接应用程序权限

如果您在 2020 年 12 月 23 日当天或之前安装了适用于 GitHub 企业服务器的应用程序,则可能需要向组织成员授予该应用程序只读访问权限。如果您是 GitHub 应用程序所有者,请按照以下步骤编辑创建主机时安装的应用程序的权限。

注意

您必须在 E GitHub nterprise Server 实例上完成这些步骤,并且必须是 GitHub 应用程序所有者。

  1. 在 E GitHub nterprise Server 中,从个人资料照片的下拉选项中选择 “设置”

  2. 选择 “开发者设置”,然后选择 “GitHub应用程序”。

  3. 在应用程序列表中,为您的连接选择应用程序的名称,然后在设置显示中选择 Permissions and events (权限和事件)

  4. Organization permissions(组织权限)下,对于 Members(成员),从 Access(访问权限)下拉列表中选择 Read-only(只读)。

    Organization permissions interface showing Members access set to Read-only from dropdown menu.
  5. Add a note to users (向用户添加注释) 下,添加更新原因的说明。选择 Save changes(保存更改)

连接时出现连接错误 GitHub:“出现问题,请确保您的浏览器已启用 Cookie” 或 “组织所有者必须安装 GitHub 应用程序”

问题:

要为 GitHub 存储库创建连接,您必须是 GitHub 组织所有者。对于不属于组织的存储库,您必须是存储库拥有者。当连接由非组织拥有者的其他用户创建时,将针对组织拥有者创建请求,并显示以下错误之一:

出现问题,请确保在浏览器中启用 Cookie

组织所有者必须安装该 GitHub 应用程序

可能的修复方法:对于 GitHub组织中的仓库,组织所有者必须创建与 GitHub 存储库的连接。对于不属于组织的存储库,您必须是存储库拥有者。

可能需要为IAM策略更新资源中的连接服务前缀

2024 年 3 月 29 日,该服务从 C AWS CodeStar onnections 更名为。 AWS CodeConnections从 2024 年 7 月 1 日起,控制台将在资源codeconnectionsARN中创建与的连接。带有两个服务前缀的资源将继续显示在控制台中。使用控制台创建的资源的服务前缀是codeconnections。新的SDK/CLI资源是在资源codeconnections中使用创建的ARN。创建的资源将自动使用新的服务前缀。

以下是在中创建的资源 AWS CodeConnections:

  • 连接

  • 主机

问题:

codestar-connections在中创建的资源ARN不会自动重命名为资源中的新服务前缀ARN。创建新资源将创建具有连接服务前缀的资源。但是,带有codestar-connections服务前缀的IAM策略不适用于带有新服务前缀的资源。

可能的修复方法:要避免资源的访问或权限问题,请完成以下操作:

  • 更新新服务前缀的IAM策略。否则,重命名或创建的资源将无法使用这些IAM策略。

  • 使用控制台或通过创建新服务前缀来更新资源CLI/CDK/CFN。

根据需要更新策略中的操作、资源和条件。在以下示例中,两个服务前缀的Resource字段均已更新。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "codeconnections:UseConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] } }

由于使用控制台创建的资源中存在服务前缀,导致权限错误

当前,使用控制台创建的连接资源将只有codestar-connections服务前缀。对于使用控制台创建的资源,策略声明操作必须包含codestar-connections作为服务前缀。

注意

从 2024 年 7 月 1 日起,控制台将在资源codeconnectionsARN中创建与的连接。带有两个服务前缀的资源将继续显示在控制台中。

问题:

使用控制台创建连接资源时,策略中必须使用codestar-connections服务前缀。使用策略中带有codeconnections服务前缀的策略时,使用控制台创建的连接资源会收到以下错误消息:

User: user_ARN is not authorized to perform: codestar-connections:action on resource: resource_ARN because no identity-based policy allows the codestar-connections:action action

可能的修复方法:对于使用控制台创建的资源,策略声明操作必须包含codestar-connections作为服务前缀,如中的策略示例所示示例:使用控制台创建 AWS CodeConnections 的策略

已安装的提供商支持组织的连接和主机设置

对于已安装的支持组织的提供程序(例如 Organi GitHub zations),您不会传递可用的主机。您可以为组织中的每个连接创建一个新主机,并确保在以下网络字段中输入相同的信息:

  • VPC ID

  • 子网 ID

  • 安全组 IDs

要创建GHES连接或GitLab 自管理连接,请参阅相关步骤。

我想提高连接的限制

您可以在中申请提高某些限额的限额 CodeConnections。有关更多信息,请参阅 连接的配额