예제 #1
0
        public void ElasticLoadBalancingCreateLoadBalancer()
        {
            #region elb-create-load-balancer-5

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateLoadBalancer(new CreateLoadBalancerRequest
            {
                Listeners = new List <Listener> {
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 80,
                        Protocol         = "HTTP"
                    }
                },
                LoadBalancerName = "my-load-balancer",
                Scheme           = "internal",
                SecurityGroups   = new List <string> {
                    "sg-a61988c3"
                },
                Subnets = new List <string> {
                    "subnet-15aaab61"
                }
            });

            string dnsName = response.DNSName;

            #endregion
        }
예제 #2
0
 public ELBHelper(string profile, string region, string color) : base(profile, region, color)
 {
     //client = new AmazonRDSClient(credentials, AwsCommon.GetRetionEndpoint(region));
     client = new AmazonElasticLoadBalancingClient(
         CredentiaslManager.GetCredential(profile),
         AwsCommon.GetRetionEndpoint(region));
 }
예제 #3
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonElasticLoadBalancingConfig config = new AmazonElasticLoadBalancingConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonElasticLoadBalancingClient client = new AmazonElasticLoadBalancingClient(creds, config);

            DescribeLoadBalancersResponse resp = new DescribeLoadBalancersResponse();

            do
            {
                DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest
                {
                    Marker = resp.NextMarker
                };

                resp = client.DescribeLoadBalancers(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.LoadBalancerDescriptions)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextMarker));
        }
예제 #4
0
        public void ElasticLoadBalancingCreateLoadBalancer()
        {
            #region elb-create-load-balancer-4

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateLoadBalancer(new CreateLoadBalancerRequest
            {
                AvailabilityZones = new List <string> {
                    "us-west-2a"
                },
                Listeners = new List <Listener> {
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 80,
                        Protocol         = "HTTP"
                    },
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 443,
                        Protocol         = "HTTPS",
                        SSLCertificateId = "arn:aws:iam::123456789012:server-certificate/my-server-cert"
                    }
                },
                LoadBalancerName = "my-load-balancer"
            });

            string dnsName = response.DNSName;

            #endregion
        }
예제 #5
0
        public void ElasticLoadBalancingCreateLoadBalancer()
        {
            #region elb-create-load-balancer-3

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateLoadBalancer(new CreateLoadBalancerRequest
            {
                Listeners = new List <Listener> {
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 80,
                        Protocol         = "HTTP"
                    },
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 443,
                        Protocol         = "HTTPS",
                        SSLCertificateId = "arn:aws:iam::123456789012:server-certificate/my-server-cert"
                    }
                },
                LoadBalancerName = "my-load-balancer",
                SecurityGroups   = new List <string> {
                    "sg-a61988c3"
                },
                Subnets = new List <string> {
                    "subnet-15aaab61"
                }
            });

            string dnsName = response.DNSName;

            #endregion
        }
예제 #6
0
        public void ElasticLoadBalancingCreateLoadBalancer()
        {
            #region elb-create-load-balancer-2

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateLoadBalancer(new CreateLoadBalancerRequest
            {
                AvailabilityZones = new List <string> {
                    "us-west-2a"
                },
                Listeners = new List <Listener> {
                    new Listener {
                        InstancePort     = 80,
                        InstanceProtocol = "HTTP",
                        LoadBalancerPort = 80,
                        Protocol         = "HTTP"
                    }
                },
                LoadBalancerName = "my-load-balancer"
            });

            string dnsName = response.DNSName;

            #endregion
        }
예제 #7
0
        public void ElasticLoadBalancingAddTags()
        {
            #region elb-add-tags-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.AddTags(new AddTagsRequest
            {
                LoadBalancerNames = new List <string> {
                    "my-load-balancer"
                },
                Tags = new List <Tag> {
                    new Tag {
                        Key   = "project",
                        Value = "lima"
                    },
                    new Tag {
                        Key   = "department",
                        Value = "digital-media"
                    }
                }
            });


            #endregion
        }
예제 #8
0
        public void ElasticLoadBalancingDeleteLoadBalancer()
        {
            #region elb-delete-load-balancer-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DeleteLoadBalancer(new DeleteLoadBalancerRequest
            {
                LoadBalancerName = "my-load-balancer"
            });


            #endregion
        }
예제 #9
0
        public void ElasticLoadBalancingDescribeLoadBalancerAttributes()
        {
            #region elb-describe-load-balancer-attributes-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DescribeLoadBalancerAttributes(new DescribeLoadBalancerAttributesRequest
            {
                LoadBalancerName = "my-load-balancer"
            });

            LoadBalancerAttributes loadBalancerAttributes = response.LoadBalancerAttributes;

            #endregion
        }
예제 #10
0
        public void ElasticLoadBalancingDescribeInstanceHealth()
        {
            #region elb-describe-instance-health-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DescribeInstanceHealth(new DescribeInstanceHealthRequest
            {
                LoadBalancerName = "my-load-balancer"
            });

            List <InstanceState> instanceStates = response.InstanceStates;

            #endregion
        }
예제 #11
0
        public void ElasticLoadBalancingDeleteLoadBalancerPolicy()
        {
            #region elb-delete-load-balancer-policy-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DeleteLoadBalancerPolicy(new DeleteLoadBalancerPolicyRequest
            {
                LoadBalancerName = "my-load-balancer",
                PolicyName       = "my-duration-cookie-policy"
            });


            #endregion
        }
        protected IAmazonElasticLoadBalancing CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonElasticLoadBalancingConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonElasticLoadBalancingClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }
예제 #13
0
        public void ElasticLoadBalancingCreateLBCookieStickinessPolicy()
        {
            #region elb-create-lb-cookie-stickiness-policy-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateLBCookieStickinessPolicy(new CreateLBCookieStickinessPolicyRequest
            {
                CookieExpirationPeriod = 60,
                LoadBalancerName       = "my-load-balancer",
                PolicyName             = "my-duration-cookie-policy"
            });


            #endregion
        }
예제 #14
0
        public void ElasticLoadBalancingSetLoadBalancerListenerSSLCertificate()
        {
            #region elb-set-load-balancer-listener-ssl-certificate-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.SetLoadBalancerListenerSSLCertificate(new SetLoadBalancerListenerSSLCertificateRequest
            {
                LoadBalancerName = "my-load-balancer",
                LoadBalancerPort = 443,
                SSLCertificateId = "arn:aws:iam::123456789012:server-certificate/new-server-cert"
            });


            #endregion
        }
예제 #15
0
        public void ElasticLoadBalancingCreateAppCookieStickinessPolicy()
        {
            #region elb-create-app-cookie-stickiness-policy-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.CreateAppCookieStickinessPolicy(new CreateAppCookieStickinessPolicyRequest
            {
                CookieName       = "my-app-cookie",
                LoadBalancerName = "my-load-balancer",
                PolicyName       = "my-app-cookie-policy"
            });


            #endregion
        }
예제 #16
0
        public void ElasticLoadBalancingDescribeTags()
        {
            #region elb-describe-tags-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DescribeTags(new DescribeTagsRequest
            {
                LoadBalancerNames = new List <string> {
                    "my-load-balancer"
                }
            });

            List <TagDescription> tagDescriptions = response.TagDescriptions;

            #endregion
        }
예제 #17
0
        public override Result Execute(ConDepSettings settings, CancellationToken token)
        {
            var client   = new AmazonElasticLoadBalancingClient(GetCredentials(settings), GetEndpoint(settings));
            var response = client.CreateLoadBalancer(_request);

            foreach (var server in settings.Config.Servers)
            {
                server.LoadBalancerFarm = _request.LoadBalancerName;
            }

            var result = response.HttpStatusCode == HttpStatusCode.Created ? Result.SuccessChanged() : Result.SuccessUnChanged();

            result.Data.LoadBalancerDnsName = response.DNSName;
            result.Data.HttpStatusCode      = response.HttpStatusCode;
            return(result);
        }
예제 #18
0
        public void ElasticLoadBalancingDeleteLoadBalancerListeners()
        {
            #region elb-delete-load-balancer-listeners-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DeleteLoadBalancerListeners(new DeleteLoadBalancerListenersRequest
            {
                LoadBalancerName  = "my-load-balancer",
                LoadBalancerPorts = new List <int> {
                    80
                }
            });


            #endregion
        }
예제 #19
0
        public void ElasticLoadBalancingDescribeLoadBalancerPolicyTypes()
        {
            #region elb-describe-load-balancer-policy-types-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DescribeLoadBalancerPolicyTypes(new DescribeLoadBalancerPolicyTypesRequest
            {
                PolicyTypeNames = new List <string> {
                    "ProxyProtocolPolicyType"
                }
            });

            List <PolicyTypeDescription> policyTypeDescriptions = response.PolicyTypeDescriptions;

            #endregion
        }
예제 #20
0
        public void ElasticLoadBalancingEnableAvailabilityZonesForLoadBalancer()
        {
            #region elb-enable-availability-zones-for-load-balancer-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.EnableAvailabilityZonesForLoadBalancer(new EnableAvailabilityZonesForLoadBalancerRequest
            {
                AvailabilityZones = new List <string> {
                    "us-west-2b"
                },
                LoadBalancerName = "my-load-balancer"
            });

            List <string> availabilityZones = response.AvailabilityZones;

            #endregion
        }
예제 #21
0
        public void ElasticLoadBalancingDescribeLoadBalancerPolicies()
        {
            #region elb-describe-load-balancer-policies-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.DescribeLoadBalancerPolicies(new DescribeLoadBalancerPoliciesRequest
            {
                LoadBalancerName = "my-load-balancer",
                PolicyNames      = new List <string> {
                    "my-authentication-policy"
                }
            });

            List <PolicyDescription> policyDescriptions = response.PolicyDescriptions;

            #endregion
        }
