Roy*_* Hu 3 publish-subscribe google-cloud-platform google-kubernetes-engine
我正在尝试构建 2 个微服务(在 Java Spring Boot 中)以使用 GCP Pub/Sub 相互通信。
首先,我测试了程序(在 Eclipse 中)在我的本地笔记本电脑( http://localhost )中按预期工作,即一个微服务发布了消息,另一个微服务使用在 GCP 中创建的主题/订阅者(以及凭证私钥:mypubsub.json)。
然后,我部署了相同的程序来运行 GCP,但出现以下错误:
- 2020-03-21 15:53:16.831 WARN 1 --- [bsub-publisher2] o.s.c.g.p.c.p.PubSubPublisherTemplate : Publishing to json-payload-sample-topic topic failed
- com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had insufficient authentication scopes. at com.google.api.gax.rpc.ApiExceptionFactory
Run Code Online (Sandbox Code Playgroud)
我做了什么来部署程序(在容器中)以在 GCP/Kubernetes Engine 上运行:
一旦部署并公开这两个微服务,当我尝试在浏览器中访问它们时,发布消息的微服务可以很好地从数据库检索数据并处理数据,然后在尝试访问 GCP Pubsub API 时失败并出现上述错误发布消息
任何人都可以提供有关检查哪些内容以解决问题的提示吗?
该问题已按照指南解决:
https://cloud.google.com/kubernetes-engine/docs/tutorials/authentication-to-cloud-platform
简而言之,解决方案是在deployment.yaml中添加以下行来加载凭证密钥:
- name: google-cloud-key
secret:
secretName: pubsub-key
containers:
- name: my_container
image: gcr.io/my_image_file
volumeMounts:
- name: google-cloud-key
mountPath: /var/secrets/google
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /var/secrets/google/key.json
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5228 次 |
| 最近记录: |