private async Task CreateIisNextEnvironmentAsync(string environmentIdentifier, string version, List<ConfigurationOptionSetting> optionSettings)
{
loggerProvider.GetLogger()
.Debug("New environment - creating \"Next\" {identifier} {version}...", environmentIdentifier, version);
using (var ebClient = new AmazonElasticBeanstalkClient(creds, configurationProvider.RegionEndpoint))
{
var optionSettingsApp = GetAppSpecificCreateConfigurationOptionSettings();
loggerProvider.GetLogger().Debug("Parsed configuration option settings: {@optionSettings}", optionSettingsApp);
optionSettings = InjectAppSpecificOptionSettings(optionSettings, optionSettingsApp);
loggerProvider.GetLogger()
.Debug("Create next environment: total option settings count - {optionSettingsCount}",
optionSettings.Count);
var currentEnvironmentName = $"{configurationProvider.BeanstalkEnvironmentName}-{environmentIdentifier}";
var createEnvironmentRequest =
new CreateEnvironmentRequest(configurationProvider.LongApplicationName,
currentEnvironmentName)
{
Tier = new EnvironmentTier { Name = "WebServer", Type = "Standard" },
SolutionStackName = "64bit Windows Server Core 2012 R2 running IIS 8.5",
CNAMEPrefix = nextCNamePrefix,
VersionLabel = version,
OptionSettings = optionSettings
};
var createEnvironmentResponse = await ebClient.CreateEnvironmentAsync(createEnvironmentRequest);
await EnsureCreateEnvironmentCompleteAsync(createEnvironmentResponse.EnvironmentId);
loggerProvider.GetLogger()
.Debug("Created \"Next\" environment: {@createEnvironmentResponse}", createEnvironmentResponse);
// TODO: capture createEnvironmentResponse.Cname as TestUri - SRO
}
}