You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Curl向GCP订阅发送测试事件时遭遇502错误求助

问题描述

在同一环境下,使用curl向GCP的两个订阅推送测试事件时结果不同:

curl -k https://loansettlement-[servername]-ts.a.run.app -H "X-Serverless-Authorization: Bearer $(gcloud auth print-identity-token)"
"This one works fine"

curl -k https://loanapplication-[servername]-ts.a.run.app -H "X-Serverless-Authorization: Bearer $(gcloud auth print-identity-token)"
curl: (56) CONNECT tunnel failed, response 502

已确认URL是从GCP订阅直接复制,无拼写错误,且该订阅状态显示为活跃。排除代理问题(另一订阅可正常运行),寻求解决办法。

解决办法
  • 检查订阅目标服务的运行状态
    502错误多源于目标服务返回无效响应,先确认loanapplication对应的后端服务(如Cloud Run)状态:

    1. 登录GCP控制台,找到对应Cloud Run服务,查看实例是否处于"就绪"状态、是否有运行中的实例
    2. 查看服务日志,排查是否存在启动失败、资源不足或代码报错的记录
    3. 直接访问该Cloud Run服务的基础URL(不带订阅相关路径),测试能否正常响应
  • 验证订阅的权限配置
    即使URL正确,订阅的权限配置可能存在问题:

    1. 检查订阅使用的推送服务账号,是否拥有调用目标Cloud Run服务的roles/run.invoker角色
    2. 生成指定受众的身份令牌测试:执行gcloud auth print-identity-token --audiences=https://loanapplication-[servername]-ts.a.run.app,用生成的令牌替换原命令中的令牌再尝试请求
  • 排查网络与防火墙规则
    同一环境下目标服务的网络配置可能存在差异:

    1. 确认目标Cloud Run服务是否设置了私有VPC,且订阅所在网络具备访问权限
    2. 检查GCP项目的防火墙规则,是否存在阻止该服务流量的配置
    3. 在GCP内部环境(如Cloud Shell)中测试curl请求,排除本地网络的特殊限制
  • 重新创建订阅
    若以上排查均无问题,可能订阅本身存在配置异常:

    1. 删除当前的loanapplication订阅,按原配置重新创建
    2. 新订阅创建完成后立即测试curl请求,验证是否恢复正常

内容的提问来源于stack exchange,提问作者Lance Shi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:24:52