Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 从JSON密钥文件向大查询传递凭据_Google Cloud Platform_Google Bigquery_Google Cloud Iam - Fatal编程技术网

Google cloud platform 从JSON密钥文件向大查询传递凭据

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

我正在使用公共文档中的链接从Java客户机连接到大查询

出现一条错误消息:

“该方法从类型设置凭据(凭据) ServiceOptions.Builder引用了缺少的类型凭据“

我错过了什么

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的示例