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

如何在Azure或其他平台托管支持列表输入输出的Python函数?

在Azure Functions中接收列表输入并返回列表的实现方案

Azure Functions完全支持你的需求,不需要更换平台。官方教程里的HTTPTrigger示例只是基础用法,实际上可以通过JSON请求体更规范地传递列表数据,以下是具体实现步骤和代码示例:

推荐实现方式:使用JSON请求体传递列表

Query参数本质是字符串,传递列表需要额外解析且容易出错,用JSON请求体是更可靠的方案:

import json
from azure.functions import HttpRequest, HttpResponse

def interesting_function(input_list):
    # 这里替换成你的实际列表处理逻辑
    return [item * 2 for item in input_list]  # 示例:每个元素翻倍

def main(req: HttpRequest) -> HttpResponse:
    try:
        # 解析请求体中的JSON数据
        req_body = req.get_json()
        input_list = req_body.get("input_list")
        
        # 校验输入是否为列表
        if not isinstance(input_list, list):
            return HttpResponse(
                json.dumps({"error": "input_list必须是列表类型"}),
                status_code=400,
                mimetype="application/json"
            )
        
        # 处理列表并返回结果
        output_list = interesting_function(input_list)
        return HttpResponse(
            json.dumps(output_list),
            mimetype="application/json"
        )
    except ValueError:
        # 处理JSON解析失败的情况
        return HttpResponse(
            json.dumps({"error": "请求体不是有效的JSON格式"}),
            status_code=400,
            mimetype="application/json"
        )

调用方式示例

用Python发送请求的代码:

import requests

url = "你的Azure Function触发URL"
payload = {"input_list": [1, 2, 3, 4]}
response = requests.post(url, json=payload)
print(response.json())  # 输出:[2, 4, 6, 8]

可选方案:通过Query参数传递列表(不推荐)

如果一定要用Query参数传递,需要自行解析字符串为列表,适合简单元素的场景:

import json
from azure.functions import HttpRequest, HttpResponse

def interesting_function(input_list):
    return [int(item) + 1 for item in input_list]  # 示例:每个数字加1

def main(req: HttpRequest) -> HttpResponse:
    input_str = req.params.get("input_list")
    if not input_str:
        return HttpResponse("缺少input_list查询参数", status_code=400)
    
    try:
        # 按逗号分割字符串转为列表(假设元素是数字)
        input_list = input_str.split(",")
        input_list = [int(item) for item in input_list]
    except ValueError:
        return HttpResponse("input_list格式无效,请传入逗号分隔的数字", status_code=400)
    
    output_list = interesting_function(input_list)
    return HttpResponse(json.dumps(output_list), mimetype="application/json")

调用方式示例

请求URL示例:你的Azure Function触发URL?input_list=1,2,3,4

其他可选平台

如果不想用Azure Functions,以下平台也能实现你的需求:

  • AWS Lambda:和Azure Functions类似的无服务器函数服务
  • FastAPI/Flask:构建Web API后部署到Azure App Service、AWS EC2/ECS、Vercel、Netlify等平台

但Azure Functions已经完全能满足你的需求,无需额外更换平台。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:36:18