You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps部署Flask服务:如何用变量组替代.env文件?

Azure DevOps部署Flask时处理.env变量的正确方式

让代理在发布阶段创建并填充.env文件是完全合理且推荐的做法。和React构建时注入变量的思路不同,Python/Flask的环境变量通常是运行时读取的,直接生成.env文件更贴合Python生态的使用习惯。

具体实现步骤

  • 关联变量组:确保你已创建包含敏感信息的变量组,并在发布管道中完成关联,标记敏感变量为保密避免明文暴露。
  • 添加生成.env的任务:在部署阶段添加命令行/PowerShell任务,根据目标环境选择脚本:
    • Linux环境(Cmd Line任务):
      cat > .env << EOF
      DATABASE_URL=$(DATABASE_URL)
      TENANT_ID=$(TENANT_ID)
      # 按需添加其他变量
      EOF
      
      将该任务放在Flask启动/部署任务之前,保证.env生成在应用根目录。
    • Windows环境(PowerShell任务):
      @"
      DATABASE_URL=$env:DATABASE_URL
      TENANT_ID=$env:TENANT_ID
      # 按需添加其他变量
      "@ | Out-File -FilePath .env -Encoding utf8
      
  • 验证应用读取逻辑:确保Flask代码通过python-dotenv加载.env:
    from dotenv import load_dotenv
    import os
    
    load_dotenv()
    db_url = os.getenv("DATABASE_URL")
    tenant_id = os.getenv("TENANT_ID")
    

可选替代方案

如果不想生成.env文件,可直接在Azure Web App部署任务的「应用设置」中映射变量组的变量,Flask通过os.getenv直接读取系统环境变量即可,这种方式更适合云托管的Web App场景。但生成.env的方案更灵活,能保持本地开发与生产环境的配置逻辑一致。

内容的提问来源于stack exchange,提问作者PKPython

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:45:44