做公司限制,我必须为不同的谷歌服务使用不同的服务帐户。
其中一个帐户用于 pubsub,第二个帐户用于 bigquery。
我已经获得了 pubsub 身份验证以与 spring 一起使用。
片段
@Autowired
private ClientConfiguration clientConfiguration;
private Context context = new Context();
.
.
.
context.setClientConfiguration(clientConfiguration);
String projectId = clientConfiguration.getSubscriptionProjectDefault();
List<ReceivedMessage> receivedMessageList = getPubSubMessages(projectId, clientConfiguration.getSubscriptionNameDefault(), Integer.parseInt(clientConfiguration.getNumMaxOfMessages()));
为bigquery执行这些步骤时,密钥的路径是“/secret/secret_name”。当执行 URL 所说的操作时,我在文件中得到一个空指针异常。这是片段:
log.debug("PATH_BIG_QUERY_CREDENTIALS:"+System.getenv("PATH_BIG_QUERY_CREDENTIALS"));
String pathBigQueryCredentials = System.getenv("PATH_BIG_QUERY_CREDENTIALS");
File credentialsPath = new File(pathBigQueryCredentials);
FileInputStream serviceAccountStream = new FileInputStream(credentialsPath);
GoogleCredentials credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);
BigQuery bigquery = BigQueryOptions.newBuilder().setCredentials(credentials).build().getService();
使用第二个服务帐户的正确方法是什么?这是不可商量的:(