2017-08-06 99 views
0

对于一个相对较小的学术研究项目,我试图使用Google Cloud Natural Language API。gcloud ml语言请求认证范围不足

根据我对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'."

ERROR: (gcloud.ml.language.analyze-entities) PERMISSION_DENIED: Request had insufficient authentication scopes.

的文档和Q &一个我看到与此相关的错误都与服务帐户或用户帐户,但我试图只使用“简单”API密钥。

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

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

如果这个API密钥变得更麻烦,我可能会考虑切换到服务帐户。

任何帮助将不胜感激......

回答

1

得到这个由工作:

从谷歌云控制台: 计算引擎 - > VM实例

点击现有的虚拟机,它会弹出虚拟机实例详细信息页面的名称。点击页面顶部附近的“修改”链接。

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

1

如果您使用的是GCE VM的最简单的方法来验证的云API是使用虚拟机的服务帐户。在创建VM时,您可以指定为服务帐户授权的范围。最简单的解决方案是配置具有Cloud Platform范围的VM。使用gcloud

gcloud --project=$PROJECT compute instances create $VM --zone=$ZONE --machine-type=$MACHINE --scopes=cloud-platform 
+0

如果我想更新现有的VM,该怎么办?我不想使用'create'吗? –

+0

我不认为你可以改变现有虚拟机的范围。您应该能够删除虚拟机而不删除其磁盘,然后使用该磁盘创建新的虚拟机。确保您没有将虚拟机的自动删除磁盘设置为true。 –