Использование внедрения зависимостей в aws lambda, ядро ​​dotnet 2.1

Я новичок в Aws Lambda. Пытаюсь понять, как использовать внедрение зависимостей в .NET Core 2.1 и Aws Lambda. Вот функция, которая у меня есть:

public class Function
{
    ILogger _logger;
    IClient _client;

    public Function(ILogger logger, IClient client)
    {
        _logger = logger;
        _client = client;
    }

    /// <summary>
    /// A simple function that takes a string and does a ToUpper
    /// </summary>
    /// <param name="input"></param>
    /// <param name="context"></param>
    /// <returns></returns>
    public async Task FunctionHandler(ILambdaContext context)
    {
        var response = await _client.Test();
        _logger.Log(response);
    }
}

Где в жизненном цикле Aws Lambda я могу настроить внедрение зависимостей - инициализировать ServiceCollection и создать поставщика услуг?

4
0
306
1

Ответы 1

Я бы рекомендовал сделать это как часть конструктора или, по крайней мере, в функции, вызываемой из конструктора. Это будет вызываться только один раз для каждой вычислительной среды Lambda по сравнению с методом FunctionHandler, который вызывается при каждом вызове Lambda.

Итак, в конструкторе настройте поставщика услуг, установите его как переменную-член, и тогда у вас будет доступ к нему для всех вызовов Lambda.

Другие вопросы по теме