Как решить проблему недостаточной аутентификации при использовании Pubsub на GCP - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь создать 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

Что я сделал для развертывания программ (в контейнере) для запуска на GCP / Kubernetes Engine :

  1. Войдите в облачную оболочку после перехода в мой проект для тестирования Pubsub
  2. Git клонируйте мои программы, которые тестируются в Eclipse
  3. Переместите mypubsub. json файл в / home / my_user_id
  4. export GOOGLE_APPLICATION_CREDENTIALS = "/ home / my_user_id / mp6key. json"
  5. Запустите 'mvn clean package' для сборки программ неправильной работы
  6. Выполнить 'docker build 'для создания файлов изображений
  7. Запустите' docker pu sh 'в pu sh файлы изображений в gcr.io repo
  8. Запустите' kubectl create ', чтобы создать развертывания и предоставления сервисов

Как только 2 микросервиса развернуты и выставлены, когда я попытался получить к ним доступ в браузере, тот, который опубликовал sh сообщение, работал нормально для извлечения данных из базы данных и обработки данные, затем произошел сбой с вышеуказанными ошибками при попытке доступа к API GCP Pubsub для публикации sh сообщения

Может ли кто-нибудь дать подсказку, что нужно проверить, чтобы решить проблему?

1 Ответ

1 голос
/ 22 марта 2020

Проблема была решена с помощью следующего руководства:

https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform

Вкратце решение состоит в добавлении следующих строк в deploy.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...