public static void InvokeDescribeLoadBalancers()
        {
            NameValueCollection appConfig = ConfigurationManager.AppSettings;

            // Print the number of Elastic Load Balancing domains.
            IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(RegionEndpoint.USWest2);

            try
            {
                DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(new DescribeLoadBalancersRequest());

                int numLoadBalancers = 0;
                numLoadBalancers = elbResponse.LoadBalancerDescriptions.Count;
                Console.WriteLine("You have " + numLoadBalancers + " Elastic Load Balancing load balancer(s).");
            }
            catch (AmazonElasticLoadBalancingException ex)
            {
                if (ex.ErrorCode.Equals("OptInRequired"))
                {
                    Console.WriteLine("You are not signed for Amazon EC2.");
                    Console.WriteLine("You can sign up at http://aws.amazon.com/ec2.");
                }
                else
                {
                    Console.WriteLine("Caught Exception: " + ex.Message);
                    Console.WriteLine("Response Status Code: " + ex.StatusCode);
                    Console.WriteLine("Error Code: " + ex.ErrorCode);
                    Console.WriteLine("Error Type: " + ex.ErrorType);
                    Console.WriteLine("Request ID: " + ex.RequestId);
                }
            }
            Console.WriteLine();
        }
Ejemplo n.º 2
0
        public static void GetTopology()
        {
            IAmazonEC2                  ec2 = AWSClientFactory.CreateAmazonEC2Client();
            IAmazonAutoScaling          asg = AWSClientFactory.CreateAmazonAutoScalingClient();
            IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient();

            DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs();

            WriteFile("vpcs.csv", vpcResponse.Vpcs);

            DescribeInstancesResponse instanceResponse = ec2.DescribeInstances();
            var reservationIndex = 0;

            foreach (var reservation in instanceResponse.Reservations)
            {
                if (reservationIndex == 0)
                {
                    WriteFile("instances.csv", reservation.Instances);
                }
                else
                {
                    AppendFile("instances.csv", reservation.Instances);
                }
                reservationIndex++;
            }

            DescribeNetworkAclsResponse naclResponse = ec2.DescribeNetworkAcls();

            WriteFile("nacls.csv", naclResponse.NetworkAcls);

            Amazon.EC2.Model.DescribeTagsResponse tagsResponse = ec2.DescribeTags();
            WriteFile("tags.csv", tagsResponse.Tags);

            DescribeVolumesResponse volumesResponse = ec2.DescribeVolumes();

            WriteFile("volumes.csv", volumesResponse.Volumes);

            DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers();

            WriteFile("elbs.csv", elbResponse.LoadBalancerDescriptions);

            DescribeInternetGatewaysResponse igResponse = ec2.DescribeInternetGateways();

            WriteFile("igs.csv", igResponse.InternetGateways);
        }
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            //validate args
            if (String.IsNullOrEmpty(AWSAccessKey) || String.IsNullOrEmpty(AWSSecretKey))
            {
                e.Result = null;
                return;
            }

            //ec2 client
            var ec2 = AWSClientFactory.CreateAmazonEC2Client(AWSAccessKey,
                                                             AWSSecretKey,
                                                             new AmazonEC2Config().WithServiceURL(RegionHelper.EC2EndpointForRegion(EC2Region))
                                                             );

            var elbClient = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(AWSAccessKey,
                                                                                    AWSSecretKey,
                                                                                    new AmazonElasticLoadBalancingConfig()
            {
                ServiceURL = RegionHelper.ELBEndpointForRegion(EC2Region).Replace("http:", "https:")
            });

            DescribeLoadBalancersResponse loadBalancers = null;

            try
            {
                loadBalancers = elbClient.DescribeLoadBalancers();
            }
            catch (WebException wex)
            {
                var response      = wex.Response as HttpWebResponse;
                var responsveBody = new StreamReader(response.GetResponseStream()).ReadToEnd();
                int a             = 5;
            }

            e.Result = loadBalancers.DescribeLoadBalancersResult.LoadBalancerDescriptions.
                       Select(lb => new AWSLoadBalancerServersRetreiverCompleteEventArgs.LoadBalancer {
                LoadBalancerName = lb.LoadBalancerName,
                InstanceNames    = lb.Instances.Select(instance => instance.InstanceId).ToList()
            }).
                       ToList();
        }