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

如何阻止Azure DevOps部署Azure Function时自动执行pip install

阻止Azure Function部署时自动执行pip install的方法

你已将依赖包打包进部署压缩包,但部署仍会触发pip install,原因是Azure Function默认部署流程会自动执行构建步骤。要阻止该行为,只需添加应用设置并调整流水线配置:

解决方案步骤

  1. 添加应用设置禁用自动构建
    设置SCM_DO_BUILD_DURING_DEPLOYMENT为false即可跳过部署阶段的自动构建(包括pip install),有两种设置方式:

    • Azure门户手动配置:进入Function App的「配置」→「应用程序设置」,新增键为SCM_DO_BUILD_DURING_DEPLOYMENT、值为false的设置项。

    • 流水线自动配置:修改AzureRmWebAppDeployment@4任务,添加appSettings参数,部署时自动配置该设置:

      - task: AzureRmWebAppDeployment@4
        displayName: Azure Function App Deploy
        inputs:
          appType: 'functionAppLinux'
          deployToSlotOrASE: true
          DeploymentType: 'zipDeploy'
          packageForLinux: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
          runtimeStack: 'PYTHON|3.11'
          appSettings: '-SCM_DO_BUILD_DURING_DEPLOYMENT false'
      
  2. 确认压缩包结构合规
    确保.python_packages/lib/site-packages目录位于压缩包根目录下,Azure Function运行时会直接加载该目录内的依赖,无需重新安装。

修改后的完整流水线配置

trigger:
- main
variables:
  workingDirectory: '$(System.DefaultWorkingDirectory)'

steps:
  - task: UsePythonVersion@0
    displayName: 'Use Python 3.11'
    inputs:
      versionSpec: 3.11
  - bash: |
      pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt
    workingDirectory: $(workingDirectory)
    displayName: 'Install application dependencies'
  - task: ArchiveFiles@2
    displayName: 'Generate ZIP'
    inputs:
      rootFolderOrFile: '$(workingDirectory)'
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip

  - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
    artifact: drop

  - task: AzureRmWebAppDeployment@4
    displayName: Azure Function App Deploy
    inputs:
      appType: 'functionAppLinux'
      deployToSlotOrASE: true
      DeploymentType: 'zipDeploy'
      packageForLinux: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
      runtimeStack: 'PYTHON|3.11'
      appSettings: '-SCM_DO_BUILD_DURING_DEPLOYMENT false'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:35:22