【问题标题】:PubSub returns 503 - Service Unavailable all the timePubSub 返回 503 - 服务一直不可用
【发布时间】:2020-05-20 21:54:57
【问题描述】:

我用 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 帐户(我是项目所有者)获得相同的结果。
  • 主题中有未确认的消息
  • 我的网络连接正常

但我无法让它工作。有什么想法吗?

编辑:我从异常中获得了更多信息:

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

【问题讨论】:

  • 能否附上完整的错误日志?
  • 我得到的唯一错误是: pubsub 503 failed to connect to all addresses 似乎与我的 python 环境有关,如果我通过 gcloud pubsub subscriptions pull "projects/my-project/subscriptions /my-sub”,它的工作文件。我尝试用 anaconda 创建一个新环境,但得到同样的错误
  • 实际上我正在尝试两者分开,都失败并出现相同的错误。
  • 503 错误应该由客户端库重试,这是否一直失败?您是否能够发布或接收消息?
  • 是的,它总是以相同的 503 永远失败,并且不会读取或发布任何内容。很奇怪。

标签: google-cloud-pubsub google-cloud-python


【解决方案1】:

可能存在防火墙规则或某些网络配置禁止/丢弃与 *.googleapis.com(或特别是 pubsub.googleapis.com)的连接。您可以使用another Google product 来查看此示例。

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2014-10-26
    • 2021-04-01
    • 2015-06-22
    • 2021-09-23
    • 2015-01-14
    相关资源
    最近更新 更多