PubSub возвращает 503 - Сервис недоступен все время - PullRequest
0 голосов
/ 05 февраля 2020

Я создал небольшую программу в Python для чтения сообщений из подписки Pub / Sub. Я использую Python 3.7 и google-cloud-pubsub 1.1.0.

Мой код очень прост:

from google.cloud import pubsub_v1
from google.auth import jwt
import json

service_account_info = json.load(open("service-account-info.json"))
audience_sub = "https://pubsub.googleapis.com/google.pubsub.v1.Subscriber"

credentials_sub = jwt.Credentials.from_service_account_info(
    service_account_info, audience=audience_sub
)

subscriber_ring = pubsub_v1.SubscriberClient(credentials=credentials_sub)

def callback1(message):
    print("In callback!!")
    print(message.data)
    message.ack()

sub_path = "projects/my-project/subscriptions/my-sub"
future = subscriber_ring.subscribe(sub_path, callback=callback1)
future.result()

Когда код достигает «future.result ()», он зависает там вечно и через 10 минут отключается с ошибкой

pubsub 503 не удалось подключиться ко всем адресам

Я уже подтвердил, что:

  • Pub / Sub
  • Моя учетная запись службы имеет все необходимые разрешения. Я даже пытался с моей личной учетной записью Google Cloud (я владелец проекта) с теми же результатами.
  • В Topi есть неопакованные сообщения c
  • Мое сетевое подключение в порядке

но я не могу заставить его работать. Есть идеи?

РЕДАКТИРОВАТЬ: я получил больше информации из исключения:

om_grpc_error(exc), exc)
  File "<string>", line 3, in raise_from
google.api_core.exceptions.ServiceUnavailable: 503 failed to connect to all addresses

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/anaconda3/envs/loadtest/lib/python3.7/site-packages/google/cloud/pubsub_v1/publisher/_batch/thread.py", line 219, in _commit
    response = self._client.api.publish(self._topic, self._messages)
  File "/usr/local/anaconda3/envs/loadtest/lib/python3.7/site-packages/google/cloud/pubsub_v1/gapic/publisher_client.py", line 498, in publish
    request, retry=retry, timeout=timeout, metadata=metadata
  File "/usr/local/anaconda3/envs/loadtest/lib/python3.7/site-packages/google/api_core/gapic_v1/method.py", line 143, in __call__
    return wrapped_func(*args, **kwargs)
  File "/usr/local/anaconda3/envs/loadtest/lib/python3.7/site-packages/google/api_core/retry.py", line 286, in retry_wrapped_func
    on_error=on_error,
  File "/usr/local/anaconda3/envs/loadtest/lib/python3.7/site-packages/google/api_core/retry.py", line 206, in retry_target
    last_exc,
  File "<string>", line 3, in raise_from
google.api_core.exceptions.RetryError: Deadline of 60.0s exceeded while calling functools.partial(<function _wrap_unary_errors.<locals>.error_remapped_callable at 0x7fa030891a70>, 


, metadata=[('x-goog-request-params', 'topic=projects/my-project/subscriptions/my-sub'), ('x-goog-api-client', 'gl-python/3.7.6 grpc/1.26.0 gax/1.16.0 gapic/1.2.0')]), last exception: 503 failed to connect to all addresses

1 Ответ

0 голосов
/ 19 февраля 2020

Вполне вероятно, что существует правило брандмауэра или какая-то конфигурация сети, которая запрещает / сбрасывает соединения с * .googleapis.com (или, в частности, pubsub.googleapis.com). Вы можете увидеть пример этого с другим продуктом Google .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...