0

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

根据我对Authentication Overview的理解,API 密钥似乎是最好和最简单的身份验证方法,而不是服务帐户或用户帐户。

创建密钥很容易。但是现在我被困在如何将它与gcloud谷歌云计算引擎上的 Ubuntu VM 实例上的命令结合使用。

当我尝试运行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 文档,但找不到任何有关指定 API 密钥字符串的信息。

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

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

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

4

2 回答 2

3

得到这个工作:

从 Google Cloud 控制台:计算引擎 -> 虚拟机实例

单击现有 VM 的名称,将打开 VM 实例详细信息页面。点击页面顶部附近的“编辑”链接。

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

于 2017-08-06T21:50:52.317 回答
1

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

gcloud --project=$PROJECT compute instances create $VM --zone=$ZONE --machine-type=$MACHINE --scopes=cloud-platform 
于 2017-08-06T19:19:15.310 回答