2017-08-16 13 views
1

AWS Java APIを使用してロードバランサのリストを取得しようとしています。describeLoadBalancersは従来のロードバランサを表示しません

AmazonElasticLoadBalancing elbClient = AmazonElasticLoadBalancingClient 
      .builder() 
      .withCredentials(new DefaultAWSCredentialsProviderChain()) 
      .withRegion(Regions.EU_WEST_1) 
      .build(); 
    DescribeLoadBalancersResult result = elbClient.describeLoadBalancers(
      new DescribeLoadBalancersRequest()); 
    for (LoadBalancer lb : result.getLoadBalancers()) { 
     System.out.println(lb.getLoadBalancerName()); 
    } 

コールは機能しますが、新しいアプリケーションロードバランサのみがリストされます。私は古典的なロードバランサを見ません。私の信任状は無制限です。

クラシックロードバランサのハンドルを取得するにはどうすればよいですか?

答えて

2

Elastic Load Balancingには2つのAPIがあるようです。 AmazonElasticLoadBalancingClientのjavadocは、ヒントを提供します。

このリファレンスでは、アプリケーション・ロード・バランサをサポートする2015-12-01 APIについて説明します。 2012-06-01 APIは、クラシックロードバランサをサポートしています。

以下のコードについては

、コメントアウトコードは、古典的なロードバランサをプリントアウトしませんが、出てコメントを外し、コードになります。

/* 
import com.amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancing; 
import com.amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancingClientBuilder; 
import com.amazonaws.services.elasticloadbalancingv2.model.DescribeLoadBalancersRequest; 
import com.amazonaws.services.elasticloadbalancingv2.model.DescribeLoadBalancersResult; 
*/ 
import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancing; 
import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClientBuilder; 
import com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest; 
import com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult; 
import org.junit.Test; 

public class AwsTestIT 
{ 
    /* 
    @Test 
    public void testGetLoadBalancers() 
    { 
     AmazonElasticLoadBalancing amazonElasticLoadBalancingClient = AmazonElasticLoadBalancingClientBuilder 
      .defaultClient(); 
     DescribeLoadBalancersResult result = 
      amazonElasticLoadBalancingClient.describeLoadBalancers(new DescribeLoadBalancersRequest()); 
     result.getLoadBalancers().stream().forEach(loadBalancer -> System.out 
      .println("loadBalancer = " + loadBalancer)); 
    } 
    */ 

    @Test 
    public void testGetLoadBalancers() 
    { 
     AmazonElasticLoadBalancing amazonElasticLoadBalancingClient = AmazonElasticLoadBalancingClientBuilder 
      .defaultClient(); 
     DescribeLoadBalancersResult result = 
      amazonElasticLoadBalancingClient.describeLoadBalancers(new DescribeLoadBalancersRequest()); 
     result.getLoadBalancerDescriptions().stream().forEach(loadBalancer -> System.out 
      .println("loadBalancer = " + loadBalancer)); 
    } 
} 
+1

ありがとう、私はそれはのように、古いAWS SDKを使用して働かせましたこの1つ:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-elasticloadbalancing/1.11.158 – stivlo

2

クラシックELB用とALB用の2種類のAPIがあります。

あなたが使用しているAPIはおそらく「v2」APIであり、ALBのみを返します。

クラシックELBを取得するには、「v1」APIを使用する必要があります。

たとえば、AWS CLIには、aws elbaws elbv2があります。

関連する問題