Azure Functions Python v2 CosmosDB输入绑定缺失connection参数报错求助
问题解决:Azure Function Python v2 Cosmos DB绑定报错"missing 'connection'参数"
错误原因
你使用的是Python v2编程模型,但代码里沿用了v1模型的connection_string_setting参数名。在v2模型中,Cosmos DB输入绑定的连接配置参数已更名为connection,因此触发了参数缺失的报错。
修正后的代码
将connection_string_setting替换为connection即可解决问题,同时补充类型注解和序列化处理避免后续报错,修正后的代码如下:
import azure.functions as func import logging import json app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION) @app.function_name(name="system") @app.route(route="system") @app.cosmos_db_input(arg_name="documents", database_name="database", container_name="systems", connection="DATABASE_CONNECTION_STRING") # 修改参数名 def system(req: func.HttpRequest, documents: func.DocumentList) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') # 将DocumentList转换为可JSON序列化的字典列表 docs_list = [doc.to_dict() for doc in documents] return func.HttpResponse( json.dumps(docs_list), mimetype="application/json", status_code=200 )
额外注意事项
- 确保
local.settings.json的Values节点下存在DATABASE_CONNECTION_STRING,且值为你的Cosmos DB账户连接字符串:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "你的存储账户连接字符串", "FUNCTIONS_WORKER_RUNTIME": "python", "DATABASE_CONNECTION_STRING": "你的Cosmos DB连接字符串" } } - 确认
azure-functions包版本支持v2模型,可通过pip install --upgrade azure-functions更新到最新稳定版。 - 必须为
documents参数添加func.DocumentList类型注解,否则函数无法正确识别绑定的Cosmos DB数据。
内容的提问来源于stack exchange,提问作者Gavin Cookman
相关产品推荐
相关产品推荐

