Развертывание функции Azure с помощью действий Github завершается неудачей без указания четкой причины

Я пытаюсь развернуть функцию Azure с помощью Github Actions, используя стандартный код из Microsoft docs с незначительной корректировкой для использования SSH с pip:

env:
  AZURE_FUNCTIONAPP_NAME: 'func-app-name'
  AZURE_FUNCTIONAPP_PACKAGE_PATH: '.'         # set this to the path to your function app project, defaults to the repository root
  PYTHON_VERSION: '3.11'                      # set this to the python version to use (e.g. '3.6', '3.7', '3.8')

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    environment: dev
    steps:
    - name: 'Checkout GitHub Action'
      uses: actions/checkout@v3

    - name: Setup Python ${{ env.PYTHON_VERSION }} Environment
      uses: actions/setup-python@v4
      with:
        python-version: ${{ env.PYTHON_VERSION }}

    - name: Install SSH key  # extra step
      uses: webfactory/[email protected]
      with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

    - name: 'Resolve Project Dependencies Using Pip'
      shell: bash
      run: |
        pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
        python -m pip install --upgrade pip
        pip install -r requirements.txt --target = ".python_packages/lib/site-packages"
        popd

    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v1
      id: fa
      with:
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
        package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
        scm-do-build-during-deployment: true
        enable-oryx-build: true

Шаг развертывания завершается неудачно. В журналах не указана четкая причина:

  with:
    app-name: func-app-name
    package: .
    publish-profile: ***
    scm-do-build-during-deployment: true
    enable-oryx-build: true
    respect-pom-xml: false
    respect-funcignore: false
    remote-build: false
  env:
    AZURE_FUNCTIONAPP_NAME: func-app-name
    AZURE_FUNCTIONAPP_PACKAGE_PATH: .
    PYTHON_VERSION: 3.11
    pythonLocation: /opt/hostedtoolcache/Python/3.11.9/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.9/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.9/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.9/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.9/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.9/x64/lib
    SSH_AUTH_SOCK: /tmp/ssh-***/agent.***
    SSH_AGENT_PID: ***
  
Successfully parsed SCM credential from publish-profile format.
Using SCM credential for authentication, GitHub Action will not perform resource validation.
Successfully acquired app settings from function app (with SCM credential)!
Will archive . into /home/runner/work/_temp/temp_web_package_***.zip as function app content
Will use Kudu https://<scmsite>/api/zipdeploy to deploy since publish-profile is detected.
Setting SCM_DO_BUILD_DURING_DEPLOYMENT in Kudu container to true
Update using context.kuduService.updateAppSettingViaKudu
Response with status code 204
App setting SCM_DO_BUILD_DURING_DEPLOYMENT propagated to Kudu container
Setting ENABLE_ORYX_BUILD in Kudu container to true
Update using context.kuduService.updateAppSettingViaKudu
Response with status code 204
App setting ENABLE_ORYX_BUILD propagated to Kudu container
Package deployment using ZIP Deploy initiated.
Fetching changes.
Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/***.zip (128.94 MB) to /tmp/zipdeploy/extracted
Error: Failed to deploy web package to App Service.
Error: Execution Exception (state: PublishContent) (step: Invocation)
Error:   When request Azure resource at PublishContent, zipDeploy : Failed to use /home/runner/work/_temp/temp_web_package_***.zip as ZipDeploy content
Error:     Package deployment using ZIP Deploy failed. Refer logs for more details.
Error: Deployment Failed!

Развертывание работает нормально, если я делаю это со своего локального компьютера с помощью:

func azure functionapp publish "func-app-name"

В чем здесь может быть проблема?

Добавьте настройку приложения WEBSITE_RUN_FROM_PACKAGE = 1 под FunctionApp=>Configuration=>environment variables и повторите развертывание.

Pravallika KV 22.08.2024 11:56

Вы спасатель! Можно ли каким-либо образом получить это исправление из сообщения об ошибке? Похоже на неясную ошибку.

poklaassen 22.08.2024 12:21

Пожалуйста, проверьте ответ ниже.

Pravallika KV 22.08.2024 13:25
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы устранить эту ошибку, добавьте настройку приложения WEBSITE_RUN_FROM_PACKAGE = 1 под FunctionApp=>Configuration=>Environment Variables=>App Settings.

Этот параметр помогает правильно запускать действия GitHub и развертывать приложение-функцию без каких-либо ошибок.

Ошибка Failed to use /home/runner/work/_temp/temp_web_package_***.zip as ZipDeploy content в рабочем процессе указывает на то, что развертывание ZIP-пакета в Службе приложений Azure не удалось, особенно сбой происходит, когда Azure пытается использовать ZIP-файл.

В случае сбоя развертывания ZIP лучше всего использовать параметр Website_Run_from_package. Он пропускает все проблемы, связанные с процессом извлечения, и напрямую монтирует содержимое ZIP-файла, избегая извлечения.

Другие вопросы по теме

Получение ошибки «Azure.Storage.Queues: значение не может быть нулевым» в функции Azure с триггером BLOB-объекта
Расширения OpenAPI для Swagger в функции Azure v4 — пользовательский интерфейс Swagger пуст
Ошибка [ERR_MODULE_NOT_FOUND]: работнику не удалось загрузить точку входа «dist/src/functions/trigger.js»
Как я могу зарегистрировать HTTP-ответ с помощью промежуточного программного обеспечения в функциях Azure, выполняющих изолированный процесс .NET 8?
Как отладить zip-развертывание функции Python Azure?
Триггер очереди Azure с настраиваемым именем подключения
Подключение к служебной шине из стандартного рабочего процесса приложения логики в сравнении с кодом
Функции Azure исчезают из приложения при смене компьютеров
Как я могу отладить ошибку: сообщение достигло MaxDequeueCount, равного 5. Перемещение сообщения в очередь «pcaob-poison»?
Устойчивые функции Azure не вызываются при использовании с триггером Q с использованием управляемого удостоверения