Проблема с развертыванием кода функции Azure в слоте FunctionApp с использованием yaml (zip-архив не найден)

Я создаю функцию Azure на C# и хочу развернуть ее с помощью конвейера. Я создаю один раз, тестирую, а затем публикую. Затем для каждого ENV я запускаю файл бицепса для настройки инфраструктуры и сразу после этого хочу развернуть опубликованный функциональный код в (единственном) функциональном приложении.

Я получаю сообщение об ошибке при попытке развертывания из опубликованного zip-файла. Файл не найден. Что я делаю не так?


Пример опубликованного файла:

[команда]/usr/bin/zip -r /home/vsts/work/1/s/build272.zip

(Строки журнала кажутся разумными)

Обнаружена ошибка:

##[ошибка]Ошибка: не найден пакет с указанным шаблоном: /home/vsts/work/1/a/*.zip
Проверьте, указан ли пакет

Обратите внимание, что мы публикуем данные из /1/s и пытаемся найти их в /1/a.

В сборке есть «прикрепленные» артефакты как «drop/build272.zip». (Файл размером 11 МБ кажется разумным)

yaml-строки для публикации:

- task: DotNetCoreCLI@2
  displayName: "dotnet publish"
  inputs:
    command: publish
    arguments: '--configuration Release --output publish_output'
    projects: 'src/**/*.csproj'
    publishWebProjects: false
    modifyOutputPath: false
    zipAfterPublish: false
- task: ArchiveFiles@2
  displayName: "Archive files (into zip)"
  inputs:
    rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
    includeRootFolder: false
    archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
  displayName: "Publish build artifacts"
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'

строки yaml для развертывания:

- task: AzureFunctionApp@1 # Add this at the end of your file
  displayName: 'Deploy Function code to FunctionApp Slot'
  inputs:    
    azureSubscription: 'ServiceConnection'
    appType: functionAppLinux # default is functionApp
    appName: 'f2404dev-app'
    package: '$(System.ArtifactsDirectory)/**/*.zip'

Недостаточно подробностей, чтобы понять, что происходит. Вы пытаетесь сгенерировать пакет развертывания и развернуть его в одном задании? Или на разных работах/этапах?

Rui Jarimba 10.04.2024 21:48

Привет, Руи, проблема решена, и она была на разных стадиях. Спасибо, что вмешались...

Anders Juul 10.04.2024 22:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Кажется, вы пропустили этап загрузки артефакта.

- task: DownloadBuildArtifacts@1
  inputs:
    buildType: 'current'
    downloadType: 'single'
    artifactName: 'drop'
    itemPattern: '**/*.zip'
  downloadPath: '$(System.ArtifactsDirectory)'

Ссылка: https://sterl.org/2023/03/azure-devops-function-app-deployment-no-package-found/

Да, это решило проблему - спасибо! Мне также пришлось внести изменения на этапе развертывания, где в значении «пакет» отсутствовал ** для каталога. Я обновил код выше для всех, кто столкнется с этим вопросом в будущем. ДЕЙСТВИТЕЛЬНО УДИВИТЕЛЬНЫМ! Сейчас я запускаю свою первую функцию, созданную и развернутую с нуля.

Anders Juul 10.04.2024 22:08

Рад это слышать, Андерс!

Vinicius Deschamps 11.04.2024 15:58

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