Как ограничить или контролировать артефакты публикации для AWS Visual Studio Toolkit?
Я создаю лямбду с помощью C# несколькими различными способами (без сервера, лямбда, с / без тестов), и в результате я получаю множество элементов в файле.zip для публикации артефактов, которые действительно не нужны. Если я развертываю Lambda и в решении есть тестовый проект, я щелкаю правой кнопкой мыши на project
-> Publish to AWS
, следуйте инструкциям, и это в конечном итоге молнии xunit
библиотеки вместе со многими локализованными версиями Microsoft.TestPlatform
а также Microsoft.VisualStudio.TestPlatform
артефакты. Вывод будет выглядеть примерно так:
... zipping: xunit.abstractions.dll
... zipping: xunit.assert.dll
... zipping: xunit.core.dll
... zipping: xunit.execution.dotnet.dll
... zipping: xunit.runner.reporters.netcoreapp10.dll
... zipping: xunit.runner.utility.netcoreapp10.dll
... zipping: xunit.runner.visualstudio.dotnetcore.testadapter.dll
... zipping: cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: cs/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: de/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: es/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: fr/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: it/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: ja/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: ko/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: pl/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: ru/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: tr/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
... zipping: zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
... zipping: zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll
... zipping: zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
... zipping: zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
... zipping: zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
- Есть ли способ ограничения того, какие файлы попадают в zip-папку, которая отправляется в AWS?
- Есть ли способ исключить локализованные библиотеки?
- Могу ли я исключить другие проекты, которые не являются зависимостями?
- Могу ли я сохранить все свои проекты в одном решении и публиковать их, используя встроенные механизмы, не отправляя посторонние проекты?
У меня проблема в том, что он раздувает размер пакета развертывания, а файлы никогда не используются, что влияет на мои затраты на хранение в s3, приводит к более медленному времени холодного запуска лямбды и неэффективности.
Поиск в Интернете, исключение файлов и папок из развертывания, выглядел многообещающе, но для меня это не имело никакого значения (возможно, я сделал что-то не так?).
1 ответ
Это, вероятно, не правильный ответ на ваш вопрос, но я столкнулся с чем-то похожим и хотел предоставить более подробную информацию.
Я не использую Visual Studio Professional. У меня есть AWS VS Toolkit для VS 2017, но, похоже, пункт контекстного меню проекта "Опубликовать в AWS" доступен только в VS 2019.
Я работал с проектом, который был создан с помощью команды SAM CLI
sam init -r dotnetcore2.1 -o sam-runtime-dotnetcore21
... который создает пример бессерверного проекта с файлами.sln и двумя.csproj. Структура выглядит примерно так:
src/
HelloWorld/
HelloWorld.csproj
Program.cs
test/
HelloWorld.Test/
FunctionTest.cs
HelloWorld.Tests.csproj
Solution.sln
template.yaml
Если вы запустите следующую команду из корня проекта (тот же файл cwd, что и у файла Solution.sln и template.yaml), вы получите выходные данные как из src, так и из тестовых проектов в одном настраиваемом месте вывода, которое должно быть./publish из корня проекта:
dotnet publish --output ../../publish
Чтобы получить выходные данные только из проекта src, исключая тестовый проект, вы можете запустить ту же команду, например, так:
dotnet publish ./src/HelloWorld/HelloWorld.csproj --output ../../publish
Хотя я не проверял, я предполагаю, что инструмент VS Pro 2019 только собирается dotnet publish
команды и не предоставляет правильный аргумент csproj. Вы всегда можете просто запустить кастом dotnet publish
введите команду build, а затем укажите точку входа кода функции в эту выходную папку при упаковке лямбда-кода функции в s3.