ASP. NET Развертывание основного приложения на AWS Beanstalk с помощью действий GitHub - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь создать конвейер компакт-дисков с помощью GitHub Actions и AWS Beanstalk (Linux) для моего приложения ASP. NET Core 3.1. Я настроил файл YML следующим образом:

- name: dotnet Build
  run: dotnet build src/SLNNAME.sln -c Release --no-restore

- name: dotnet Publish
  run: |
    dotnet publish src/SLNNAME.Server/SLNAME.Server.Web/SLNNAME.Server.Web.csproj -c Release -o staging_SLNNAME_server -r linux-x64

- name: Build deployment package
  run: zip -r staging-server-deploy.zip staging_SLNNAME_server

..

- name: Deploy to AWS Beanstalk
  uses: einaregilsson/beanstalk-deploy@v10
  with:
    aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
    aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    region: ${{ secrets.AWS_REGION }}
    application_name: SLNNAME-staging-app-web
    environment_name: SLNNAME-staging-server
    version_label: "staging-app-web-${{ steps.format-time.outputs.replaced }}"
    deployment_package: staging-server-deploy.zip

Но при развертывании на AWS возникает ошибка. В частности, просматривая журналы Beanstalk, я могу прочитать следующую ошибку:

[ERROR] An error occurred during execution of command [app-deploy] - [CheckProcfileForDotNetCoreApplication]. Stop running the command. Error: error stat /var/app/staging/staging_SLNNAME_server/SLNNAME.dll: no such file or directory with file /var/app/staging/staging_SLNNAME_server/SLNNAME.dll

В принципе, я думаю, что он ищет DLL с именем решения вместо имени проекта - SLNName.Server.Web. Интересно еще, где он берет имя решения, так как оно не является частью zip-файла. Я также попробовал использовать флаг --self-contained, но ошибка точно такая же.

У меня есть эта ошибка, даже если я пытаюсь опубликовать sh решение с помощью AWS инструментария Visual Studio extension.

Единственный способ, который я нашел, чтобы исправить это, - это изменить имя выходной DLL проекта, чтобы оно соответствовало имени решения, но для меня это не имеет никакого смысла - у меня могут возникнуть другие проблемы в будущем.

Спасибо

Ответы [ 3 ]

1 голос
/ 21 июля 2020

Предупреждение: это обходной путь, а не решение!

В проекте, который не удается развернуть, измените «Имя сборки» на вкладке «Свойства проекта / приложение» на имя отсутствующей библиотеки DLL (обычно это имя решения или первая часть пространства имен, разделенная точкой).

т.е. «SLNNAME»

Затем повторно разверните приложение beanstalk, и оно должно работать.

0 голосов
/ 12 августа 2020

Сегодня я получил письмо от службы поддержки AWS о том, что проблема решена. Я пробовал, и на самом деле это работает!

Пожалуйста, не забудьте использовать Linux 2 / 2.0.1 в качестве платформы

0 голосов
/ 22 июля 2020

Я открыл заявку на платформе AWS, и эта проблема была заявлена ​​службой поддержки как ошибка.

Они ответили мне:

Я достиг во внутреннюю команду и проинформировал команду об ошибке. [...] Я добавил ваш голос в ответ на этот запрос, который я поднял с внутренней командой, чтобы придать больший вес этому вопросу. В настоящее время я не могу предоставить вам ETA [...] вы можете быть уверены, что внутренняя команда изучает эту проблему и исправляет ее как можно быстрее

Надеемся, что они это исправят как можно скорее

...