Cloud Build访问Artifact Registry中npm仓库遇403禁止的问题
解决Cloud Build访问Artifact Registry npm包403错误的步骤
先针对你遇到的问题逐个排查:
修正.npmrc配置错误
你的.npmrc里存在两处关键问题:always-auth的路径不匹配:配置里写的是//us-central1-npm.pkg.dev/my-project/my-ui/:always-auth=true,但你的目标仓库是my-repo,必须改成//us-central1-npm.pkg.dev/my-project/my-repo/:always-auth=true- 错误信息里的域名拼写是
us-centeral1(少了一个字母r),确认你的.npmrc里的registry地址是正确的us-central1,避免和错误里的拼写一致
确认服务账号权限绑定到目标仓库
虽然你给了默认服务账号Artifact Registry管理员权限,但要检查这个权限是不是直接绑定在my-repo仓库上,而非仅在项目层级。有时候项目级权限会因为仓库的单独配置不生效,直接给my-repo仓库添加服务账号的Artifact Registry Reader或Admin权限更稳妥。在构建步骤里手动添加认证
可以在Cloud Build的cloudbuild.yaml中,在npm install之前添加认证步骤,确保npm能获取到有效访问令牌:steps: - name: 'gcr.io/cloud-builders/npm' entrypoint: 'bash' args: - '-c' - | npm config set //us-central1-npm.pkg.dev/my-project/my-repo/:_authToken="$(gcloud auth print-access-token)" npm install验证构建上下文里的.npmrc
虽然你确认文件没被忽略,但可以在构建步骤里加一步打印.npmrc内容的操作,直观确认构建时加载的是正确配置:steps: - name: 'gcr.io/cloud-builders/npm' entrypoint: 'cat' args: ['.npmrc']
内容的提问来源于stack exchange,提问作者Lance Armah-Abraham
相关产品推荐
相关产品推荐

