无服务器Azure Function中Python代码requests模块缺失问题解决
解决Azure Timer Trigger函数缺少requests依赖的问题
第一步:创建requirements.txt文件
在你的Azure Functions项目根目录(和function.json同层级的父目录)新建一个requirements.txt文件,写入依赖包信息:
requests>=2.31.0 azure-functions>=1.17.0
注:
azure-functions是函数运行的基础依赖,建议一并写入,避免版本兼容问题
第二步:根据部署方式同步依赖
本地开发后部署(推荐)
如果你用Azure Functions Core Tools本地开发,执行部署命令时,工具会自动读取requirements.txt并在Azure环境安装依赖:
func azure functionapp publish <你的函数应用名称>
直接在Azure Portal编辑代码
如果直接在门户里维护代码:
- 进入函数应用的“代码 + 测试”页面,点击右上角的“上传文件”,选择本地创建好的
requirements.txt上传 - 或者在门户的代码编辑器里直接新建
requirements.txt并写入内容 - 保存后,Azure会自动触发依赖安装,等待几分钟后重新运行函数即可
额外注意:修复代码缩进问题
你提供的代码里main函数内的代码没有缩进,这会导致语法错误,修正后的代码如下:
import logging import requests from azure.functions import TimerRequest from datetime import datetime, timezone def main(mytimer: TimerRequest) -> None: utc_timestamp = datetime.utcnow().replace(tzinfo=timezone.utc).isoformat() if mytimer.past_due: logging.info('The timer is past due!') url = "https://test.com/dtes/1" payload={} headers = {} response = requests.request("GET", url, headers=headers, data=payload) # 可添加日志输出查看请求结果 logging.info(f"Request response status: {response.status_code}")
验证依赖是否安装成功
可以通过函数应用的“高级工具(Kudu)”进入控制台,执行以下命令查看已安装的包:
cd site/wwwroot python -m pip list
如果能看到requests包,说明安装成功。
内容的提问来源于stack exchange,提问作者Emkrypted
相关产品推荐
相关产品推荐

