繁体   English   中英

Google Cloud KMS:无法建立客户端对象

[英]Google Cloud KMS: Unable to build client object

我在Trainer应用程序中使用以下代码,该应用程序在Cloud ML引擎中运行:

credentials, project = google.auth.default(scopes=['https://www.googleapis.com/auth/cloudkms'])
kms_client = googleapiclient.discovery.build('cloudkms', 'v1', credentials=credentials)

我收到以下错误:

      File "/root/.local/lib/python2.7/site-packages/trainer/kms.py", line 110, in decrypt
    kms_client = googleapiclient.discovery.build('cloudkms', 'v1', credentials=credentials)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 135, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 210, in build
    credentials=credentials)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 135, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 341, in build_from_document
    http = credentials.authorize(http)
AttributeError: 'Credentials' object has no attribute 'authorize'

我可以从安装了Google Cloud SDK的本地计算机上运行相同的代码,而不会出现任何问题。 如果我在这里缺少什么,请告诉我。

您介意尝试按此处指定的oauth2client.client.GoogleCredentials吗?

然后通过credentials = GoogleCredentials.get_application_default()获取凭据

尽管可以使用create_scoped方法显式地执行此操作,但build()方法将为给定服务注入适当的范围。

我不完全确定这对您有用,但这是朝正确方向迈出的一步。

使用ADC肯定可以工作...但是最终您可能希望以服务帐户身份运行,以更好地审计密钥访问记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM