Развертывание кода ядра .NET в лямбда-версии AWS с помощью Azure Devops - путь к проекту не найден - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь запустить приложение .Net Core в AWS Lambda и пытаюсь добиться непрерывного развертывания с помощью работающих конвейеров Azure.

Я создал пустой лямбда-проект .Net Core с использованием инструментария AWS для Visual Studio и настроил сборку с использованием рекомендованного конвейера сборки ".net desktop" в Azure Devops. Код yaml можно посмотреть здесь:

# .NET Desktop
# Build and run tests for .NET Desktop or Windows classic desktop solutions.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net

trigger:
- master

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

(я удалил задачу mstest, так как мой проект не содержит никаких модульных тестов)

Этот конвейер успешно построен.

Затем я запускаю конвейер выпуска, используя сборку из предыдущего конвейера, и устанавливаю развертывание в каждой новой сборке. Конвейер выпуска содержит задачу «AWS Lambda .NET Core Deployment», настроенную для моей учетной записи AWS Lambda. Я выбираю связанную папку artifacts / _lambdatest (build) (где lambdatest - это имя моего проекта), и при развертывании релиз получает сообщение об ошибке:

2019-01-23T21:33:45.1791634Z ##[error]Unhandled: Not found lambdaProjectPath: D:\a\r1\a\_lambdatest

Что я могу сделать, чтобы попытаться заставить это работать? Я думаю, что проблема в том, на что указывает «Путь к лямбда-проекту», но я не могу понять, где еще может быть проект?

1 Ответ

0 голосов
/ 24 января 2019

Судя по этому конвейеру сборки, вам необходимо опубликовать артефакты сборки, чтобы иметь к ним доступ:

- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.Repository.LocalPath)/path/to/artifacts'
    artifactName: 'artifact' 
    publishLocation: 'Container'
  condition: always()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...