Google cloud platform 从JSON密钥文件向大查询传递凭据
我正在使用公共文档中的链接从Java客户机连接到大查询 出现一条错误消息: “该方法从类型设置凭据(凭据) ServiceOptions.Builder引用了缺少的类型凭据“ 我错过了什么Google cloud platform 从JSON密钥文件向大查询传递凭据,google-cloud-platform,google-bigquery,google-cloud-iam,Google Cloud Platform,Google Bigquery,Google Cloud Iam,我正在使用公共文档中的链接从Java客户机连接到大查询 出现一条错误消息: “该方法从类型设置凭据(凭据) ServiceOptions.Builder引用了缺少的类型凭据“ 我错过了什么 import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.bigquery.BigQuery; import
import com.google.auth.oauth2.GoogleCredentials;
import com.google.auth.oauth2.ServiceAccountCredentials;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.DatasetInfo;
import com.google.cloud.bigquery.FieldValueList;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobId;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.cloud.bigquery.QueryResponse;
import com.google.cloud.bigquery.TableResult;
import java.io.File;
import java.io.FileInputStream;
import java.util.UUID;
public void connectBQ() {
GoogleCredentials credentials1;
File credentialsPath = new File("service_account.json"); // TODO: update to your key path.
try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) {
credentials1 = ServiceAccountCredentials.fromStream(serviceAccountStream);
}
// Instantiate a client.
BigQuery bigquery = BigQueryOptions.newBuilder().setCredentials(credentials1).build().getService();
BigQuery bigquery1= BigQueryOptions.newBuilder().setCredentials(credentials1).setProjectId("1234").build().getService();
// Use the client.
System.out.println("Datasets:");
for (Dataset dataset : bigquery.listDatasets().iterateAll()) {
System.out.printf("%s%n", dataset.getDatasetId().getDataset());
}
当客户端对象试图使用无效的GCP凭据对您的GCP帐户服务进行身份验证时,通常会引发此类问题。基于此,您用来初始化credentialsPath变量的服务帐户文件路径可能无效,这使得setCredentials方法在尝试连接到服务时失败 File credentialsPath=新文件(“service_account.json”);//TODO:更新密钥路径 我建议您验证您使用的是JSON凭证密钥文件的正确文件路径,并查看指南,其中解释了创建您的凭证密钥文件和角色所需的过程,以防您尚未创建它们。通过这种方式,您将能够使用它们初始化credentialsPath变量并毫无问题地实现Google的示例