2017-08-09 87 views
1

我有一個應用程序使用com.google.cloud.bigtable.hbase1_2.BigtableConnection類連接到Google Bigtable。這是運行在一個計算引擎虛擬機中,默認範圍設置加上https://www.googleapis.com/auth/bigtable.data範圍(讀/寫Bigtable時需要)。當屬性google.bigtable.auth.json.keyfile設置爲適當的驗證文件時,連接正常工作。Auth從計算實例連接到Bigtable

但是,我想避免設置此屬性,只使用爲該實例設置的範圍,以便密鑰文件不必保存在實例上。這似乎並不奏效。錯誤消息是

Caused by: com.google.bigtable.repackaged.io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had insufficient authentication scopes. 
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:230) 
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:211) 
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:144) 
    at com.google.bigtable.admin.v2.BigtableTableAdminGrpc$BigtableTableAdminBlockingStub.listTables(BigtableTableAdminGrpc.java:371) 
    at com.google.cloud.bigtable.grpc.BigtableTableAdminGrpcClient.listTables(BigtableTableAdminGrpcClient.java:52) 
    at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.requestTableList(AbstractBigtableAdmin.java:258) 
    ... 8 more 

是否有任何其他方式做到這一點或有配置屬性我失蹤?

回答

1

因此,我發現它需要將訪問範圍以及正確的IAM角色分配給實例,然後才能正常工作。示波器是

https://www.googleapis.com/auth/bigtable.data 
https://www.googleapis.com/auth/bigtable.admin.table 

並且IAM角色應該包括Bigtable User角色。

+0

很高興聽到您解決了您的問題!你可以請[接受你自己的答案](http://blog.stackoverflow.com/2009/01/accept-your-own-answers/),以便這個問題被標記爲關閉?謝謝! –