无需Flask/Django,在Azure中运行Python脚本的方案咨询
在Azure上运行Python脚本(无需Flask/Django,基于Azure Functions)
一、准备工具
- 安装Azure Functions Core Tools(用于本地开发和部署)
- 安装Azure CLI(用于Azure资源管理)
- 确保本地有Python 3.8~3.11版本(Azure Functions当前支持的Python runtime范围)
- 拥有Azure账号并完成登录
二、创建无框架的Python函数项目
- 打开终端,创建并进入项目文件夹:
mkdir azure-python-script && cd azure-python-script - 初始化Azure Functions项目,指定Python runtime:
func init --worker-runtime python - 创建具体的函数(以HTTP触发为例,适合手动调用或API触发):
func new --template "HTTP trigger" --name RunScriptFunction
三、编写你的Python脚本逻辑
打开生成的function_app.py,替换为自定义脚本逻辑,无需引入Flask/Django:
import azure.functions as func import logging # 初始化函数应用,设置HTTP触发权限为匿名(可按需调整为FUNCTION/ADMIN级别) app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS) @app.route(route="execute-script") def execute_script(req: func.HttpRequest) -> func.HttpResponse: logging.info("开始执行自定义Python脚本") # --------------- 核心脚本逻辑区域 --------------- # 示例:数据处理、第三方API调用、文件读写等操作 script_result = "自定义脚本执行成功,处理结果:示例数据" # ------------------------------------------------ return func.HttpResponse( script_result, status_code=200, mimetype="text/plain" )
如果需要定时执行脚本(如每日数据同步),可创建定时器触发的函数:
import azure.functions as func import logging app = func.FunctionApp() # 定时器表达式:秒 分 时 日 月 周(示例为每天凌晨0点执行) @app.schedule(schedule="0 0 0 * * *", arg_name="timer", run_on_startup=False) def timed_script(timer: func.TimerRequest) -> None: logging.info("定时脚本启动") # 你的定时任务逻辑 logging.info("定时脚本执行完成")
四、本地测试
在项目根目录运行以下命令启动本地函数服务:
func start
启动后,访问终端给出的本地URL(如http://localhost:7071/api/execute-script)即可测试脚本执行效果。
五、部署到Azure
- 登录Azure CLI:
az login - 创建Azure函数应用资源(已有则跳过):
az functionapp create --resource-group <你的资源组名称> --consumption-plan-location <区域,如eastus> --runtime python --runtime-version 3.10 --functions-version 4 --name <函数应用名称> --storage-account <存储账户名称> - 部署本地代码到Azure:
func azure functionapp publish <函数应用名称>
六、其他触发方式选择
根据脚本场景,还可选择以下触发方式:
- Blob存储触发:指定Blob容器有文件上传/修改时自动执行脚本
- 队列触发:读取Azure Storage队列消息时执行脚本
- 事件网格触发:响应Azure服务的事件(如资源创建、更新)
七、注意事项
- 依赖包需写入
requirements.txt,部署时Azure会自动安装 - 敏感信息(如API密钥)不要硬编码,可在Azure门户「配置」-「应用程序设置」中添加环境变量,代码中用
os.getenv("变量名")读取 - 脚本运行时长不要超过Azure Functions超时限制(消费计划默认5分钟,最多可调整至10分钟;专用计划支持更长时长)
内容的提问来源于stack exchange,提问作者hicham zghari
相关产品推荐
相关产品推荐

