You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS CodeBuild中配置HTTPS Git凭证解决CodeCommit克隆失败

解决AWS CodeBuild中pip安装CodeCommit私有依赖的凭证问题

我来帮你搞定这个问题——你遇到的fatal: could not read Username for 'https://git-codecommit.us-west-2.amazonaws.com': No such device or address错误,本质是pip通过HTTPS克隆CodeCommit私有仓库时,Git没有拿到有效的身份凭证。下面是具体的解决步骤:

第一步:确保CodeBuild的IAM角色有CodeCommit访问权限

首先要给你的CodeBuild项目关联的IAM角色添加拉取CodeCommit仓库的权限,不然即使配置了凭证也会被拒绝。你可以给角色附加这样的IAM策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codecommit:GitPull",
      "Resource": "arn:aws:codecommit:us-west-2:你的AWS账号ID:你的私有依赖仓库名"
    }
  ]
}

如果你的项目需要访问多个CodeCommit仓库,也可以把Resource设为arn:aws:codecommit:us-west-2:你的AWS账号ID:*来匹配所有仓库。

第二步:在buildspec.yml中配置Git凭证

CodeBuild环境默认已经预装了AWS CLI,并且会自动使用项目的IAM角色身份,所以我们可以利用aws codecommit命令来自动生成并配置Git凭证,有两种常用方式:

方式一:使用CodeCommit凭证助手(推荐)

这种方式更优雅,Git会自动通过AWS CLI获取临时凭证,不需要手动管理密码:

version: 0.2

phases:
  install:
    commands:
      # 配置Git全局使用CodeCommit凭证助手
      - git config --global credential.helper '!aws codecommit credential-helper $@'
      - git config --global credential.UseHttpPath true
      # 执行pip安装(此时Git会自动处理凭证)
      - pip install .
  build:
    commands:
      # 这里放你的其他构建命令
      - echo "构建完成!"

方式二:手动生成临时凭证并配置

如果凭证助手在某些环境下有问题,你可以手动生成临时密码并配置到Git中:

version: 0.2

phases:
  install:
    commands:
      # 生成CodeCommit临时密码(注意替换为你的仓库区域)
      - export CODECOMMIT_PASSWORD=$(aws codecommit get-login-password --region us-west-2)
      # 配置Git针对该CodeCommit域名的凭证
      - git config --global credential.https://git-codecommit.us-west-2.amazonaws.com.username "aws"
      - git config --global credential.https://git-codecommit.us-west-2.amazonaws.com.password $CODECOMMIT_PASSWORD
      # 执行pip安装
      - pip install .
  build:
    commands:
      - echo "构建完成!"

第三步:检查私有依赖的pip引用格式

确保你的requirements.txt或者setup.py里的私有依赖引用是正确的HTTPS格式,比如:

git+https://git-codecommit.us-west-2.amazonaws.com/v1/repos/你的私有依赖仓库名#egg=你的包名

这样配置后,CodeBuild执行pip install .时,Git就能自动获取有效的凭证,顺利拉取CodeCommit里的私有依赖了。

内容的提问来源于stack exchange,提问作者woodpav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:07:04