【发布时间】:2021-09-18 03:12:13
【问题描述】:
我正在尝试运行从 bitbucket 到 GCP 的管道。这是我的管道配置:
image: node:10.15.3
pipelines:
default:
- parallel:
- step:
name: Build and Test
caches:
- node
script:
- npm install
- step:
name: Deploy
deployment: staging
script:
- curl -o /tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-347.0.0-linux-x86_64.tar.gz
- tar -xvf /tmp/google-cloud-sdk.tar.gz -C /tmp/
- /tmp/google-cloud-sdk/install.sh -q
- source /tmp/google-cloud-sdk/path.bash.inc
- gcloud -v
- echo "${KEY_FILE}" | base64 --decode --ignore-garbage > ./gcloud-api-key.json
- gcloud auth activate-service-account --key-file gcloud-api-key.json
- echo "$(gcloud auth list)"
- gcloud config unset project
- gcloud config set project $PROJECT_ID
- echo "GCLOUD" "$(gcloud iam service-accounts list)"
- echo "$(gcloud projects list)"
#- gcloud auth login
- gcloud app deploy # getting error here
在 GCP 仪表板上,我从顶部下拉列表中选择了我的项目并创建了服务帐户。我的服务帐户拥有以下权限:
我已下载服务帐户 json 并在使用 base64 编码后将环境变量 KEY_FILE 添加到 bitbucket(执行 base64 <service-account>.json 并将输出粘贴到变量中)。 PROJECT_ID 变量包含来自 GCP 的项目 ID。
为管道命令添加输出:
gcloud auth activate-service-account --key-file gcloud-api-key.json
已激活服务帐户凭据: [service-account-name@project-id.iam.gserviceaccount.com]
echo "$(gcloud auth list)"
要设置活动帐户,请运行: $ gcloud 配置设置账号
ACCOUNT活动帐户
service-account-name@project-id.iam.gserviceaccount.com
gcloud config unset project
取消设置属性 [核心/项目]。
gcloud config set project $PROJECT_ID
更新了属性 [核心/项目]。 警告:您似乎无权访问项目 [PROJECT_ID] 或它不存在。
echo "$(gcloud projects list)"
列出 0 项。
gcloud app deploy
错误:(gcloud.app.deploy) 获取应用程序的权限错误
经过数小时的研究,我无法解决问题。任何输入都会有所帮助。
【问题讨论】:
-
您是否 100% 都在使用project ID and not the project name?
-
@danyL 是的,项目名称是 Bitbucket-Test,id 是
所以我很确定这不是问题。已经检查了那个线程。我尝试用项目名称设置 gcloud config set project $PROJECT_ID,但收到一个错误提示不是有效的项目ID,所以我认为这里不是这种情况。
标签: google-cloud-platform bitbucket gcloud bitbucket-pipelines