[英]How to connect to specific local MongoDB instance in Spring Boot Dockerised application?
[英]How to connect spring gcp PubSubTemplate to local instance?
我正在使用spring boot starter spring-cloud-gcp-starter-pubsub
和PubSubTemplate
。 它与实际的GCP完美配合,但是现在我想将其用于本地Google PubSub模拟器的测试中。 如何提供我的自定义网址,端口和没有凭据?
或者我必须像本例一样恢复使用纯Google sdk
编辑 :
我的应用程序中只有一个bean:
@Service
class TestLocalPubsub(pubSubTemplate: PubSubTemplate)
和
application.properties:
spring.cloud.gcp.pubsub.emulator-host=localhost:8085
当我运行该应用程序时,我得到:
原因:java.io.IOException:应用程序默认凭据不可用。 如果它们在Google Compute Engine中运行,则可用。 否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,指向指向定义凭据的文件。 有关更多信息,请参见https://developers.google.com/accounts/docs/application-default-credentials 。 在com.google.auth.oauth2.DefaultCredentialsProvider.getDefaultCredentials(DefaultCredentialsProvider.java:132)〜[google-auth-library-oauth2-http-0.12.0.jar:na] ...
但是当然,链接显示的是gcloud sdk,而不是pubsubtemplate
如您所链接的文章中所述,有几种方法可以使spring连接到仿真器:
SPRING_CLOUD_GCP_PUBSUB_EMULATORHOST=locahost:8085
(如果使用默认的仿真器端口 spring.cloud.gcp.pubsub.emulator-host=localhost:8085
对于测试,可以通过在test / main / resources中创建application.properties并设置spring.cloud.gcp.pubsub.emulator-host=localhost:8085
来使用第二种方法。 您无需覆盖任何自定义凭据。
为了使您的测试能够与模拟器一起使用,您需要提前在模拟器中创建主题和订阅。 GCP文档显示了如何通过安装Python Google Cloud Client库手动执行此操作: https : //cloud.google.com/pubsub/docs/emulator 。 否则,您的测试需要使用SDK创建它们。
这是将Spring与pubsub模拟器一起使用并使用Java SDK创建主题/订阅的完整示例: https : //github.com/nhartner/pubsub-emulator-demo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.