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

GCP函数间HTTP调用返回404错误的解决方法咨询

GCP函数间HTTP调用返回404错误的解决方法咨询

你好,我最近尝试从GCP云函数A调用另一个云函数B,但一直遇到404页面找不到的错误,想请大家帮忙排查一下问题。

我已经完成了这些操作:

  • 创建了一个服务账号,并为其授予了**函数调用者(Function Invoker)**角色
  • 把这个服务账号添加为云函数B的函数管理员(Function Admin)
  • 下载了该服务账号的JSON密钥文件
  • 尝试在本地运行调用代码

我的调用代码如下:

from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession

function_url = 'https://europe-west6-xxx.cloudfunctions.net/yyy'
json_path = "/Users/xxx44b1.json"

credentials = service_account.IDTokenCredentials.from_service_account_file( 
         json_path, 
         target_audience=function_url,
 ) 

authed_session = AuthorizedSession(credentials)
response = authed_session.post(function_url)

response.text

运行这段代码后,得到的错误响应是:

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>404 Page not found</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Page not found</h1>
<h2>The requested URL was not found on this server.</h2>
<h2></h2>
</body></html>

可能的排查方向

结合GCP云函数的调用逻辑,我建议从这几个点入手检查:

  1. 核对函数B的URL准确性
    一定要从GCP控制台的云函数详情页复制完整的触发URL,别手动输入——很容易出现区域拼写错误、项目ID或者函数名称写错的情况,比如europe-west6是否和函数B的部署区域一致,yyy是不是函数的正确名称。
  2. 确认函数B的触发类型
    确保函数B是设置为HTTP触发,如果是Pub/Sub、存储触发这类非HTTP触发的函数,直接用HTTP请求调用肯定会返回404。另外也可以检查函数B的HTTP触发是否开启了正确的访问设置。
  3. 验证函数B的部署状态
    去GCP控制台查看函数B的部署记录,确认它已经成功部署并处于正常运行状态。如果部署过程中有报错,函数本身没有正常上线,自然会找不到页面。也可以在控制台直接测试函数B,看它能不能正常响应请求。
  4. 检查本地环境与权限配置
    确认本地机器能正常访问GCP的外部服务,有没有防火墙、代理阻止了请求。另外虽然权限问题一般返回403,但也可以再核对下服务账号的权限:确保它确实拥有函数B的调用权限,密钥文件也没有过期或损坏。

备注:内容来源于stack exchange,提问作者Alessandro Ceccarelli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:00:29