public async Task <ActionResult <string> > GetAsync() { var environment = "gidu-api"; var server = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var textDefault = $"GIDU API's <br> by Jeff <br> 2019 <br>" + $"{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}"; if (server == "Production") { var credencials = new BasicAWSCredentials( Environment.GetEnvironmentVariable("AWS_AccessKey"), Environment.GetEnvironmentVariable("AWS_SecretKey")); var elasticBeanstalkClient = new AmazonElasticBeanstalkClient(credencials, RegionEndpoint.SAEast1); var configs = (await elasticBeanstalkClient.DescribeEnvironmentsAsync()). Environments.Where(e => e.EnvironmentName == environment).First(); return($"{textDefault} <br>" + $"{configs.HealthStatus} <br>" + $"{configs.Status} <br>" + $"{configs.VersionLabel} <br>" + $"{configs.DateUpdated} <br>"); } return(textDefault); }
public IEnumerable <ElasticBeanstalkService> GetServices() { var beanstalkClient = new AmazonElasticBeanstalkClient(); var response = beanstalkClient.DescribeEnvironmentsAsync().Result; return(response.Environments.Select(e => _serviceFactory.Create(e))); }
// GET: Beanstalk public async Task <ActionResult> Index() { DescribeEnvironmentsResponse environmentsDescription; var activeEnvironmentsTask = this.clientRepository.GetActiveEnvironments(); using (AmazonElasticBeanstalkClient client = new AmazonElasticBeanstalkClient(RegionEndpoint.EUWest1)) { DescribeEnvironmentsRequest request = new DescribeEnvironmentsRequest(); environmentsDescription = await client.DescribeEnvironmentsAsync(request); } var environments = environmentsDescription.Environments; environments.RemoveAll(x => x.Status == EnvironmentStatus.Terminated || x.Status == EnvironmentStatus.Terminating); var activeEnvironments = await activeEnvironmentsTask; BeanstalkGroupViewModel[] viewModels = new BeanstalkGroupViewModel[HomeController.BeanstalkGroups.Length + 1]; for (int i = 0; i < HomeController.BeanstalkGroups.Length; i++) { viewModels[i] = new BeanstalkGroupViewModel(HomeController.BeanstalkGroups[i]); for (int j = environments.Count - 1; j >= 0; j--) { if (environments[j].EnvironmentName.StartsWith(HomeController.BeanstalkGroups[i], StringComparison.OrdinalIgnoreCase)) { // add something var obj = Convert(environments[j]); obj.HasBeanpole = activeEnvironments.ContainsKey(obj.EnvironmentName); viewModels[i].Environments.Add(obj); environments.RemoveAt(j); } } } var unknownGroup = new BeanstalkGroupViewModel("Unknown"); for (int i = 0; i < environments.Count; i++) { unknownGroup.Environments.Add(Convert(environments[i])); } viewModels[viewModels.Length - 1] = unknownGroup; for (int i = 0; i < viewModels.Length; i++) { viewModels[i].Environments.Sort((x, y) => StringComparer.OrdinalIgnoreCase.Compare(x.EnvironmentName, y.EnvironmentName)); } return(View(viewModels)); }
private static async Task SendToSlack(string channel, MessageData data) { var beanstalkClient = new AmazonElasticBeanstalkClient(); var response = await beanstalkClient.DescribeEnvironmentsAsync(new DescribeEnvironmentsRequest { ApplicationName = data.Application, EnvironmentNames = new List <string> { data.Environment } }); var httpClient = new HttpClient(); var payload = new { channel = channel, username = "******", attachments = new[] { new { color = data.Status.ToString().ToLower(), text = data.Message, fields = new object[] { new { title = "Version Label", value = response.Environments[0].VersionLabel }, new { title = "Application", value = $"<https://ap-northeast-1.console.aws.amazon.com/elasticbeanstalk/home?region=ap-northeast-1#/application/overview?applicationName={data.Application}|{data.Application}>", @short = true }, new { title = "Environment", value = $"<https://ap-northeast-1.console.aws.amazon.com/elasticbeanstalk/home?region=ap-northeast-1#/environment/dashboard?applicationName={data.Application}&environmentId={response.Environments[0].EnvironmentId}|{data.Environment}>", @short = true }, new { title = "Environment URL", value = data.EnvironmentUrl }, new { title = "Timestamp", value = data.Timestamp } } } } }; var jsonString = JsonConvert.SerializeObject(payload); await httpClient.PostAsync("https://hooks.slack.com/services/XXXXX", new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("payload", jsonString) })); }