// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 using Amazon.CloudWatch.EMF.Logger; using Amazon.DynamoDBv2; using Amazon.SQS; using Amazon.XRay.Recorder.Core; using Amazon.XRay.Recorder.Handlers.AwsSdk; using WorkerDb; using EMF = Amazon.CloudWatch.EMF; IHost host = Host.CreateDefaultBuilder(args) .ConfigureLogging(builder => { //Set the log level builder.SetMinimumLevel(LogLevel.Information) .AddJsonConsole(); }) .ConfigureServices((hostContext, services) => { //Register X-Ray AWSXRayRecorder.InitializeInstance(hostContext.Configuration); AWSSDKHandler.RegisterXRayForAllServices(); //Register DI Services services.AddDefaultAWSOptions(hostContext.Configuration.GetAWSOptions()); services.AddAWSService(); services.AddAWSService(); //Register EMF EMF.Config.EnvironmentConfigurationProvider.Config = new EMF.Config.Configuration { ServiceName = Worker.MY_SERVICE_NAME, ServiceType = "WorkerServices", LogGroupName = Environment.GetEnvironmentVariable("EMF_LOG_GROUP_NAME"), EnvironmentOverride = EMF.Environment.Environments.ECS }; services.AddScoped(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(EMF.Config.EnvironmentConfigurationProvider.Config); //Register Worker Service services.AddHostedService(); }) .Build(); await host.RunAsync();