简体   繁体   English

如何使用 AWS java sdk 在 AWS 中创建负载均衡器

[英]how can i create a load balancer in AWS using the AWS java sdk

as part of a project i need to create a new load balancer on amazon AWS.作为项目的一部分,我需要在亚马逊 AWS 上创建一个新的负载均衡器。 i need to do it using the java sdk我需要使用 java sdk

how can i set the load balancer up using code?如何使用代码设置负载均衡器?

here is what i tried so far without success.这是我迄今为止尝试过但没有成功的方法。

//create load balancer
        CreateLoadBalancerRequest lbRequest = new CreateLoadBalancerRequest();
        lbRequest.setLoadBalancerName("loader");
        List<Listener> listeners = new ArrayList<Listener>(1);
        listeners.add(new Listener("HTTP", 80, 80));
        lbRequest.withAvailabilityZones(availabilityZone1,availabilityZone2);
        lbRequest.setListeners(listeners);

        CreateLoadBalancerResult lbResult=new CreateLoadBalancerResult();
        System.out.println("created load balancer loader");

well finelly i got it:好吧,我明白了:

first create an elb client首先创建一个elb客户端

AmazonElasticLoadBalancingClient elb = new AmazonElasticLoadBalancingClient(credentials);

then然后

use it to initiate the request使用它来发起请求

  //create load balancer
        CreateLoadBalancerRequest lbRequest = new CreateLoadBalancerRequest();
        lbRequest.setLoadBalancerName("loader");
        List<Listener> listeners = new ArrayList<Listener>(1);
        listeners.add(new Listener("HTTP", 80, 80));
        lbRequest.withAvailabilityZones(availabilityZone1,availabilityZone2);
        lbRequest.setListeners(listeners);

        CreateLoadBalancerResult lbResult=elb.createLoadBalancer(lbRequest);
        System.out.println("created load balancer loader");

then register your instances to the Load balancer然后将您的实例注册到负载均衡器

//get the running instances
        DescribeInstancesResult describeInstancesRequest = ec2.describeInstances();
        List<Reservation> reservations = describeInstancesRequest.getReservations();
        List<Instance> instances = new ArrayList<Instance>();

        for (Reservation reservation : reservations) {
            instances.addAll(reservation.getInstances());
        }


        //get instance id's
        String id;
        List instanceId=new ArrayList();
        List instanceIdString=new ArrayList();
        Iterator<Instance> iterator=instances.iterator();
        while (iterator.hasNext())
        {
            id=iterator.next().getInstanceId();
            instanceId.add(new com.amazonaws.services.elasticloadbalancing.model.Instance(id));
            instanceIdString.add(id);
        }


        //register the instances to the balancer
        RegisterInstancesWithLoadBalancerRequest register =new RegisterInstancesWithLoadBalancerRequest();
        register.setLoadBalancerName("loader");
        register.setInstances((Collection)instanceId);
        RegisterInstancesWithLoadBalancerResult registerWithLoadBalancerResult= elb.registerInstancesWithLoadBalancer(register);

and you are done...你已经完成了......

V2 code -- V2代码——

package com.example.loadbalance;

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.elasticloadbalancing.ElasticLoadBalancingClient;
import software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerRequest;
import software.amazon.awssdk.services.elasticloadbalancing.model.ElasticLoadBalancingException;
import software.amazon.awssdk.services.elasticloadbalancing.model.CreateLoadBalancerResponse;
import software.amazon.awssdk.services.elasticloadbalancing.model.Listener;

import java.util.ArrayList;
import java.util.List;

public class CreateLoadBalancer {

    public static void main(String[] args) {

        Region region = Region.US_WEST_2;
        ElasticLoadBalancingClient loadClient = ElasticLoadBalancingClient.builder()
                .region(region)
                .build();

        try {

            Listener listener = Listener.builder()
                .protocol("HTTP")
                .instancePort(80)
                .loadBalancerPort(80)
                .build();

            List<Listener> listeners = new ArrayList<>();
            listeners.add(listener);

            List<String> avZone = new ArrayList<String>();
            avZone.add("us-west-2a");
            avZone.add("us-west-2b");

            //Define security groups
            List<String> secGroups = new ArrayList<String>();
            secGroups.add("sg-7aba5827");

        CreateLoadBalancerRequest loadBalancerRequest = CreateLoadBalancerRequest.builder()
                .availabilityZones(avZone)
                .securityGroups(secGroups)
                .loadBalancerName("LoadB44")
                 .listeners(listeners)
                .scheme("internet-facing")
                .build();

            CreateLoadBalancerResponse response = loadClient.createLoadBalancer(loadBalancerRequest);
            System.out.println("The DNS Name is "+response.dnsName());

    } catch (ElasticLoadBalancingException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }

    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 通过 Java SDK(v1 和 v2)在 aws 中找不到网络负载均衡器 - Network Load Balancer can not find in aws by Java SDK (v1 & v2) 如何使用AWS Java SDK创建新的AWS实例 - How to create a new AWS instance using AWS Java SDK 如何将 Java Lambda 从 AWS API Gateway 转换为负载均衡器 - How To Convert Java Lambda from AWS API Gateway to Load Balancer 如何在 AWS Java SDK 中使用 IAM 角色创建云形成? - How to create cloud formation using IAM roles in AWS Java SDK? 如何使用 java sdk 创建具有权限的 aws 角色? - How to create aws role with permission using java sdk? 无法使用Java SDK在AWS中创建VPC - Not able to create a VPC in AWS using Java SDK 如何使用 aws cli 创建 java aws lambda function? - how can i create an java aws lambda function using the aws cli? 如何在AWS Elastic Beanstalk环境中配置负载均衡器? - How do I configure a load balancer in an AWS Elastic Beanstalk environment? 如何通过aws-java-sdk创建AWS默认VPC - How to create AWS default VPC through aws-java-sdk 如何使用 Java 对 AWS S3 开发工具包的 getObject 方法进行单元测试? - How can I unit test the getObject method of the AWS S3 SDK using Java?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM