簡體   English   中英

我可以自動執行“ gcloud auth登錄”嗎?

[英]Can I automate `gcloud auth login`?

我無法非交互式地激活我的Google Cloud服務帳戶; 即使讀取了幾個SO線程也是如此。

  1. 創建服務帳戶

gcloud iam service-accounts create my-awesome-acct ...

  1. 為服務帳戶創建角色

gcloud iam roles create AwesomeRole \\ --permissions storage.objects.create,storage.objects.delete ....

  1. 生成密鑰

gcloud iam service-accounts keys create ~/awesome-key.json ...

  1. 激活服務帳戶

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起作用的唯一方法是實際運行gcloud auth login並允許在Web瀏覽器中進行身份驗證。

難道我做錯了什么? 還是針對每個服務帳戶?

我將在這里回答我自己的問題。

我的解決方案

我決定不使用gsutil ,而是決定使用Google Cloud Client庫。

做了什么:

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")

后視20/20

在使上述解決方案生效之后,看來如果我還要設置環境變量GOOGLE_APPLICATION_CREDENTIALS ,我的gsutil應該也可以工作。 (未試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM