public void ElasticBeanstalkDescribeEnvironmentResources() { #region to-view-information-about-the-aws-resources-in-your-environment-1456277206232 var client = new AmazonElasticBeanstalkClient(); var response = client.DescribeEnvironmentResources(new DescribeEnvironmentResourcesRequest { EnvironmentName = "my-env" }); EnvironmentResourceDescription environmentResources = response.EnvironmentResources; #endregion }
public List <string> GetServers() { if (ConfigurationManager.AppSettings["AWS_ENV_NAME"] == null) { throw new ArgumentException("Missing AWS_ENV_NAME app setting"); } if (ConfigurationManager.AppSettings["AWS_REGION"] == null) { throw new ArgumentException("Missing AWS_REGION app setting"); } var environmentName = ConfigurationManager.AppSettings["AWS_ENV_NAME"]; RegionEndpoint regionEndpoint = null; switch (ConfigurationManager.AppSettings["AWS_REGION"].Trim().ToLower()) { case "us-east-1": regionEndpoint = RegionEndpoint.USEast1; break; case "us-west-1": regionEndpoint = RegionEndpoint.USWest1; break; case "us-west-2": regionEndpoint = RegionEndpoint.USWest2; break; case "eu-west-1": regionEndpoint = RegionEndpoint.EUWest1; break; case "ap-northeast-1": regionEndpoint = RegionEndpoint.APNortheast1; break; case "ap-southeast-1": regionEndpoint = RegionEndpoint.APSoutheast1; break; case "ap-southeast-2": regionEndpoint = RegionEndpoint.APSoutheast2; break; case "sa-east-1": regionEndpoint = RegionEndpoint.SAEast1; break; case "us-gov-west-1": regionEndpoint = RegionEndpoint.USGovCloudWest1; break; case "cn-north-1": regionEndpoint = RegionEndpoint.CNNorth1; break; } if (regionEndpoint == null) { throw new ArgumentException("Incorrect AWS_REGION endpoint"); } // Create client var elasticBeanstalkClient = new AmazonElasticBeanstalkClient(regionEndpoint); // Get environment resources for environment var environmentResourcesRequest = new DescribeEnvironmentResourcesRequest { EnvironmentName = environmentName }; var resourceResponse = elasticBeanstalkClient.DescribeEnvironmentResources(environmentResourcesRequest); // Create ELB client var elasticLoadBalancingClient = new AmazonElasticLoadBalancingClient(regionEndpoint); // Get load balancers for all environment's load balancers var loadBalancersRequest = new DescribeLoadBalancersRequest(); foreach (var loadBalancer in resourceResponse.EnvironmentResources.LoadBalancers) { loadBalancersRequest.LoadBalancerNames.Add(loadBalancer.Name); } var describeLoadBalancersResponse = elasticLoadBalancingClient.DescribeLoadBalancers(loadBalancersRequest); // Create EC2 client var ec2Client = new AmazonEC2Client(regionEndpoint); // Get instances for all instance ids in all load balancers var instancesRequest = new DescribeInstancesRequest(); // Get all instance ids for all load balancers foreach (var instance in describeLoadBalancersResponse.LoadBalancerDescriptions.SelectMany(loadBalancer => loadBalancer.Instances)) { instancesRequest.InstanceIds.Add(instance.InstanceId); } var instancesResponse = ec2Client.DescribeInstances(instancesRequest); // Find all private dns names return((from reservation in instancesResponse.Reservations from instance in reservation.Instances select instance.PublicDnsName).ToList()); }