Google云数据实验室中Python客户端库调用缺少凭据

2024-04-26 07:06:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从googleclouddatalab获取python客户机库的示例代码。程序如下所示:

import googleapiclient.discovery

def get_client():
    """Builds a client to the dataproc API."""
    dataproc = googleapiclient.discovery.build('dataproc', 'v1')
    return dataproc

def list_clusters(dataproc, project):
    result = dataproc.projects().regions().clusters().list(
        projectId=project,
        region='global').execute()
    return result

if __name__ == "__main__":
        dpc = get_client()
        project='my-sandbox1-165203'
        res = list_clusters(dpc, project)
        print res

tutorial之后,它在安装了googlecloudsdk的本地系统中运行良好。我还从一个计算引擎实例中获得了它,该实例启用了云API访问范围,以“允许对所有云API的完全访问”。Datalab计算引擎实例确实具有“允许完全访问所有云api”的功能,正如我从控制台看到的那样。但是当我运行云数据实验室的代码时

dataproc.projects().regions().clusters().list(projectId=project,region='global').execute()

失败于

HttpError: <HttpError 401 when requesting https://dataproc.googleapis.com/v1/projects/my-sandbox1-165203/regions/global/clusters?alt=json returned "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.">

据我所知,datalab代码运行时默认的服务帐户为'!gcloud auth list'显示。你知道吗

你知道我该怎么做吗?你知道吗


Tags: 实例代码projectclientapigetdefglobal