我已经在Google Cloud AI平台上创建了一个机器学习模型的版本(scikit-学习房价示例)。我现在正在按照this page上的说明使用在线预测来测试它。当我通过gcloud请求时,预测会完美地返回,然而,当我尝试在curl中使用REST API时,我收到了一个"Permission Denied“403错误。我的请求和错误响应如下(我在请求中根据需要替换了PROJECT_ID、MODEL_NAME和VERSION_NAME ):
请求:
curl -X POST -H "Content-Type: application/json" -d @input.json \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"https://ml.googleapis.com/v1/projects/${PROJECT_ID}/models/${MODEL_NAME}/versions/${VERSION_NAME}:predict"错误:
{
"error": {
"code": 403,
"message": "Permission denied on resource project #271903.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developer console API key",
"url": "https://console.developers.google.com/project/271903/apiui/credential"
}
]
}
]
}
}据我所知,应该通过gcloud auth print-access-token请求的访问令牌来授予权限。我还尝试单独输入该命令并手动复制令牌,但收到相同的错误。我还尝试在请求中直接包含json数据。
有人知道这可能会发生吗?任何帮助都是非常感谢的!
发布于 2020-04-14 02:32:57
如果这对其他人有用,那是我在请求中的错误。我替换了花括号中的参数,而不是替换整个变量(在正斜杠之间)。纠正这个问题就解决了问题,预测现在起作用了。
https://stackoverflow.com/questions/61152263
复制相似问题