我从bitnami-jenkins图像创建了一个新的计算引擎实例,以自动部署我的app-engine应用程序。我使用以下命令执行此操作:
gcloud compute instances create deployer
--project myapp --image-project bitnami-launchpad
--image bitnami-jenkins-1-638-1-linux-debian-7-x86-64
--zone us-central1-a --machine-type g1-small
--metadata "bitnami-base-password=mypassword,bitnami-default-user=user,bitnami-key=jenkins,bitnami-name=Jenkins,bitnami-url=//bitnami.com/stack/jenkins,bitnami-description=Jenkins,startup-script-url=https://dl.google.com/dl/jenkins/p2dsetup/setup-script.sh"
--scopes "https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/projecthosting,https://www.googleapis.com/auth/appengine.admin"
--tags "jenkins"
创建机器后,我创建了一个部署代码的作业,如下所述:
https://cloud.google.com/tools/cloud-repositories/docs/push-to-deploy
但是,我的作业失败并出现以下错误:
ERROR: Error Response: [403] Request had insufficient authentication scopes.
ERROR: (gcloud.preview.app.deploy) Could not retrieve the default Google Cloud Storage bucket for [myapp]. Please try again or use the [bucket] argument.
还有其他人遇到过这个吗?我有另一台jenkins机器,上面有一个旧版本的gcloud。它从未抛出任何与云存储桶相关的错误。所以我有一种预感,它与更新版本的gcloud有关。
请帮忙。感谢。
编辑:这是带有--verbosity debug
的gcloud命令的输出。
gcloud output
答案 0 :(得分:4)
当我尝试使用最新版本的Cloud SDK(0.9.88)重现此内容时,收到以下错误消息:
ERROR: (gcloud.preview.app.deploy) Required scopes ['https://www.googleapis.com/auth/cloud-platform'] missing from ['https://www.googleapis.com/auth/appengine.admin', 'https://www.googleapis.com/auth/devstorage.full_control', 'https://www.googleapis.com/auth/projecthosting', 'https://www.googleapis.com/auth/userinfo.email']. This VM instance probably needs to be recreated with the missing scopes.
解决方案是像以前一样重新创建VM,但将范围https://www.googleapis.com/auth/cloud-platform
添加<{strong>}到--scopes
标志中提供的列表。
我会确保修复文档以反映这一点。 编辑:文档现已修复。
答案 1 :(得分:1)
这个答案具有误导性;它错误地识别了真正的问题。我将它留在这里作为后代。
这似乎是Google Compute Engine服务帐户与Google云端存储分区之间互动的一个小打击。
要解决此问题,请create a Cloud Storage bucket Jenkins VM上的service account可以读取/写入,或更改云存储桶staging.<appname>.appspot.com
上的权限。如果您不熟悉Google Developer's Console(执行此操作的命令行工具),最简单的方法是gsutil。
所以我预感它与更新版本的gcloud有关。
是的,确实如此。新版本的gcloud
使用不同的部署机制(速度更快)。