如何进行经过身份验证的休息呼叫到谷歌机器学习预测端点?

时间:2018-05-22 15:00:35

标签: google-oauth google-python-api

我想对谷歌机器学习预测端点做一个简单的http休息呼叫,但我找不到任何有关如何做到这一点的信息。据我所知,从有限的文档中,您必须使用Java或Python库(或者弄清楚如何在使用REST auth端点时正确加密所有内容)并获取凭证对象。然后说明结束,我不知道如何实际使用我的凭证对象。到目前为止,这是我的代码:

import urllib2
from google.oauth2 import service_account

# Constants
ENDPOINT_URL = 'ml.googleapis.com/v1/projects/{project}/models/{model}:predict?access_token='
SCOPES = ['https://www.googleapis.com/auth/cloud-platform']
SERVICE_ACCOUNT_FILE = 'service.json'

credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
access_token=credentials.token

opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(ENDPOINT_URL + access_token)
request.get_method = lambda: 'POST'
result = opener.open(request).read()
print(str(result))

如果我打印credentials.valid它返回False,所以我认为凭证对象init存在问题,但我不知道是什么,因为没有报告错误,在凭证对象内的字段都是正确的,我按照说明做了一切。我的service.json也是我们的移动团队成功使用获取访问令牌的那个,所以我知道json文件有正确的数据。

如何获取可用于调用预测端点的机器学习服务的访问令牌?

1 个答案:

答案 0 :(得分:0)

事实证明,进行简单查询的最佳方法是使用gcloud控制台。我最后按照此处的说明设置了我的环境:https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu

然后这里的说明实际命中了端点(在最初设置模型的人的帮助下): https://cloud.google.com/sdk/gcloud/reference/ml-engine/predict

这比尝试使用python库更容易,我强烈推荐给那些试图点击预测端点的人。