.Net Core - лямбда-проект AWS, поддерживающий DI - PullRequest
0 голосов
/ 24 мая 2019

У меня есть проект Lambda в ядре .net, и я хочу включить Dependency Injection.Я создал класс запуска, в который я добавил ConfigureService и ConfigureContainer

public class Startup
{
        public void ConfigureServices(IServiceCollection services)
        {
            void ConfigureContainer()
            {
                services.AddTransient<IProfileEventHandler, ProfileEventHandler>();
                services.AddTransient<IRepository, ESRepository>();
                services.AddTransient<IDataKeyDecryption, KmsDataKeyDecryption>();
                services.AddTransient<IDecryptionProvider, DecryptionProvider>();
            }

            ConfigureContainer();
        }

}

Обычно типичный базовый проект .net имеет класс программы, и мы вызовем класс запуска в методе CreateWebHost, когда мы запустим WebHost, это просто разрешит зависимость.Но как я могу сделать то же самое в проекте AWS Lambda.

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

На самом деле вы можете использовать Asp.NET Core в Lambdas, и это, конечно, облегчает веб-разработку. Если вы загружаете шаблоны проектов dotnet, вы можете создать проект из шаблона, который уже имеет безсерверный шаблон, а также точку входа лямбда, все настроены для лямбды!

Использование этого предоставит вам DI и IoC, которые Asp.Net Core предоставляет из коробки.

Если вы используете VS, вы можете загрузить AWS Toolkit для Visual Studio: https://aws.amazon.com/visualstudio/

Кроме того, вы можете скачать шаблоны для использования через DotNet Cli https://aws.amazon.com/blogs/developer/creating-net-core-aws-lambda-projects-without-visual-studio/

0 голосов
/ 25 мая 2019

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

Взгляните на пример реализации здесь.

https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html

Инициализирует код DI в точке входастатический метод.

Надеюсь, это поможет.

...