问题从PCF连接发布/订阅

时间:2020-09-18 23:05:22

标签: spring-boot google-cloud-pubsub pcf

我正在尝试从PCF环境(春季启动应用)连接Google Pub / Sub。该应用程序已成功从certificate.json文件加载凭据,并显示了Project ID。但启动后它在错误下方打印。

c.g.a.oauth2.ComputeEngineCredentials:无法检测我们是否在Google Compute Engine上运行。 错误13-[nio-8080-exec-4] o.a.c.c.C。[。[。[/]。[dispatcherServlet]:在路径为[]的上下文中,用于Servlet [dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为java.lang.IllegalStateException:期望服务InnerService [FAILED]正在运行,但是该服务具有FAILED],其根本原因是 java.io.IOException:应用程序默认证书不可用。如果它们在Google Compute Engine中运行,则可用。否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,指向指向定义凭据的文件。有关更多信息,请参见https://developers.google.com/accounts/docs/application-default-credentials。

这是我正在使用的代码,我正在从示例Rest控制器调用此方法。

public static void subscribeAsyncExample(String projectId, String subscriptionId) {
ProjectSubscriptionName subscriptionName =
    ProjectSubscriptionName.of(projectId, subscriptionId);
System.out.println("Processing messages...");
MessageReceiver receiver =
    (message, consumer) -> {
      System.out.println("Id : " + message.getMessageId());
      System.out.println("Data : " + message.getData().toStringUtf8());
      consumer.ack();
    };
Subscriber subscriber = null;
try {
  subscriber = Subscriber.newBuilder(subscriptionName, receiver).build();
  subscriber.startAsync().awaitRunning();
  subscriber.awaitTerminated();
} finally {
  if (subscriber != null) {
    subscriber.stopAsync();
  }
}

}

pom.xml

春季启动:2.3.2。发布 spring-cloud-gcp.version:1.1.3。发布

`

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-gcp-starter-pubsub</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>


<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-pubsub</artifactId>
</dependency>



<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-storage</artifactId>
</dependency>

`

日志: 默认项目ID为******* 服务帐户的默认凭据提供商*****-client-account@*******.gserviceaccount.com 默认使用的凭据范围:[https://www.googleapis.com/auth/pubsub、https://www.googleapis.com/auth/trace.append、https://www.googleapis.com/auth/ spanner.admin,https://www.googleapis.com/auth/cloudruntimeconfig、https://www.googleapis.com/auth/sqlservice.admin、https://www.googleapis.com/auth/devstorage.read_only, https://www.googleapis.com/auth/devstorage.read_write、https://www.googleapis.com/auth/cloud-platform、https://www.googleapis.com/auth/spanner.data、https: //www.googleapis.com/auth/datastore,https://www.googleapis.com/auth/cloud-vision]

0 个答案:

没有答案