gcloud ml语言请求的身份验证范围不足

时间:2017-08-06 08:31:03

标签: google-cloud-platform google-cloud-ml google-cloud-nl

对于一个相对较小的学术研究项目,我正在尝试使用Google Cloud Natural Language API。

根据我在Authentication Overview上的理解,看起来API key是最佳和最简单的身份验证方法,而不是服务帐户或用户帐户。

Creating the key很简单。但是现在我被困在如何在Google云计算引擎上的Ubuntu VM实例上与gcloud命令结合使用它。

当我尝试在Natural Language Quickstart Guide上运行简单示例时,我收到此错误:

gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'."

  

错误:(gcloud.ml.language.analyze-entities)PERMISSION_DENIED:   请求的身份验证范围不足。

我发现与此错误相关的文档和问答与服务帐户或用户帐户有关,但我尝试使用"简单" API密钥。

使用API​​密钥的文档显示了如何通过REST执行此操作。但是,现在作为一个"快速"测试我是否有自然语言API工作,我想在命令行上使用gcloud进行一个简单的测试。我查看了gcloud documentation,但找不到有关指定API密钥字符串的任何信息。

如何使用gcloud运行上述命令并使用我的API密钥进行身份验证?

如果这个API密钥更加麻烦,我可以考虑切换到服务帐户。

非常感谢任何帮助......

2 个答案:

答案 0 :(得分:2)

让这个工作:

来自Google云端控制台: 计算引擎 - > VM实例

单击现有VM的名称,这将显示VM实例详细信息页面。点击"编辑"链接靠近页面顶部。

然后修改Cloud API访问范围以允许完全访问所有Cloud API。

答案 1 :(得分:1)

如果您使用GCE VM,则对Cloud API进行身份验证的最简单方法是使用VM的服务帐户。创建VM时,您可以指定要为服务帐户授权的范围。最简单的解决方案是为VM配置云平台范围。使用gcloud

{{1}}