google-oauth - 如何对谷歌机器学习预测端点进行经过身份验证的 Rest 调用?
问题描述
我想对谷歌机器学习预测端点进行简单的 http rest 调用,但我找不到任何有关如何执行此操作的信息。据我从有限的文档中可以看出,您必须使用 Java 或 Python 库(或弄清楚在使用 REST 身份验证端点时如何正确加密所有内容)并获取凭据对象。然后说明结束,我不知道如何实际使用我的凭据对象。到目前为止,这是我的代码:
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 文件具有正确的数据。
如何获取可用于调用预测端点的机器学习服务的访问令牌?
解决方案
事实证明,进行简单查询的最佳方法是使用 gcloud 控制台。我最终按照此处的说明设置我的环境:https ://cloud.google.com/sdk/docs/quickstart-debian-ubuntu
然后这里的说明实际到达端点(在最初设置模型的人的帮助下): https ://cloud.google.com/sdk/gcloud/reference/ml-engine/predict
这比尝试使用 python 库要容易得多,我强烈推荐给任何试图点击预测端点的人。
推荐阅读
- swift - 自定义警报显示在空窗口而不是以前的 viewController
- javascript - 当从父组件调用 setState 时,子组件不适用于 React
- java - DL4J 中的 MultiLayerSpace.Builder.layer() 和 MultiLayerSpace.Builder.addLayer() 有什么区别?
- reactjs - React Hooks ,函数 fetchData 不是反应组件?
- hive - 浮点列上的火花 sql 百分位数
- java - Java并发 - 创建后更改可变对象
- macos - Mac OS Nativescript Sidekick UI 闪烁
- xml - 如何添加 settings.xml 以将 Jenkins 的构建过程添加到 docker 映像
- python - 尝试通过步骤对字符串中的元素求和
- python - Python:对其中包含 n 个字典的字典进行排序的有效方法