对于默认兼容 Requests 的 google.cloud.storage.Client 传输,在启动 Python 作业前设置代理:

export HTTPS_PROXY=http://proxy.example:8080
python storage_job.py

项目和凭据已经配置好时,作业可以保留常规的客户端创建方式:

from google.cloud import storage

client = storage.Client()

HTTPS_PROXY 选择发往 HTTPS 目标的请求。其值中的 http:// 协议方案指的是中间代理的协议,并不会把 Cloud Storage 端点降级。需要公共 HTTP 路由时,从 HTTP 代理列表 获取端点地址,Cloud Storage URL 保持不变。

如果作业仍走其他路由,检查那个 Python 进程的环境,包括 NO_PROXY。已经运行的 notebook 内核或服务不会获得另一个终端后来 export 的变量。遇到证书相关的失败时,检查它的 CA 配置。

gcloud 命令能正常工作属于另一种对比:它可能使用不同的配置路径。同样,应用提供的自定义 HTTP 会话或替代传输也需要自己的代理策略。

相关文章