我们希望能够将Circle CI作业中的Docker容器中的工件上传到Google Cloud中的存储桶。理想情况下,我们可以使用gsutil cp <artifact> <bucket>
我很难以自动方式对gcloud
服务帐户进行身份验证,并且在任何地方都找不到有关此文档的文档。我读过的几乎每篇文章都请您遵循以下两种变体之一:
使用gsutil
$ gsutil config -a
但是,这提示了一系列需要与shell交互的问题:
Backing up existing config file "/Users/<user>/.boto" to "/Users/<user>/.boto.bak"...
This command will create a boto config file at
/Users/<user>/.boto containing your credentials, based on your
responses to the following questions.
What is your google access key ID?
使用gcloud
登录:
$ gcloud auth login
Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/auth?....
由于最终结果是Docker容器将对服务帐户进行身份验证以执行gsutil cp
,因此交互式登录不是很好...
我在this example中具有凭据JSON设置,但是设置环境变量GOOGLE_APPLICATION_CREDENTIALS
still 会提示Are you sure? [Y/n]
消息,该消息无法自动绕过。有什么想法吗?
答案 0 :(得分:2)
从服务帐户Json文件配置Google Cloud SDK CLI的命令:
gcloud auth activate-service-account test@development-123456.iam.gserviceaccount.com --key-file=service_account.json
将电子邮件地址test@...
替换为您的服务帐户电子邮件地址。
将Json文件名service_account.json
替换为用于服务帐户凭据的文件名。
服务帐户的电子邮件地址位于服务帐户json文件中,为client_email
。
如果您想了解更多信息,我在Google凭据和OAuth上写了很多文章:
Google Cloud – Setting up Gcloud with Service Account Credentials