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

从Google BigQuery自定义函数调用Cloud Function报错:无法解析响应JSON

解决BigQuery调用Cloud Function时的JSON解析错误

问题根源

BigQuery远程自定义函数要求后端服务返回合法的JSON格式响应,你的Cloud Function当前直接返回纯文本字符串(如Hello World!),不符合JSON格式要求,导致BigQuery无法解析响应体,触发报错。

解决方案

1. 修改Cloud Function代码,返回JSON格式响应

需要将返回内容包装为JSON结构,并设置正确的Content-Type响应头:

import functions_framework
import json

@functions_framework.http
def hello_http(request):
    request_json = request.get_json(silent=True)
    request_args = request.args

    if request_json and 'name' in request_json:
        name = request_json['name']
    elif request_args and 'name' in request_args:
        name = request_args['name']
    else:
        name = 'World'
    
    # 返回JSON格式响应,指定Content-Type为application/json
    return json.dumps({'result': f'Hello {name}!'}), 200, {'Content-Type': 'application/json'}

2. 更新BigQuery自定义函数配置

添加response_json_path参数,告诉BigQuery从JSON响应的哪个字段提取返回值:

CREATE FUNCTION PROJECT_ID.DATASET_ID.hello_http() RETURNS STRING
REMOTE WITH CONNECTION PROJECT_ID.LOCATION.CONNECTION_NAME
OPTIONS (
 endpoint = 'ENDPOINT_URL',
 response_json_path = '$.result' -- 对应Cloud Function返回的JSON中的result字段
)

验证

重新部署修改后的Cloud Function,再次执行BigQuery调用语句:

SELECT `PROJECT_ID.DATASET_ID.hello_http()`

此时BigQuery能正确解析Cloud Function的JSON响应,提取并返回目标字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:08:14