Мне известно, что вопрос был задан около года назад из этого ответа, поэтому я не знаю, насколько все изменилось с тех пор, но вот что сработало для меня:
Я начал использовать dotnet
CLI-лямбда-инструменты, как вы и предлагали, и все работает отлично. Он работает из коробки и требует минимальной настройки. Проблема, с которой я столкнулся, заключается в том, что мне нужно было настроить какую-то конкретную конфигурацию, которую Cloudformation не разрешала . Именно тогда я начал использовать Terraform. После некоторых копаний я решил пойти с Terraform, потому что он исправил эту проблему .
Теперь вы упомянули, что ловушкой использования Terraform является то, что вам нужно загрузить весь код в S3 ... но я обнаружил, что инструменты dotnet
CLI делают то же самое. Если вы извлечете результат выполнения dotnet lambda deploy-function
, вы увидите:
Zipping publish folder
... zipping: some.dll
... zipping: another.dll
Created publish archive (---)
Uploading to S3. (Bucket: ---)
... Progress: 11%
... Progress: 55%
... Progress: 100%
Creating new Lambda function some_lambda
Итак, в двух словах, я решил придерживаться Terraform и просто разработать собственный сценарий оболочки, который сначала запускает dotnet restore
, затем dotnet build
и, наконец, terraform apply
. И это все, что мне нужно для развертывания моего приложения в AWS. Я считаю, что это более настраиваемый подход, чем использование Serverless Cloudformation с CLI dotnet.
Надеюсь, это помогло!