如何在Google Cloud Functions中处理HTTP请求的JSON payload并完成数组合并排序
Google Cloud Function Python 接收HTTP JSON payload 实现指南
什么是JSON payload
JSON payload 就是HTTP请求(一般是POST/PUT请求)的请求体中携带的JSON格式数据,你的场景下调用方发送的请求体结构参考如下:
{ "array1": [9, 3, 5, 1], "array2": [7, 2, 8, 4] }
你可以根据实际约定调整两个数组的字段名,以上是通用示例。
接收处理逻辑实现
Google Cloud Function的HTTP触发函数默认接收一个Flask Request 类型的入参,你可以直接通过该对象解析JSON payload,完整实现代码如下:
def merge_sort_service(request): # 第一步:校验请求是否携带合法JSON if not request.is_json: return {"error": "Request must be JSON format"}, 400 # 第二步:解析JSON payload为Python字典 req_data = request.get_json() # 第三步:参数合法性校验,避免非法输入报错 if "array1" not in req_data or "array2" not in req_data: return {"error": "Missing required fields: array1 and array2 are required"}, 400 if not isinstance(req_data["array1"], list) or not isinstance(req_data["array2"], list): return {"error": "array1 and array2 must be array type"}, 400 # 第四步:调用你已经实现的合并排序逻辑 # 此处替换为你自己写的算法代码即可,示例用内置方法做演示 merged_array = req_data["array1"] + req_data["array2"] sorted_result = sorted(merged_array) # 第五步:返回JSON格式的结果 return { "code": 0, "data": sorted_result, "msg": "success" }, 200, {"Content-Type": "application/json"}
注意事项
- 180秒的执行限制对于常规数组排序场景完全够用,除非你处理的是百万级以上元素的超大数组,普通场景不会触发超时
- 部署时触发类型选择「HTTP触发」即可,测试阶段可以开放未认证调用权限,生产环境建议配置对应的身份校验
- 本地/线上测试可以用curl命令发起请求验证:
curl -X POST 【你的云函数访问地址】 \ -H "Content-Type: application/json" \ -d '{"array1": [1,5,3], "array2": [2,6,4]}'
内容的提问来源于stack exchange,提问作者Dhruv gupta
相关产品推荐
相关产品推荐