예제 #22
0
        public void ElasticLoadBalancingSetLoadBalancerPoliciesOfListener()
        {
            #region elb-set-load-balancer-policies-of-listener-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.SetLoadBalancerPoliciesOfListener(new SetLoadBalancerPoliciesOfListenerRequest
            {
                LoadBalancerName = "my-load-balancer",
                LoadBalancerPort = 80,
                PolicyNames      = new List <string> {
                    "my-SSLNegotiation-policy"
                }
            });


            #endregion
        }
예제 #23
0
        public void ElasticLoadBalancingAttachLoadBalancerToSubnets()
        {
            #region elb-attach-load-balancer-to-subnets-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.AttachLoadBalancerToSubnets(new AttachLoadBalancerToSubnetsRequest
            {
                LoadBalancerName = "my-load-balancer",
                Subnets          = new List <string> {
                    "subnet-0ecac448"
                }
            });

            List <string> subnets = response.Subnets;

            #endregion
        }
예제 #24
0
        public void ElasticLoadBalancingApplySecurityGroupsToLoadBalancer()
        {
            #region elb-apply-security-groups-to-load-balancer-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.ApplySecurityGroupsToLoadBalancer(new ApplySecurityGroupsToLoadBalancerRequest
            {
                LoadBalancerName = "my-load-balancer",
                SecurityGroups   = new List <string> {
                    "sg-fc448899"
                }
            });

            List <string> securityGroups = response.SecurityGroups;

            #endregion
        }
예제 #25
0
        public void ElasticLoadBalancingSetLoadBalancerPoliciesForBackendServer()
        {
            #region elb-set-load-balancer-policies-for-backend-server-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.SetLoadBalancerPoliciesForBackendServer(new SetLoadBalancerPoliciesForBackendServerRequest
            {
                InstancePort     = 80,
                LoadBalancerName = "my-load-balancer",
                PolicyNames      = new List <string> {
                    "my-ProxyProtocol-policy"
                }
            });


            #endregion
        }
예제 #26
0
        public Result BringOnline(string serverName, string farm)
        {
            var credentials = GetCredentials(_config.CustomConfig);
            var endpoint    = GetEndpoint(_config.CustomConfig);

            var ec2Client = new AmazonEC2Client(credentials, endpoint);
            var client    = new AmazonElasticLoadBalancingClient(credentials, endpoint);

            var request = new RegisterInstancesWithLoadBalancerRequest(farm, new List <Instance> {
                new Instance(GetInstanceId(ec2Client, serverName))
            });
            var response = client.RegisterInstancesWithLoadBalancer(request);
            var result   = Result.SuccessChanged();

            result.Data.HttpStatusCode  = response.HttpStatusCode;
            result.Data.ActiveInstances = response.Instances;
            return(result);
        }
예제 #27
0
        public void ElasticLoadBalancingRegisterInstancesWithLoadBalancer()
        {
            #region elb-register-instances-with-load-balancer-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.RegisterInstancesWithLoadBalancer(new RegisterInstancesWithLoadBalancerRequest
            {
                Instances = new List <Instance> {
                    new Instance {
                        InstanceId = "i-d6f6fae3"
                    }
                },
                LoadBalancerName = "my-load-balancer"
            });

            List <Instance> instances = response.Instances;

            #endregion
        }
예제 #28
0
        public void ElasticLoadBalancingModifyLoadBalancerAttributes()
        {
            #region elb-modify-load-balancer-attributes-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.ModifyLoadBalancerAttributes(new ModifyLoadBalancerAttributesRequest
            {
                LoadBalancerAttributes = new LoadBalancerAttributes {
                    CrossZoneLoadBalancing = new CrossZoneLoadBalancing {
                        Enabled = true
                    }
                },
                LoadBalancerName = "my-load-balancer"
            });

            LoadBalancerAttributes loadBalancerAttributes = response.LoadBalancerAttributes;
            string loadBalancerName = response.LoadBalancerName;

            #endregion
        }
예제 #29
0
        public void ElasticLoadBalancingRemoveTags()
        {
            #region elb-remove-tags-1

            var client   = new AmazonElasticLoadBalancingClient();
            var response = client.RemoveTags(new RemoveTagsRequest
            {
                LoadBalancerNames = new List <string> {
                    "my-load-balancer"
                },
                Tags = new List <TagKeyOnly> {
                    new TagKeyOnly {
                        Key = "project"
                    }
                }
            });


            #endregion
        }
예제 #30
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonElasticLoadBalancingConfig config = new AmazonElasticLoadBalancingConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonElasticLoadBalancingClient client = new AmazonElasticLoadBalancingClient(creds, config);

            DescribeLoadBalancerPoliciesResponse resp = new DescribeLoadBalancerPoliciesResponse();
            DescribeLoadBalancerPoliciesRequest  req  = new DescribeLoadBalancerPoliciesRequest
            {
            };

            resp = client.DescribeLoadBalancerPolicies(req);
            CheckError(resp.HttpStatusCode, "200");

            foreach (var obj in resp.PolicyDescriptions)
            {
                AddObject(obj);
            }
        }