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

Python Azure Function因依赖模块缺失导致部署异常问题求助

Python Azure Function因依赖模块缺失导致部署异常问题求助

我最近在尝试通过DevOps流水线部署Python Azure函数,遇到了一个棘手的问题:好几次流水线显示部署成功,但Azure门户里完全看不到我的函数。后来我试着把function_app.py文件顶部导入的所有非Python原生模块都删掉,居然就能正常部署了——这让我确定问题应该出在Python依赖包的构建环节,大概率是依赖没有被正确打包进去。

下面是我流水线中用于准备部署包的代码:

- job: PublishCode
      steps:
      - task: UsePythonVersion@0
        displayName: 'Use Python 3.11'
        inputs:
          versionSpec: 3.11 # Functions V2 supports Python 3.6 as of today
          architecture: 'x64'
      - bash: |
          pip install --target="./.python_packages/lib/site-packages" -r ./function_folder/requirements.txt
        workingDirectory: $(workingDirectory)
  
      - task: ArchiveFiles@2
        displayName: 'Archive files'
        inputs:
          rootFolderOrFile: '$(workingDirectory)'
          includeRootFolder: false
          archiveType: zip
          archiveFile: $(Build.ArtifactStagingDirectory)/package.zip
          replaceExistingArchive: true
  
      - publish: $(Build.ArtifactStagingDirectory)/package.zip
        artifact: drop

之后这个包会通过公司的Azure资源部署模板部署到Azure函数,模板里用到了AzureFunctionApp@1任务,相关代码如下:

# Azure Deploy Function 
          - ${{ if eq(parameters.validateOnly, false) }}:
            - task: AzureFunctionApp@1
              condition: and(succeeded(), startsWith(variables['APP_TYPE'], 'functionApp'))
              displayName: 'Azure Deploy Function'
              inputs:
                ConnectionType: 'AzureRM'
                azureSubscription: ${{parameters.serviceConnection}}
                appType: ${{parameters.appType}}
                appName: ${{parameters.appName}}
                ${{ if ne('${{ parameters.slotName }}', '') }}:
                  SlotName: ${{parameters.slotName}}
                  deployToSlotOrASE: true
                package: ${{parameters.package}}
                ResourceGroupName: $(APP_RESOURCE_GROUP)

补充一下,这个部署步骤是在Terraform完成函数应用的创建/更新之后运行的。

我特意去查了微软官方文档和相关的GitHub issue,里面都提到要把依赖安装到./.python_packages/lib/site-packages目录下,我完全按照这个要求做了,但问题依然存在。而且我已经确认过生成的zip包里面确实包含了.python_packages文件夹,实在搞不懂哪里出问题了,有没有大佬能帮忙排查一下?

备注:内容来源于stack exchange,提问作者Ben Halladay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:48:07