BigQuery bq SSL 问题

Posted

技术标签:

【中文标题】BigQuery bq SSL 问题【英文标题】:BigQuery bq SSL issue 【发布时间】:2019-05-27 18:59:01 【问题描述】:

我有一个定期运行的 BigQuery 作业。到目前为止运行良好。现在我收到以下错误。当我直接尝试在终端中执行bq 命令时,它不会始终导致相同的错误响应。有时效果很好。

使用的bash命令是:

bq query --project_id=$BQ_PROJECT_ID --nouse_legacy_sql --format=json --quiet $MAX_TIME_QUERY

它会引发以下错误:

查询操作中出现 BigQuery 错误:无法联系服务器。请再试一次。 回溯:回溯(最近一次通话最后一次): BuildApiClient 中的文件“/google-cloud-sdk/platform/bq/bigquery_client.py”,第 681 行 _, discovery_document = http.request(discovery_url) 文件“/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/transport.py”,第 160 行,在 new_request 凭据._refresh(orig_request_method) _refresh 中的文件“/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/client.py”,第 762 行 self._do_refresh_request(http) _do_refresh_request 中的文件“/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/client.py”,第 781 行 正文=正文,标题=标题) 请求中的文件“/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/transport.py”,第 283 行 连接类型=连接类型) 文件“/google-cloud-sdk/platform/bq/third_party/httplib2/init.py”,第 1626 行,在请求中 (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) _request 中的文件“/google-cloud-sdk/platform/bq/third_party/httplib2/init.py”,第 1368 行 (response, content) = self._conn_request(conn, request_uri, method, body, headers) _conn_request 中的文件“/google-cloud-sdk/platform/bq/third_party/httplib2/init.py”,第 1288 行 连接.connect() 连接中的文件“/google-cloud-sdk/platform/bq/third_party/httplib2/init.py”,第 1082 行 引发 SSLHandshakeError(e) SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:661)

我在 docker 容器 (google/cloud-sdk:206.0.0-alpine) 中使用它。同样的容器在我的 Mac 笔记本电脑上运行时也可以正常工作。当我在 linux 服务器上进行检查时,它失败了。

【问题讨论】:

SSL 错误通常表明某种代理正在干扰。 @ElliottBrossard 为什么它不会始终导致错误?如果我运行多次,它有时会起作用。还有为什么 docker 容器中的命令可以在我的 mac 上运行,但不能在 linux 服务器上运行。 卸载 httplib2 软件包后,我能够解决这个“证书验证失败”问题 @Christopher 但不一致,这是我面临的问题。它也可以在我的 mac 上使用 google cloud sdk docker 容器运行。您遇到的问题的任何链接。 @premkumar 我没有为我的问题创建 SO 帖子。每当我尝试在我的 Cloud Shell 上运行任何 python 脚本时,这个问题就会发生在我身上(它可能搞砸了)。我试图到处寻找有关如何解决错误“SSL:CERTIFICATE_VERIFY_FAILED”的答案,但最后我确实卸载了软件包并且问题得到了解决。 【参考方案1】:

升级到google/cloud-sdk:250.0.0-alpine 版本解决了这个问题。我没有弄清楚这个问题的根本原因,但升级有助于解决它。

【讨论】:

以上是关于BigQuery bq SSL 问题的主要内容,如果未能解决你的问题,请参考以下文章

Dialogflow 与 BigQuery 的集成 - 将整数参数传递给 BQ

用户在项目 gdelt-bq 中没有 bigquery.jobs.create 权限

BigQuery:使用 python BQ API 向现有表添加新列

如何在 BQ 命令行中设置 Bigquery 需要分区过滤器

BigQuery BQ.insert_rows_json 和 BQ.load_from_json 的区别?

在 CLI 上使用 bq 从 BigQuery 标准 SQL 连接表中打印出漂亮的值表?