Я создаю функцию 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'
Привет, Руи, проблема решена, и она была на разных стадиях. Спасибо, что вмешались...
Кажется, вы пропустили этап загрузки артефакта.
- 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/
Да, это решило проблему - спасибо! Мне также пришлось внести изменения на этапе развертывания, где в значении «пакет» отсутствовал ** для каталога. Я обновил код выше для всех, кто столкнется с этим вопросом в будущем. ДЕЙСТВИТЕЛЬНО УДИВИТЕЛЬНЫМ! Сейчас я запускаю свою первую функцию, созданную и развернутую с нуля.
Рад это слышать, Андерс!
Недостаточно подробностей, чтобы понять, что происходит. Вы пытаетесь сгенерировать пакет развертывания и развернуть его в одном задании? Или на разных работах/этапах?