Google cloud platform 我可以自动“gcloud auth login”吗?
我无法以非交互方式激活我的谷歌云服务帐户;即使在读了好几篇这样的文章之后Google cloud platform 我可以自动“gcloud auth login”吗?,google-cloud-platform,gcloud,google-iam,Google Cloud Platform,Gcloud,Google Iam,我无法以非交互方式激活我的谷歌云服务帐户;即使在读了好几篇这样的文章之后 创建服务帐户 gcloud iam服务帐户创建我的卓越帐户… 为服务帐户创建角色 gcloud iam角色创建awesome角色\ --权限存储.objects.create,存储.objects.delete… 生成密钥 gcloud iam服务帐户密钥创建~/awesome-key.json… 激活服务帐户 gcloud auth activate service account my awesome acct~/aw
gcloud iam服务帐户创建我的卓越帐户…
gcloud iam角色创建awesome角色\
--权限存储.objects.create,存储.objects.delete…
gcloud iam服务帐户密钥创建~/awesome-key.json…
gcloud auth activate service account my awesome acct~/awesome key.json
我的问题
即使完成了上述步骤,当我运行gsutil…
命令时,仍然会收到错误消息:
$ gsutil cp my_file.tgz gs://my_bucket
Copying file://my_file.tgz [Content-Type=application/x-tar]...
Your credentials are invalid. Please run
$ gcloud auth login
我能让它工作的唯一方法是实际运行gcloud auth login
,并允许在web浏览器中进行身份验证
我做错什么了吗?或者这是针对每个服务帐户的吗?我将在这里回答我自己的问题 我的解决方案 我决定使用谷歌云客户端库,而不是使用
gsutil
我所做的:
我现在做的是:
事后诸葛亮20/20
在上述解决方案运行之后,如果我也设置了环境变量,
GOOGLE\u APPLICATION\u CREDENTIALS
,那么我的gsutil
也应该运行了。(未经测试)您是如何安装gsutil的?作为GCloud安装的一部分还是作为独立安装?
gsutil cp my_file.tgz gs://my_bucket
from gcloud import storage
# key file is located in my current directory
os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', 'gcloud-auth.json')
client = storage.Client()
bucket = client.get_bucket("my_bucket")
blob = bucket.blob("my_file.tgz")
blob.upload_from_filename("my_file.tgz")