Exemple #1
0
        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());
        }