2017-08-06 86 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。 –