Azure函数通过az-cli部署后无法用Python读取CosmosDB数据
问题分析与解决
报错根源
函数运行触发的TypeError: not all arguments converted during string formatting,完全是因为这行日志代码的参数使用错误:
logging.info("++++++++",json.dumps(item, indent=True))
logging.info()的第一个参数是格式化模板字符串,第二个及以后的参数是用来填充模板占位符的变量。你直接传入两个独立字符串且无对应占位符,导致格式化逻辑失败。
修复方案
将日志语句改成以下两种正确写法之一:
- 字符串拼接方式:
logging.info("++++++++" + json.dumps(item, indent=True))
- 格式化占位符方式:
logging.info("++++++++ %s", json.dumps(item, indent=True))
部署环境差异说明
本地运行、VSCode部署时未触发报错,是因为不同环境的logging模块对参数错误的容错机制不同——这两个环境默认忽略了这类参数不匹配问题,而Azure Functions Core Tools部署的环境会严格校验参数格式,直接抛出错误。
另外,VSCode部署的传统文件结构(__init__.py+function.json)和Core Tools的v2模型结构(function_app.py+host.json)本身不会导致该问题,只是错误在后者环境中被暴露出来而已。
内容的提问来源于stack exchange,提问作者Ravi kant Gautam
相关产品推荐
相关产品推荐

