对于一个相对较小的学术研究项目,我正在尝试使用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密钥更加麻烦,我可以考虑切换到服务帐户。
非常感谢任何帮助......
答案 0 :(得分:2)
让这个工作:
来自Google云端控制台: 计算引擎 - > VM实例
单击现有VM的名称,这将显示VM实例详细信息页面。点击"编辑"链接靠近页面顶部。
然后修改Cloud API访问范围以允许完全访问所有Cloud API。
答案 1 :(得分:1)
如果您使用GCE VM,则对Cloud API进行身份验证的最简单方法是使用VM的服务帐户。创建VM时,您可以指定要为服务帐户授权的范围。最简单的解决方案是为VM配置云平台范围。使用gcloud
{{1}}