Приложению функции Azure Python не удается импортировать пакеты при развертывании через Azure DevOps.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Приложению функции Azure Python не удается импортировать пакеты при развертывании через Azure DevOps.

Сообщение Anonymous »

Область применения.
У меня есть приложение-функция Python, которое работает должным образом локально и при развертывании через VS Code.
Проблема возникает при развертывании. приложение-функцию в группу ресурсов продукта (и приложение-функцию).
Различия между двумя развертываниями:
  • функция dev приложение (бессерверное), не интегрированное в виртуальную сеть, развертывается с помощью щелчка правой кнопкой мыши>развернуть в функциональном приложении
  • приложение-функцию продукта (план Премиум), интегрировано в виртуальную сеть, развертывается через конвейер Azure DevOps, выглядит так итак:

Код: Выделить всё

trigger:
- none

variables:
# Azure Resource Manager connection created during pipeline creation
azureServiceConnectionId: '******'

# Web app name
webAppName: '*******'

# Agent VM image name
vmImageName: 'ubuntu-latest'

# Environment name
environmentName: 'PROD'

# Project root folder. Point to the folder containing manage.py file.
projectRoot: $(System.DefaultWorkingDirectory)

# Resource group
resourceGroupName : '********'

# Python version: 3.11
pythonVersion: '3.11'

stages:
- stage: Build
displayName: Build stage
jobs:
- job: BuildJob
pool: Default
steps:
- script: |
pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt
workingDirectory: $(projectRoot)
displayName: "Install requirements"

- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(projectRoot)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true

- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
displayName: 'Upload package'
artifact: drop

- stage: Deploy
displayName: 'Deploy Web App'
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeploymentJob
pool: Default
environment: $(environmentName)
strategy:
runOnce:
deploy:
steps:
- task: AzureFunctionApp@2
displayName: 'Deploy Azure Web App'
inputs:
connectedServiceNameARM: '$(azureServiceConnectionId)'
appType: 'functionAppLinux'
appName: '$(webAppName)'
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
runtimeStack: 'PYTHON|3.11'
appSettings: '-KeyvaultURL ***** -StorageaccountURL *****'
deploymentMethod: 'auto'
Первоначальная проблема, с которой я столкнулся, заключалась в том, что функции просто не отображались, развертывание почти всегда проходит успешно. Покопавшись в кроличьей норе, мне удалось найти журналы, в которых показано, что «синхронизация триггеров HTTP не удалась», а также модули, которые не удалось импортировать (нет конкретных модулей — все).
С помощью журнал, я вижу, что выбрана правильная папка:

Код: Выделить всё

/home/site/wwwroot/.python_packages/lib/site-packages/pandas/
И я могу убедиться, что эти пакеты действительно там:
[img]https:/ /i.sstatic.net/vtpp0So7.png[/img]

По какой-то причине function_app.py не видит установленные модули, что вызывает цепную реакцию, приводящую к неработоспособности функций. отображается даже после успешного развертывания.
Что я пробовал до сих пор:
  • Несколько комбинаций использования ENABLE_ORYX_BUILD и SCM_DO_BUILD_DURING_DEPLOYMENT в стадии разработки.
  • Тип развертывания — zipDeploy и/или пакет.
На SO было несколько ресурсов. , но, кажется, ничто не решает эту проблему, это довольно странно, поскольку я чувствую, что этот тип развертывания должен выполняться почти каждый день многими разработчиками, поэтому либо я делаю что-то действительно неправильно, либо есть основная проблема, которую я не вижу понять.

Подробнее здесь: https://stackoverflow.com/questions/786 ... zure-devop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»