Служба приложений Azure для Django не работает с Azure Devops Pipeline

У меня есть служба приложений, работающая в Azure в среде Linux.

Я пытаюсь связать его с Azure Devops Pipeline, чтобы иметь CI/CD для репозиториев и ветвей на Github.

Я хочу, чтобы сборки выполнялись в Azure Pipeline и инфраструктуре Azure, а не в Github Actions.

Я попробовал все остальные предложения, включая следующие переменные среды в Службе приложений:

SCM_DO_BUILD_DURING_DEPLOYMENT=true

WEBSITE_NODE_DEFAULT_VERSION=~18

WEBSITE_RUN_FROM_PACKAGE=true

Вот журналы, которые я получаю из журналов Kudu/Azure Devops Pipeline/AppService:

/home/LogFiles/2024_08_14_ln1xsdlwk0000K3_docker.log  (https://project-app-development.scm.azurewebsites.net/api/vfs/LogFiles/2024_08_14_ln1xsdlwk0000K3_docker.log)
2024-08-14T23:51:45.168Z INFO  -  Status: Image is up to date for 10.1.0.6:13209/appsvc/python:3.10_20240619.2.tuxprod
2024-08-14T23:51:45.179Z INFO  - Pull Image successful, Time taken: 0 Seconds
2024-08-14T23:51:45.223Z INFO  - Starting container for site
2024-08-14T23:51:45.223Z INFO  - docker run -d --expose=8000 --name project-app-development_0_f2e0544d -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e WEBSITE_SITE_NAME=project-app-development -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=project-app-development.azurewebsites.net -e WEBSITE_INSTANCE_ID=3f627dbbecdaed255d87aa9c3e8f1448758df1cdff41f5e14b114384ea9b244a appsvc/python:3.10_20240619.2.tuxprod gunicorn -b :$PORT project.wsgi
2024-08-14T23:51:45.223Z INFO  - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2024-08-14T23:51:45.893Z INFO  - Initiating warmup request to container project-app-development_0_f2e0544d for site project-app-development
2024-08-14T23:51:49.043Z ERROR - Container project-app-development_0_f2e0544d for site project-app-development has exited, failing site start
2024-08-14T23:51:49.057Z ERROR - Container project-app-development_0_f2e0544d didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging.
2024-08-14T23:51:49.063Z INFO  - Stopping site project-app-development because it failed during startup.
/home/LogFiles/2024_08_14_ln1xsdlwk0000WT_default_docker.log  (https://project-app-development.scm.azurewebsites.net/api/vfs/LogFiles/2024_08_14_ln1xsdlwk0000WT_default_docker.log)
2024-08-14T00:05:39.611783454Z   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2024-08-14T00:05:39.611788754Z   File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
2024-08-14T00:05:39.611793955Z   File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
2024-08-14T00:05:39.611799355Z   File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
2024-08-14T00:05:39.611804655Z ModuleNotFoundError: No module named 'project'
2024-08-14T00:05:39.611810055Z [2024-08-14 00:05:39 +0000] [83] [INFO] Worker exiting (pid: 83)
2024-08-14T00:05:39.756375163Z [2024-08-14 00:05:39 +0000] [49] [ERROR] Worker (pid:83) exited with code 3
2024-08-14T00:05:39.758705055Z [2024-08-14 00:05:39 +0000] [49] [ERROR] Shutting down: Master
2024-08-14T00:05:39.758726256Z [2024-08-14 00:05:39 +0000] [49] [ERROR] Reason: Worker failed to boot.

Вот моя команда запуска в конфигурации Azure AppService:

gunicorn -b :8000 project.wsgi



% cat app.yaml 
runtime: python37
entrypoint: gunicorn -b :$PORT project.wsgi

# service: "project-ai-266410"
service: "default"
handlers:
# This configures Google App Engine to serve the files in the app's static
# directory.
- url: /static
  static_dir: static
  secure: always

# This handler routes all requests not caught above to your main app. It is
# required when static routes are defined, but can be omitted (along with
# the entire handlers section) when there are no static files defined.
- url: /.*
  script: auto
  secure: always%   


% cat ./project/wsgi.py 
"""
WSGI config for project project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")

application = get_wsgi_application()

Вот мой файл рабочего процесса на GitHub:

# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
# More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions

name: Build and deploy Python app to Azure Web App - project-app-development

on:
  push:
    branches:
      - 543-azure-based-secrets
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Set up Python version
        uses: actions/setup-python@v5
        with:
          python-version: '3.12'

      - name: Create and start virtual environment
        run: |
          python -m venv antenv
          source antenv/bin/activate
      - name: Install dependencies
        run: pip install -r requirements.txt
        
      # Optional: Add step to run tests here (PyTest, Django test suites, etc.)

      - name: Zip artifact for deployment
        run: zip release.zip ./* -r

      - name: Upload artifact for deployment jobs
        uses: actions/upload-artifact@v4
        with:
          name: python-app
          path: |
            release.zip
            !venv/
  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    permissions:
      id-token: write #This is required for requesting the JWT

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v4
        with:
          name: python-app

      - name: Unzip artifact for deployment
        run: unzip release.zip

      
      - name: Login to Azure
        uses: azure/login@v2
        with:
          client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_5DF5B8B04E0349C7828DF5D5B258B9CD }}
          tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_741E597FD19043F4B2CBF83B89C75D92 }}
          subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_ED0C3DE592084669926EEBA461FB5E98 }}

      - name: 'Deploy to Azure Web App'
        uses: azure/webapps-deploy@v3
        id: deploy-to-webapp
        with:
          app-name: 'project-app-development'
          slot-name: 'Production'

Azure создает файл Yaml:

trigger:
- $(feature-branch)

variables:
  azureServiceConnectionId: '-db5f-4993-91f8-85f3a75cb357'
  webAppName: 'project-app-development'
  vmImageName: 'ubuntu-latest'
  environmentName: 'project-app-development'
  projectRoot: $(System.DefaultWorkingDirectory)
  pythonVersion: '3.8'
  system.debug: true

stages:
- stage: Build
  displayName: Build stage
  jobs:
  - job: BuildJob
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '$(pythonVersion)'
      displayName: 'Use Python $(pythonVersion)'

    - script: |
        python -m virtualenv env
        source env/bin/activate
        python -m pip install --upgrade pip
        pip install -r requirements.txt
      workingDirectory: $(projectRoot)
      displayName: "Install requirements"

    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: '$(projectRoot)'
        includeRootFolder: true
        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:
      vmImage: $(vmImageName)
    environment: $(environmentName)
    strategy:
      runOnce:
        deploy:
          steps:
          - task: UsePythonVersion@0
            inputs:
              versionSpec: '$(pythonVersion)'
            displayName: 'Use Python version'

          - task: AzureWebApp@1
            displayName: 'Deploy Azure Web App : project-app-development'
            inputs:
              azureSubscription: $(azureServiceConnectionId)
              appName: $(webAppName)
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip

Сообщение об ошибке последних действий github:

##[debug]logs from kudu deploy: https://project-app-development.scm.azurewebsites.net/api/deployments/temp-69fc3536/log
##[debug]setting affinity cookie ["ARRAffinity=f1c95587fdc6f942a20e5a5078e78322a753dff56e2f30cc9c09a2b930fa89ac;Path=/;HttpOnly;Secure;Domain=project-app-development.scm.azurewebsites.net","ARRAffinitySameSite=f1c95587fdc6f942a20e5a5078e78322a753dff56e2f30cc9c09a2b930fa89ac;Path=/;HttpOnly;SameSite=None;Secure;Domain=project-app-development.scm.azurewebsites.net"]
##[debug][GET] https://project-app-development.scm.azurewebsites.net/api/deployments/temp-69fc3536/log
##[debug]getDeploymentLogs. Data: {"statusCode":200,"statusMessage":"OK","headers":{"content-length":"268","content-type":"application/json; charset=utf-8","date":"Mon, 19 Aug 2024 15:57:25 GMT","server":"Kestrel"},"body":[{"log_time":"2024-08-19T15:57:13.2195847Z","id":"afc2dd47-e1ad-4b07-b6aa-fb59b6531aad","message":"Fetching changes.","type":0,"details_url":"https://project-app-development.scm.azurewebsites.net/api/deployments/temp-69fc3536/log/afc2dd47-e1ad-4b07-b6aa-fb59b6531aad"}]}
Fetching changes.
##[debug]setting affinity cookie ["ARRAffinity=f1c95587fdc6f942a20e5a5078e78322a753dff56e2f30cc9c09a2b930fa89ac;Path=/;HttpOnly;Secure;Domain=project-app-development.scm.azurewebsites.net","ARRAffinitySameSite=f1c95587fdc6f942a20e5a5078e78322a753dff56e2f30cc9c09a2b930fa89ac;Path=/;HttpOnly;SameSite=None;Secure;Domain=project-app-development.scm.azurewebsites.net"]
##[debug][GET] https://project-app-development.scm.azurewebsites.net/api/deployments/temp-69fc3536/log/afc2dd47-e1ad-4b07-b6aa-fb59b6531aad
##[debug]getDeploymentLogs. Data: {"statusCode":200,"statusMessage":"OK","headers":{"content-length":"274","content-type":"application/json; charset=utf-8","date":"Mon, 19 Aug 2024 15:57:26 GMT","server":"Kestrel"},"body":[{"log_time":"2024-08-19T15:57:14.2281682Z","id":"","message":"Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/c28a10f3-d998-437f-94af-eed376d90b90.zip (24.85 MB) to /tmp/zipdeploy/extracted","type":0,"details_url":null}]}
Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/c28a10f3-d998-437f-94af-eed376d90b90.zip (24.85 MB) to /tmp/zipdeploy/extracted
Error: Failed to deploy web package to App Service.
Error: Deployment Failed, Package deployment using ZIP Deploy failed. Refer logs for more details.
##[debug][POST] https://management.azure.com/subscriptions/***/resourceGroups/project-app-development_group/providers/Microsoft.Web/sites/project-app-development/config/appsettings/list?api-version=2016-08-01
##[debug][GET] https://management.azure.com/subscriptions/***/providers/microsoft.insights/components?$filter=InstrumentationKey eq '4f576d13-00e5-4831-a1d5-7e5ea3cab3c5'&api-version=2015-05-01
##[debug]Unable to find Application Insights resource with Instrumentation key 4f576d13-00e5-4831-a1d5-7e5ea3cab3c5. Skipping adding release annotation.
App Service Application URL: https://project-app-development.azurewebsites.net
##[debug]Deployment failed
##[debug]Node Action run completed with exit code 1
##[debug]AZURE_HTTP_USER_AGENT='GITHUBACTIONS_DeployWebAppToAzure_0a886200850ef7f915637c263559bb1d8963ef779ce24674d123a365c5ec1237'
##[debug]AZURE_HTTP_USER_AGENT=''
##[debug]Set output webapp-url = https://project-app-development.azurewebsites.net
##[debug]Finishing: Deploy to Azure Web App

Упрощенные журналы ошибок (расширенные журналы отключены)

Run azure/webapps-deploy@v3
  
Package deployment using OneDeploy initiated.
{
  id: 'temp-fb83a24b',
  status: 3,
  status_text: '',
  author_email: 'N/A',
  author: 'N/A',
  deployer: 'OneDeploy',
  message: 'OneDeploy',
  progress: '',
  received_time: '2024-08-19T16:47:42.3127586Z',
  start_time: '2024-08-19T16:47:42.3127586Z',
  end_time: '2024-08-19T16:47:51.8169497Z',
  last_success_end_time: null,
  complete: true,
  active: false,
  is_temp: true,
  is_readonly: false,
  url: 'https://project-app-development.scm.azurewebsites.net/api/deployments/temp-fb83a24b',
  log_url: 'https://project-app-development.scm.azurewebsites.net/api/deployments/temp-fb83a24b/log',
  site_name: 'project-app-development',
  build_summary: { errors: [], warnings: [] }
}
Fetching changes.
Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/31a79a90-85fe-4021-92a0-24cd5f24118d.zip (24.85 MB) to /tmp/zipdeploy/extracted
Error: Failed to deploy web package to App Service.
Error: Deployment Failed, Package deployment using ZIP Deploy failed. Refer logs for more details.
App Service Application URL: https://project-app-development.azurewebsites.net

Когда я устанавливаю includeRootFolder: true, сборка не завершается сбоем, журналы: успешные, но не рабочие подробные логи 488

Когда я устанавливаю includeRootFolder : false, сборка завершается сбоем со следующим сообщением, подробные журналы можно найти здесь: подробные журналы ошибок 489

Обновление: я также пытаюсь использовать действия Github, основная проблема: zip-файл никогда не поступает в Appservice из DevOps; либо конвейеры Azure, либо действия github.

Измените разницу для «includeRootFolder: false»:

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

Журналы после установки «includeRootFolder: false»:

    ##[error]Failed to deploy web package to App Service.
    ##[error]KuduStackTraceURL https://$project-app-development:***@videoo-app-development.scm.azurewebsites.net/api/vfs/LogFiles/kudu/trace
    ##[error]Error: Package deployment using ZIP Deploy failed. Refer logs for more details.

Latest logs after setting

-includeRootFolder : false
-ENABLE_ORYX_BUILD : false
-SCM_DO_BUILD_DURING_DEPLOYMENT : true
-WEBSITE_RUN_FROM_PACKAGE : 1

2024-08-20T05:57:34.254Z INFO  - Starting container for site
2024-08-20T05:57:34.256Z INFO  - docker run -d --expose=8000 --name project-app-development_0_c5c7b0dd -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e PORT=8000 -e WEBSITES_PORT=8000 -e WEBSITE_SITE_NAME=project-app-development -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=project-app-development.azurewebsites.net -e WEBSITE_INSTANCE_ID=3f627dbbecdaed255d87aa9c3e8f1448758df1cdff41f5e14b114384ea9b244a -e HTTP_LOGGING_ENABLED=1 appsvc/python:3.8-bullseye_20240619.2.tuxprod
2024-08-20T05:57:35.308Z INFO  - Initiating warmup request to container project-app-development_0_c5c7b0dd for site project-app-development
2024-08-20T05:57:36.327Z ERROR - Container project-app-development_0_c5c7b0dd for site project-app-development has exited, failing site start
2024-08-20T05:57:36.334Z ERROR - Container project-app-development_0_c5c7b0dd didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging.
2024-08-20T05:57:36.337Z INFO  - Stopping site project-app-development because it failed during startup.
2024-08-20T05:57:53.915425573Z    _____
2024-08-20T05:57:53.915485375Z   /  _  \ __________ _________   ____
2024-08-20T05:57:53.915492475Z  /  /_\  \\___   /  |  \_  __ \_/ __ \
2024-08-20T05:57:53.915497675Z /    |    /    /|  |  /|  | /\  ___/
2024-08-20T05:57:53.915502375Z \____|__  /_____ \____/ |__|    \___  >
2024-08-20T05:57:53.915507176Z         /      /                  /
2024-08-20T05:57:53.915511976Z A P P   S E R V I C E   O N   L I N U X
2024-08-20T05:57:53.915516676Z
2024-08-20T05:57:53.915521376Z Documentation: http://aka.ms/webapp-linux
2024-08-20T05:57:53.915529576Z Python 3.8.19
2024-08-20T05:57:53.915536477Z Note: Any data outside '/home' is not persisted
2024-08-20T05:57:54.221285535Z Starting OpenBSD Secure Shell server: sshd.
2024-08-20T05:57:54.235160933Z WEBSITES_INCLUDE_CLOUD_CERTS is not set to true.
2024-08-20T05:57:54.265297413Z App Command Line not configured, will attempt auto-detect
2024-08-20T05:57:54.265793631Z Launching oryx with: create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -virtualEnvName antenv -defaultApp /opt/defaultsite
2024-08-20T05:57:54.292483387Z Could not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
2024-08-20T05:57:54.292508088Z Could not find operation ID in manifest. Generating an operation id...
2024-08-20T05:57:54.292513388Z Build Operation ID: b6e4f53f-a160-4836-81df-40a78959b714
2024-08-20T05:57:54.395411376Z Oryx Version: 0.2.20240619.2, Commit: cf006407a02b225f59dccd677986973c7889aa50, ReleaseTagName: 20240619.2
2024-08-20T05:57:54.398960704Z Detected an app based on Django
2024-08-20T05:57:54.399159411Z Generating `gunicorn` command for 'project.wsgi'
2024-08-20T05:57:54.410518018Z Writing output script to '/opt/startup/startup.sh'
2024-08-20T05:57:54.427810538Z WARNING: Could not find virtual environment directory /home/site/wwwroot/antenv.
2024-08-20T05:57:54.427831338Z WARNING: Could not find package directory /home/site/wwwroot/__oryx_packages__.
2024-08-20T05:57:54.970237380Z [2024-08-20 05:57:54 +0000] [48] [INFO] Starting gunicorn 22.0.0
2024-08-20T05:57:54.987807809Z [2024-08-20 05:57:54 +0000] [48] [INFO] Listening at: http://0.0.0.0:8000 (48)
2024-08-20T05:57:54.987844111Z [2024-08-20 05:57:54 +0000] [48] [INFO] Using worker: sync
2024-08-20T05:57:54.997822968Z [2024-08-20 05:57:54 +0000] [57] [INFO] Booting worker with pid: 57
2024-08-20T05:57:55.045597781Z [2024-08-20 05:57:55 +0000] [57] [ERROR] Exception in worker process
2024-08-20T05:57:55.045636382Z Traceback (most recent call last):
2024-08-20T05:57:55.045643782Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker
2024-08-20T05:57:55.045658983Z     worker.init_process()
2024-08-20T05:57:55.045664583Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
2024-08-20T05:57:55.045683084Z     self.load_wsgi()
2024-08-20T05:57:55.045688584Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2024-08-20T05:57:55.045694184Z     self.wsgi = self.app.wsgi()
2024-08-20T05:57:55.045699484Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2024-08-20T05:57:55.045704784Z     self.callable = self.load()
2024-08-20T05:57:55.045710085Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2024-08-20T05:57:55.045715485Z     return self.load_wsgiapp()
2024-08-20T05:57:55.045720885Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2024-08-20T05:57:55.045726285Z     return util.import_app(self.app_uri)
2024-08-20T05:57:55.045731885Z   File "/opt/python/3.8.19/lib/python3.8/site-packages/gunicorn/util.py", line 371, in import_app
2024-08-20T05:57:55.045737786Z     mod = importlib.import_module(module)
2024-08-20T05:57:55.045743086Z   File "/opt/python/3.8.19/lib/python3.8/importlib/__init__.py", line 127, in import_module
2024-08-20T05:57:55.045748486Z     return _bootstrap._gcd_import(name[level:], package, level)
2024-08-20T05:57:55.045753786Z   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2024-08-20T05:57:55.045759786Z   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2024-08-20T05:57:55.045765487Z   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2024-08-20T05:57:55.045771387Z   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2024-08-20T05:57:55.045776787Z   File "<frozen importlib._bootstrap_external>", line 843, in exec_module
2024-08-20T05:57:55.045782087Z   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2024-08-20T05:57:55.045787187Z   File "/home/site/wwwroot/project/wsgi.py", line 12, in <module>
2024-08-20T05:57:55.045792588Z     from django.core.wsgi import get_wsgi_application
2024-08-20T05:57:55.045797988Z ModuleNotFoundError: No module named 'django'
2024-08-20T05:57:55.046148100Z [2024-08-20 05:57:55 +0000] [57] [INFO] Worker exiting (pid: 57)
2024-08-20T05:57:55.107735008Z [2024-08-20 05:57:55 +0000] [48] [ERROR] Worker (pid:57) exited with code 3
2024-08-20T05:57:55.107770709Z [2024-08-20 05:57:55 +0000] [48] [ERROR] Shutting down: Master
2024-08-20T05:57:55.107777009Z [2024-08-20 05:57:55 +0000] [48] [ERROR] Reason: Worker failed to boot.
2024-08-20 05:57:54,978  [MainThread] [DEBUG] : Initializating AppServiceAppLogging
2024-08-20 05:57:54,982  [Thread-1  ] [DEBUG] : Did not find any previously bound socket
2024-08-20 05:57:54,983  [MainThread] [DEBUG] : Initialized AppServiceAppLogging
2024-08-20T05:57:53.623Z INFO  - Starting container for site
2024-08-20T05:57:53.641Z INFO  - docker run -d --expose=8000 --name project-app-development_0_4c6a7e4b -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e PORT=8000 -e WEBSITES_PORT=8000 -e WEBSITE_SITE_NAME=project-app-development -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=project-app-development.azurewebsites.net -e WEBSITE_INSTANCE_ID=8a9506920697ea08e988fb00cb7a286fb2bda894a9cbfd61c5690d00f38d01a6 -e HTTP_LOGGING_ENABLED=1 appsvc/python:3.8-bullseye_20240619.2.tuxprod
2024-08-20T05:57:55.010Z INFO  - Initiating warmup request to container project-app-development_0_4c6a7e4b for site project-app-development
2024-08-20T05:57:56.129Z ERROR - Container project-app-development_0_4c6a7e4b for site project-app-development has exited, failing site start
2024-08-20T05:57:56.140Z ERROR - Container project-app-development_0_4c6a7e4b didn't respond to HTTP pings on port: 8000, failing site start. See container logs for debugging.
2024-08-20T05:57:56.145Z INFO  - Stopping site project-app-development because it failed during startup.

Привет, можете ли вы проверить путь project.wsgi, соответствует ли он тому месту, куда его поместил докер. Я предполагаю, что у вас есть DockerFile.

Derek Roberts 18.08.2024 13:41

Нет файла dockerfile, добавление project.wsgi сюда, в заявку.

london_utku 18.08.2024 14:02
the zip file never arrives to Appservice from devops; either azure pipelines or github actions. можете ли вы рассказать подробнее об этой проблеме? Вы имеете в виду, что файлы в службе приложений Azure не изменяются после запуска конвейера? С другой стороны, судя по исходному описанию, вы получаете сообщение об ошибке в Azure Pipelines. Можете ли вы поделиться своим определением конвейера вместо действия github?
Kevin Lu-MSFT 19.08.2024 04:46

Судя по сообщению об ошибке в исходном сообщении, похоже, что порт 8000 не может подключиться. Вы можете попробовать установить параметры приложения: PORT и WEBSITES_PORT на 8000 в Службе приложений Azure, чтобы открыть порт 8000. Затем вы можете перезапустить службу приложений и проверить, может ли она внести какие-либо изменения.

Kevin Lu-MSFT 19.08.2024 04:55

Я установил и PORT, и WEBSITES_PORT, ничего не изменилось. Я думаю, что в моем случае развертывание неправильно использует развертывание zip и извлечение из AppService.

london_utku 19.08.2024 16:19

@london_utku, можете ли вы поделиться определением лазурных конвейеров? Поскольку исходное описание относится к конвейеру Azure DevOps.

Kevin Lu-MSFT 19.08.2024 17:40

Я попробовал все: Azure Pipelines, Github Actions, App Service Deployment. Ничего не работает. Я обновил билет со всеми связанными файлами yaml.

london_utku 19.08.2024 18:40

@london_utku Спасибо за ваши новости. Я больше знаком с Azure Pipelines. Итак, я проверил конвейеры YAML и обнаружил некоторые проблемы. вы можете обратиться к моему ответу, чтобы внести изменения в конвейер YAML Azure DevOps и снова развернуть веб-приложение.

Kevin Lu-MSFT 20.08.2024 05:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
111
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я проверил ваш образец конвейера YAML Azure DevOps. У него есть некоторые проблемы, из-за которых служба приложений не сможет работать.

В исходном журнале отображается ошибка: ModuleNotFoundError: No module named 'project'. Причина проблемы в том, что zip-пакет не содержит необходимых пакетов Python.

Вы можете внести следующие изменения в образец YAML конвейера Azure:

1. Вам необходимо изменить команду для установки пакетов Python:

От

pip install -r requirements.txt

К

 pip install --target = "./.python_packages/lib/site-packages" -r ./requirements.txt

В этом случае необходимые пакеты будут установлены в правильную папку и добавлены в zip-архив.

2. Вам необходимо установить для поля includeRootFolder значение false в задаче ArchiveFiles@2.

Если для значения установлено значение true, в zip-пакет будет включена родительская папка: s. Это приведет к проблеме с путем в веб-приложении. Поэтому нам нужно установить значение false.

Вот пример:

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

Полный пример YAML конвейера:

trigger:
- $(feature-branch)

variables:
  azureServiceConnectionId: '-db5f-4993-91f8-85f3a75cb357'
  webAppName: 'project-app-development'
  vmImageName: 'ubuntu-latest'
  environmentName: 'project-app-development'
  projectRoot: $(System.DefaultWorkingDirectory)
  pythonVersion: '3.8'
  system.debug: true

stages:
- stage: Build
  displayName: Build stage
  jobs:
  - job: BuildJob
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '$(pythonVersion)'
      displayName: 'Use Python $(pythonVersion)'

    - script: |
        python -m virtualenv env
        source env/bin/activate
        python -m pip install --upgrade pip
        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:
      vmImage: $(vmImageName)
    environment: $(environmentName)
    strategy:
      runOnce:
        deploy:
          steps:
          - task: UsePythonVersion@0
            inputs:
              versionSpec: '$(pythonVersion)'
            displayName: 'Use Python version'

          - task: AzureWebApp@1
            displayName: 'Deploy Azure Web App : project-app-development'
            inputs:
              azureSubscription: $(azureServiceConnectionId)
              appName: $(webAppName)
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip

Для получения более подробной информации вы можете обратиться к этому документу: Используйте Azure Pipelines для создания и развертывания веб-приложения Python в Службе приложений Azure

Обновлять:

Ошибка: не удалось развернуть пакет с помощью ZIP Deploy. Обратитесь к журналам для получения более подробной информации.

На основании сообщения об ошибке вы можете попробовать следующие методы:

1. Перейдите к настройкам приложения в веб-приложении Azure и установите переменную: от WEBSITE_RUN_FROM_PACKAGE до 1.

2. Перейдите в Службу приложений -> Центр развертывания и нажмите кнопку «Отключить», чтобы отключить существующие подключения.

Например:

Затем вы можете снова развернуть веб-приложение Azure и проверить результат.

Обновление1:

ModuleNotFoundError: нет модуля с именем «django».

Я могу воспроизвести ту же проблему в своем веб-приложении для Linux.

Чтобы решить эту проблему, вы можете выполнить следующие шаги:

Шаг 1. Удалите переменную: SCM_DO_BUILD_DURING_DEPLOYMENT в AppSettings веб-приложения Azure. В этом случае будут напрямую использованы существующие пакеты в zip-архиве.

Шаг 2. Измените команду установки pip:

От:

 pip install --target = "./.python_packages/lib/site-packages" -r ./requirements.txt

К:

 pip install --target = "./antenv/lib/python3.8/site-packages" -r ./requirements.txt

Образец YAML:

- script: |
   python -m venv antenv
   source antenv/bin/activate
   python -m pip install --upgrade pip
   pip install setup

   pip install --target = "./antenv/lib/python3.9/site-packages" -r ./requirements.txt
  workingDirectory: $(projectRoot)
  displayName: "Install requirements"

В журнале службы приложений Azure путь к Python по умолчанию: /home/site/wwwroot/antenv/lib/python3.8.9/site-packages. Нам нужно настроить путь в пакете, чтобы он соответствовал пути Python по умолчанию.

Затем вы можете запустить конвейер для повторного развертывания веб-приложения.

Если я установлю «includeRootFolder: false», сборка завершится неудачно, как показано ниже: «Ошибка: не удалось развернуть пакет с помощью ZIP Deploy. Для получения более подробной информации обратитесь к журналам». Вы можете найти целые журналы здесь, в обновленной части.

london_utku 20.08.2024 06:52

@london_utku У меня нет доступа к ссылке в обновленной части. Можете ли вы поделиться с нами журналом ошибок в вопросе? Для includeRootFolde должно быть установлено значение false. Затем вы сможете получить правильный путь к папке в веб-приложении. Вы можете обратиться к обновлению в моем ответе, попытаться внести изменения и проверить результат.

Kevin Lu-MSFT 20.08.2024 07:12

Я еще раз обновил ссылки, теперь вы их видите?

london_utku 20.08.2024 07:21

Я установил includeRootFolder: false, и всякий раз, когда я это делаю, сборка завершается с ошибкой.

london_utku 20.08.2024 07:22

@london_utku Да. Я вижу это сейчас. Можете ли вы попытаться выполнить действия, описанные в обновленном содержании ответа, чтобы внести изменения в службу вашего веб-приложения? Затем вы можете снова развернуть веб-приложение и проверить результат.

Kevin Lu-MSFT 20.08.2024 07:26

Я уже внес эти изменения, включая настройку includeRootFolder : true — для этого вы можете проверить журналы 488 и includeRootFolder : false с журналами 489.

london_utku 20.08.2024 07:28

Я установил WEBSITE_RUN_FROM_PACKAGE : 1 в настройках среды службы приложений (раньше это было WEBSITE_RUN_FROM_PACKAGE : true), затем отключил соединение в Центре развертывания. Сейчас он строится, но у меня мало надежд.

london_utku 20.08.2024 07:31

@london_utku Из журнала я вижу, что для переменной: WEBSITE_RUN_FROM_PACKAGE установлено значение true. Вы можете изменить его, установив значение 1. И я не могу увидеть в журнале, отключили ли вы соединение в центре развертывания веб-приложения Azure. Это необходимо сделать на странице пользовательского интерфейса веб-приложения Azure. Но я могу подтвердить, что код YAML в журнале 489 должен быть правильным. Я вижу изменения кода YAML.

Kevin Lu-MSFT 20.08.2024 07:32

Поскольку вы внесли изменения, вы можете дождаться завершения сборки и проверить результат.

Kevin Lu-MSFT 20.08.2024 07:33

Я изменил это: WEBSITE_RUN_FROM_PACKAGE: 1 + "pip install --target = "./.python_packages/lib/site-packages" -r ./requirements.txt" и снова отключить + развернуть. И теперь сборка прошла успешно, однако в журналах службы приложений я вижу следующее: ModuleNotFoundError: нет модуля с именем «django».

london_utku 20.08.2024 07:44

@london_utku Дай я проверю. Я знаю эту проблему.

Kevin Lu-MSFT 20.08.2024 07:47

Хотя сборка выглядит нормально, я вижу такие журналы: ##[debug]ZIP DEPLOY - Выполнение операции после zip-развертывания: -54cd- => 49117 ##[debug]CLIENT_RESETSTREAMONRETRY=undefined ##[debug][ GET]https://$project-app-development:***@project-a‌​pp-development.scm.a‌​zurewebsites.net/api‌​/vfs/site/deployment‌​s/-54cd21b-/manifest # #[debug]Не удалось проанализировать ответ: {} ##[debug]Ответ: не определено ##[debug]getFileContent. Код состояния: 404 — не найден ##[debug]ZIP DEPLOY — выполнена операция после развертывания zip. ##[debug]Развертывание успешно завершено: развертывание веб-приложения Azure : project-app-development

london_utku 20.08.2024 07:49

Я обновил последние журналы Appservice.

london_utku 20.08.2024 08:01

@london_utku Кажется, что приведенный выше журнал взят из журнала отладки Azure Pipelines, верно? Если да, вы можете проверить файлы в веб-приложении Linux через kudo и подтвердить, ожидаются ли эти файлы. Если файлы верны, процесс развертывания должен пройти успешно.

Kevin Lu-MSFT 20.08.2024 08:02

По поводу ошибки: ModuleNotFoundError: No module named 'django', позвольте мне провести тест. Я получал эту ошибку раньше во время моего теста. Я проверю это дальше.

Kevin Lu-MSFT 20.08.2024 08:04

Файлы не обновляются с учетом моих последних изменений, эти файлы остаются там, поскольку у меня было несколько успешных попыток с действиями Github.

london_utku 20.08.2024 08:05

Я проверил через newUI в Kudo Access через webUI, у меня есть SSH-подключение к экземпляру, но файлы не новые.

london_utku 20.08.2024 08:06

На что мне установить PYTHONPATH?

london_utku 20.08.2024 08:09

Я отключил эти SCM_DO_BUILD_DURING_DEPLOYMENT, WEBSITE_RUN_FROM_PACKAGE. Сборка теперь занимает около 12 минут (раньше это было около 2 минут). Журналы изменились, однако файловая система службы приложений осталась прежней. Вы можете проверить логи 496 здесь filetransfer.io/data-package/FFthMYut#link

london_utku 20.08.2024 10:14

@london_utku Обратитесь к обновлению 1 в моем ответе. Я могу воспроизвести ту же проблему и найти решение проблемы, связанной с тем, что модуль не найден. Нам нужно удалить SCM_DO_BUILD_DURING_DEPLOYMENT и изменить путь к пакету в zip-архиве. Затем веб-приложение найдет пакет django.

Kevin Lu-MSFT 20.08.2024 10:18

Причина увеличения времени развертывания заключается в том, что zip-пакет содержит все необходимые пакеты Python. Размер молнии увеличится. Предыдущее развертывание не содержит пакета Python, поэтому для его развертывания требуется меньше времени.

Kevin Lu-MSFT 20.08.2024 10:20

Вам это кажется правильным? - сценарий: | python -m virtualenv env source env/bin/activate python -m pip install --upgrade pip pip install --target = "./antenv/lib/python3.9/site-packages" -r ./requirements.txtworkDirectory: $(projectRoot) displayName: «Требования для установки»

london_utku 20.08.2024 10:22

Я уже удалил SCM_DO_BUILD_DURING_DEPLOYMENT

london_utku 20.08.2024 10:22

@london_utku Ой, извини. опечатка в моем ответе. Вам необходимо установить python3.8, поскольку ваше веб-приложение использует Python 3.8.9. - сценарий: | python -m virtualenv env source env/bin/activate python -m pip install --upgrade pip pip install --target = "./antenv/lib/python3.8/site-packages" -r ./requirements.txtworkDirectory: $(projectRoot) displayName: «Требования для установки. Это должно быть правильное значение.

Kevin Lu-MSFT 20.08.2024 10:26

Но первая команда — python -m virtualenv env, затем мы упоминаем antenv, вам это кажется правильным?

london_utku 20.08.2024 10:27

Я также проверил журнал, которым вы поделились. Я заметил, что он показывает журналы: Копирование файла: '.python_packages/lib/site-packages/Django-3.1.dist-info/REQ‌​UESTED' Это означает, что файлы были загружены в ваше веб-приложение Azure. Файлы вашего веб-приложения должны были быть обновлены, а не сохранять старые. И еще одна вещь, которую вам нужно проверить, это то, используете ли вы слот развертывания. Если да, вам необходимо указать значение слота в задаче веб-приложения Azure, чтобы разрешить развертывание задачи в правильном слоте.

Kevin Lu-MSFT 20.08.2024 10:28

@london_utku Пожалуйста, используйте код yaml в моем обновленном ответе. Вам нужно использовать антенну. Судя по журналу службы приложений, это значение по умолчанию.

Kevin Lu-MSFT 20.08.2024 10:30

Я воспользуюсь вашей командой, а как насчет workDirectory: $(projectRoot)?

london_utku 20.08.2024 10:35

@london_utku Можно добавить. Поскольку я использую свой собственный проект, путь отличается от вашего, поэтому я НЕ добавляю это поле задачи. Чтобы избежать недоразумений, я добавил его на основе вашего YAML. Пожалуйста, попробуйте :)

Kevin Lu-MSFT 20.08.2024 10:38

Я не против отсутствия «workingDirectory: $(projectRoot)», эта сборка никогда раньше у меня не работала.

london_utku 20.08.2024 10:41

@london_utku Нет проблем. Я думаю, что с этим полем в вашем оригинале проблем нет. Вам просто нужно убедиться, что файл require.txt существует в рабочем каталоге.

Kevin Lu-MSFT 20.08.2024 10:43

Все необходимые файлы уже существуют в файловой системе.

london_utku 20.08.2024 10:47

Я удалил поле «workDirectory: $(projectRoot)», поскольку его не было в вашем примере.

london_utku 20.08.2024 10:52

@london_utku Хорошо. Пожалуйста, сделайте это и проверьте результат.

Kevin Lu-MSFT 20.08.2024 10:54

Я удалил этот «workingDirectory: $(projectRoot)» и начал сборку, она продолжается уже более 16 минут. Это не кажется правильным. Я вижу, что «workingDirectory: $(projectRoot)» включен в ваш пример, я добавлю его и попробую еще раз.

london_utku 20.08.2024 10:56

@london_utku Это может быть нормально для первого развертывания после обновления. Первое развертывание удалит старые файлы и загрузит новые файлы. Время сократится при следующих запусках конвейера. В следующих запусках это будет постепенное развертывание.

Kevin Lu-MSFT 20.08.2024 11:02

Я все еще вижу эту ошибку «ModuleNotFoundError: нет модуля с именем «django»», вы можете проверить журнал: filetransfer.io/manage-package/FFthMYut 500. Вы также можете проверить журналы службы приложений обновления 2.

london_utku 20.08.2024 11:04

@london_utku Можете ли вы проверить, существует ли пакет django в веб-приложении? перейдите по адресу home/site/wwwroot/antenv/lib/python3.8/site-packages. И я не могу увидеть последний журнал.

Kevin Lu-MSFT 20.08.2024 11:07

kudu_ssh_user@1ff3f91eb6f0:/$ ls -la /home/site/wwwroot/antenv/lib всего 0 drwxrwxrwx 2 никто nogroup 0 20 августа 08:39 . drwxrwxrwx 2 никто не nogroup 0 августа 18 17:35 .. drwxrwxrwx 2 никто не nogroup 0 августа 18 17:34 Python3.12 drwxrwxrwx 2 никто не nogroup 0 августа 20 08:39 python3.8 drwxrwxrwx 2 никто не nogroup 0 августа 18 21:26 python3. 9

london_utku 20.08.2024 11:10

$ ls -la /home/site/wwwroot/antenv/lib/python3.8/site-packages/ всего 5 drwxrwxrwx 2 никто nogroup 0 20 августа 08:39 _distutils_hack -rwxrwxrwx 1 никто nogroup 152 20 августа 08:36 distutils-precedence .pth drwxrwxrwx 2 никто nogroup 0 20 августа 08:39 pip drwxrwxrwx 2 никто nogroup 0 20 августа 08:40 pip-24.2.dist-info drwxrwxrwx 2 никто nogroup 0 20 августа 08:40 pkg_resources drwxrwxrwx 2 никто nogroup 0 20 08: 40 setuptools drwxrwxrwx 2 никто nogroup 0 20 августа 08:40 setuptools-56.0.0.dist-info

london_utku 20.08.2024 11:10

В python3.8 нет, но в python3.9 есть все каталоги.

london_utku 20.08.2024 11:11

Я изменил конфигурацию службы приложений, yaml Azure Devops на 3.9 и начал новую сборку.

london_utku 20.08.2024 11:13

Из последнего журнала службы приложений: Updated PYTHONPATH to '/opt/startup/app_logs:/home/site/wwwroot/antenv/lib/python3‌​.8/site-packages' Я вижу, что для пути Python указан правильный путь. Вы можете проверить, существуют ли пакеты по соответствующему пути.

Kevin Lu-MSFT 20.08.2024 11:24

Это местоположение не существует: /home/site/wwwroot/antenv/lib/python3.8/site-packages Но оно существует: /home/site/wwwroot/antenv/lib/python3.9/site-packages

london_utku 20.08.2024 11:31

Я пытаюсь использовать каталог python3.9.

london_utku 20.08.2024 11:32

@london_utku Продолжайте делать это и проверьте, будет ли это иметь какое-то значение.

Kevin Lu-MSFT 20.08.2024 11:33

Вопрос: Почему каталоги python3.8, python3.9 и python3.12 существуют одновременно. Почему он отслеживает все старые сборки? Можем ли мы это сбросить?

london_utku 20.08.2024 11:35

@london_utku Одной из возможных причин проблемы может быть то, что виртуальный каталог в веб-приложении не удаляет старые файлы. Он всегда поддерживает постепенное развертывание. Вы можете попытаться очистить все файлы и снова выполнить развертывание, чтобы удалить старые файлы.

Kevin Lu-MSFT 20.08.2024 11:39

Как мне очистить все файлы и снова выполнить развертывание?

london_utku 20.08.2024 11:43

Вы можете удалить все элементы веб-приложения в kudo и снова выполнить развертывание. Или вы можете создать новое веб-приложение для тестирования. Но сейчас делать это не рекомендуется. Мы можем позволить текущему конвейеру работать, а затем полностью переразвернуть его.

Kevin Lu-MSFT 20.08.2024 11:48

Когда вы говорите: «Вы можете удалить все элементы веб-приложения в kudo и снова выполнить развертывание», вы имеете в виду, что мне нужно вручную удалить все эти каталоги? А что насчет будущего, когда я делаю новую сборку, я хочу, чтобы эта сборка была абсолютно чистой, независимой от предыдущей. Почему копируется поверх предыдущей сборки? Это переопределяет старые файлы? Это не кажется правильной стратегией, должен быть способ каждый раз создавать чистую сборку. Вот почему мы хотим использовать CI/CD.

london_utku 20.08.2024 11:51

@london_utku мы можем добавить задачи для выполнения этого действия в ci/cd. Я помогу тебе сделать это завтра. А как насчет текущего вопроса?

Kevin Lu-MSFT 20.08.2024 11:58

После непрерывной работы в течение 10 дней да, страница администратора Django видна без CSS.

london_utku 20.08.2024 13:01

Каким-то образом python3.8 исчез сам по себе: udu_ssh_user@71a50eb85da1:~/site/wwwroot/antenv$ cd lib kudu_ssh_user@71a50eb85da1:~/site/wwwroot/antenv/lib$ ls -la total 0 drwxrwxrwx 2 никто nogroup 0 20 августа 09: 18 . drwxrwxrwx 2 никто nogroup 0 18 августа 17:35 .. drwxrwxrwx 2 никто nogroup 0 18 августа 17:34 python3.12 drwxrwxrwx 2 никто nogroup 0 18 августа 21:26 python3.9 kudu_ssh_user@71a50eb85da1:~/site/www root/antenv / lib$

london_utku 20.08.2024 13:02

@london_utku, ты имеешь в виду, что веб-приложение теперь может работать? Или все еще есть какие-то проблемы?

Kevin Lu-MSFT 20.08.2024 13:25

Да, после исправления проблем с секретным хранилищем мои изменения теперь доступны. Спасибо. Однако как только я настроил все на работу, месячные 1800 минут Azure Devops закончились, и теперь я не могу продолжить развертывание.

london_utku 20.08.2024 15:25

Остается только статический контент из приложения Django.

london_utku 20.08.2024 15:26

Тем не менее, все отдельные сборки занимают около 15+ минут. Интересно, есть ли способ снизить эту сумму? А также способ каждый раз сбрасывать содержимое сборки.

london_utku 20.08.2024 15:27

@london_utku Завтра я помогу вам разобраться в дальнейших вопросах и сообщу вам обновленную информацию.

Kevin Lu-MSFT 20.08.2024 15:42

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