public static Command Copy( string source, string target, AwsOptions options = default, bool sudo = false) { #region Preconditions if (source == null) { throw new ArgumentNullException(nameof(source)); } #endregion // sudo aws s3 cp --quiet {source} {target} var sb = new StringBuilder("aws s3 cp "); if (options.HasFlag(AwsOptions.Quiet)) { sb.Append("--quiet "); } sb.Append(source); if (target != null) { sb.Append(' '); sb.Append(target); } return(new Command(sb.ToString(), sudo)); }
public static void ConfigureDevonfwAWS(this IServiceCollection services, IConfiguration configuration, ConfigureHostBuilder hostBuilder) { AwsOptions = services.GetTypedOptions <AwsOptions>(configuration, "AWS"); if (AwsOptions.EnableAws) { hostBuilder.ConfigureWebHostDefaults(webHostBuilder => webHostBuilder.InitializeDevonFwAws(AwsOptions)); } }
public static void AddAws(this IServiceCollection services, AwsOptions awsOptions, QueueOptions queueOptions) { var awsCredentials = new BasicAWSCredentials(awsOptions.AccessKey, awsOptions.SecretKey); var regionEndpoint = GetRegionEndpoint(queueOptions.WorkerQueueUrl.ToString()); var sqsClient = new AmazonSQSClient(awsCredentials, regionEndpoint); services.AddSingleton <IAmazonSQS>(sqsClient); }
public static void SetupSqs(this IServiceCollection services, IConfiguration configuration) { AwsOptions = services.GetTypedOptions <AwsOptions>(configuration, ConfigurationConsts.AwsOptionsNodeName); if (AwsOptions == null || AwsOptions.SqSQueueList == null || AwsOptions.SqSQueueList == null || AwsOptions.SqSQueueList.Count == 0) { return; } services.AddSingleton <ISqsClientHandler, SqsClientHandler>(); }
protected void SetupConfiguration() { ConfigurationBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); Configuration = ConfigurationBuilder.Build(); AwsOptions = ServiceCollection.GetTypedOptions <AwsOptions>(Configuration, ConfigurationConsts.AwsOptionsNodeName); }
public static void ConfigureDevonfwAWS(this IServiceCollection services, IConfiguration configuration, bool setupDevon = false) { if (setupDevon) { services.SetupDevonfw(configuration); } AwsOptions = services.GetTypedOptions <AwsOptions>(configuration, "AWS"); if (AwsOptions.EnableAws) { var credentials = services.LoadAwsCredentials(); var awsRegion = services.LoadAwsRegionEndpoint(); (configuration as IConfigurationBuilder)?.AddSecretsHandler(credentials, awsRegion); (configuration as IConfigurationBuilder)?.AddParameterStoreHandler(credentials, awsRegion); } }
private async Task OnExecuteAsync() { var awsOptions = new AwsOptions { AccessKey = Prompt.GetPassword("AWS Access Key", ConsoleColor.White, ConsoleColor.DarkBlue), SecretKey = Prompt.GetPassword("AWS Secret Key", ConsoleColor.White, ConsoleColor.DarkBlue) }; var queueOptions = new QueueOptions { WorkerQueueUrl = WorkerQueueUri }; var workerOptions = new WorkerOptions { Endpoint = WorkerUri }; Console.Clear(); Console.CancelKeyPress += ConsoleOnCancelKeyPress; try { using (var providerConfigurator = new ServiceProviderConfigurator()) using (var applicationScope = providerConfigurator .ConfigureTheWorld(awsOptions, queueOptions, workerOptions).CreateScope()) { var messagePump = applicationScope .ServiceProvider .GetRequiredService <MessagePump>(); await messagePump.RunAsync(Token); } } catch (Exception e) { Console.WriteLine("Exception: {0}", e.GetType()); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("StackTrace:"); Console.WriteLine(e.Demystify().StackTrace); } finally { Console.WriteLine("Press Enter to continue..."); Console.ReadLine(); } }
private static IServiceCollection ConfigureServices() { var configBuilder = new ConfigurationBuilder(); configBuilder.AddEnvironmentVariables(); configBuilder.AddJsonFile("appsettings.json", false, true); _configuration = configBuilder.Build(); var awsOptions = new AwsOptions(); _configuration.GetSection("aws").Bind(awsOptions); Services.AddSingleton <AWSCredentials>(x => new BasicAWSCredentials(awsOptions.AccessKey, awsOptions.SecretKey)); Services.AddSingleton <IAmazonDynamoDB, AmazonDynamoDBClient>(); Services.AddSingleton <IPostRepository, PostRepository>(); return(Services); }
/// <summary> /// Создаёт экземпляры всех настроек и получает значения, чтобы провести процесс валидации при старте приложения. /// </summary> public static IServiceCollection AddOptionsAndSecretsValidationOnStartup(this IServiceCollection services) { ////перместить валидацию в общий процесс прогрева https://andrewlock.net/reducing-latency-by-pre-building-singletons-in-asp-net-core/ try { HostOptions hostOptions = services.BuildServiceProvider().GetService <IOptions <HostOptions> >().Value; AwsOptions awsOptions = services.BuildServiceProvider().GetService <IOptions <AwsOptions> >().Value; ApplicationOptions applicationOptions = services.BuildServiceProvider().GetService <IOptions <ApplicationOptions> >().Value; GeneralOptions generalOptions = services.BuildServiceProvider().GetService <IOptions <GeneralOptions> >().Value; IdempotencyOptions idempotencyOptions = services.BuildServiceProvider().GetService <IOptions <IdempotencyOptions> >().Value; AppSecrets appSecrets = services.BuildServiceProvider().GetService <IOptions <AppSecrets> >().Value; } catch (OptionsValidationException ex) { Console.WriteLine($"Error validating {ex.OptionsType.FullName}: {string.Join(", ", ex.Failures)}"); throw; } return(services); }
public IServiceProvider ConfigureTheWorld(AwsOptions awsOptions, QueueOptions queueOptions, WorkerOptions workerOptions) { IServiceCollection services = new ServiceCollection(); var configurationBuilder = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .AddEnvironmentVariables(); if (IsDevelopment()) { configurationBuilder.AddUserSecrets <Program>(); } var configuration = configurationBuilder.Build(); var loggerFactory = configuration.ConfigureSerilog(); services.AddOptions(configuration, queueOptions); services.AddLogging(loggerFactory); services.AddAws(awsOptions, queueOptions); _disposables.AddRange(services.AddLogic(workerOptions)); return(services.BuildServiceProvider()); }
public MediaStoreUserController(IOptions <AwsOptions> options) { AwsOptions = options.Value; }
public static IWebHostBuilder InitializeDevonFwAws(this IWebHostBuilder builder, AwsOptions awsOptions) { builder.InitializeDevonFw(); builder.ConfigureAppConfiguration((context, configurationBuilder) => { if (awsOptions.UseSecrets) { configurationBuilder.AddSecretsHandler(); } }); return(builder); }
public SqsSample(ISqsClientHandler sqsClientHandler, IOptions <AwsOptions> options) { SqsClientHandler = sqsClientHandler; AwsOptions = options.Value; }
public static void ConfigureDevonFwAws(this IServiceCollection services, IConfiguration configuration) { AwsOptions = services.GetTypedOptions <AwsOptions>(configuration, "Aws"); }
public void GetAwsConfigurationObjects(out AWSCredentials awsCredentials, out AwsOptions awsOptions) { awsCredentials = AWSCredentials; awsOptions = AwsOptions; }