public Startup(LambdaTestHostSettings settings) { _settings = settings; _lambdaAccountPool = new LambdaAccountPool( settings.AccountConcurrencyLimit, settings.Functions); }
public static async ValueTask <LambdaTestHost> Start(LambdaTestHostSettings settings) { var host = WebHost .CreateDefaultBuilder <Startup>(Array.Empty <string>()) .UseUrls(settings.WebHostUrl) .ConfigureLogging(settings.ConfigureLogging) .ConfigureServices(services => { services.AddSingleton(settings); }) .Build(); await host.StartAsync(); var serviceUrl = host.GetServerUris().Single(); return(new LambdaTestHost(settings, host, serviceUrl)); }
public async Task InitializeAsync() { _settings = new LambdaTestHostSettings(() => new TestLambdaContext { Logger = new XunitLambdaLogger(_outputHelper), }); _settings.AddFunction( new LambdaFunctionInfo( nameof(BrokenFunction), typeof(BrokenFunction), nameof(BrokenFunction.Handle))); _settings.AddFunction( new LambdaFunctionInfo( nameof(APIGatewayFunction), typeof(APIGatewayFunction), nameof(APIGatewayFunction.Handle))); _settings.AddFunction( new LambdaFunctionInfo( nameof(ReverseStringFunction), typeof(ReverseStringFunction), nameof(ReverseStringFunction.Reverse))); _settings.AddFunction( new LambdaFunctionInfo( nameof(SleepFunction), typeof(SleepFunction), nameof(SleepFunction.Handle), 1)); _testHost = await LambdaTestHost.Start(_settings); var awsCredentials = new BasicAWSCredentials("not", "used"); var lambdaConfig = new AmazonLambdaConfig { ServiceURL = _testHost.ServiceUrl.ToString().Replace("[::]", "localhost"), MaxErrorRetry = 0 }; _lambdaClient = new AmazonLambdaClient(awsCredentials, lambdaConfig); }
private LambdaTestHost(LambdaTestHostSettings settings, IWebHost host, Uri serviceUrl) { _webHost = host; Settings = settings; ServiceUrl = serviceUrl; }