Azure Functions Python V2无function.json时如何配置MySQL连接?
Azure Functions Python V2 连接本地MySQL配置方案
1. 用local.settings.json存储连接配置
Python V2(隔离进程模型)不再依赖function.json管理绑定,本地开发的配置统一放在项目根目录的local.settings.json中:
- 打开
local.settings.json,在Values节点添加MySQL连接字符串:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "MYSQL_CONNECTION_STRING": "mysql+pymysql://your_username:your_password@localhost:3306/your_database_name" } }
2. 安装数据库依赖
在项目根目录的requirements.txt中添加MySQL驱动,以pymysql为例:
pymysql>=1.1.0 azure-functions>=1.17.0
执行命令安装依赖:
pip install -r requirements.txt
3. 代码中实现数据库连接
直接在函数代码中读取配置并建立连接,以下是HTTP触发函数的示例:
import os import pymysql import azure.functions as func app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS) @app.route(route="mysql-connect") def mysql_connect(req: func.HttpRequest) -> func.HttpResponse: # 从环境变量读取连接字符串 conn_str = os.environ.get("MYSQL_CONNECTION_STRING") if not conn_str: return func.HttpResponse("MySQL连接字符串未配置", status_code=500) try: # 建立数据库连接 conn = pymysql.connect(conn_str) cursor = conn.cursor() # 执行测试查询 cursor.execute("SELECT NOW()") current_time = cursor.fetchone()[0] # 关闭连接资源 cursor.close() conn.close() return func.HttpResponse(f"连接成功!当前数据库时间:{current_time}", status_code=200) except Exception as e: return func.HttpResponse(f"连接失败:{str(e)}", status_code=500)
4. 关键注意事项
- 确保本地MySQL服务处于运行状态,且允许localhost访问(检查MySQL配置文件的
bind-address,可设为127.0.0.1或0.0.0.0) - 连接字符串中的用户名、密码、数据库名称需与本地MySQL实际配置一致
- 若使用隔离进程模型,确保Azure Functions Core Tools为最新版本
内容的提问来源于stack exchange,提问作者Nahuel Barbieri
相关产品推荐
相关产品推荐

