簡體   English   中英

AWS Elastic Beanstalk 中是否有 API 調用來獲取正在運行的主機列表? (有 IP)

[英]Is there an API call in AWS Elastic Beanstalk to have a list of running hosts? (with IPs)

標題真的說明了一切。 我需要運行每個實例以了解其他實例是什么,包括它們的 IP 地址。 是否有 EB API 調用可以做到這一點? 或者也許是 AWS 中更通用的方式?

AWS Elastic Beanstalk SDK 公開了提供有關環境和應用程序的詳細信息的方法。 (不清楚你的意思是我需要每個實例運行以了解其他實例是什么

無論如何——您可以獲得應用程序列表並獲取有關這些 EB 應用程序的詳細信息。 例如,您可以獲得狀態(正在運行的 EB 應用程序將具有狀態值Ready )和應用程序 URL(而不是 IP )。 因此,您可以通過 SDK 獲得您正在尋找的詳細信息。

運行此代碼會返回您在 AWS 管理控制台中看到的詳細信息,例如:

  • 應用程序名稱是 VideoAnalyzer
  • 環境 ARN 是 arn:aws:elasticbeanstalk:us-east-1:xxxxxx047983:environment/VideoAnalyzer/Videoanalyzer-env
  • 端點 URL 是 awseb-AWSEB-xxxxxxY1BQF02-xxxx6689.us-east-1.elb.amazonaws.com
  • 狀態為就緒

我將向您展示 Java SDK v2 中的代碼。

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.elasticbeanstalk.ElasticBeanstalkClient;
import software.amazon.awssdk.services.elasticbeanstalk.model.DescribeApplicationsResponse;
import software.amazon.awssdk.services.elasticbeanstalk.model.ApplicationDescription;
import software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentsRequest;
import software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentsResponse;
import software.amazon.awssdk.services.elasticbeanstalk.model.EnvironmentDescription;
import software.amazon.awssdk.services.elasticbeanstalk.model.ElasticBeanstalkException;
import java.util.List;
//snippet-end:[eb.java2.describe_app.import]


/**
 * Before running this Java V2 code example, set up your development environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */

public class DescribeApplications {

    public static void main(String[] args) {

        Region region = Region.US_EAST_1;
        ElasticBeanstalkClient beanstalkClient = ElasticBeanstalkClient.builder()
                .region(region)
                .build();

        describeApps(beanstalkClient);
    }

    //snippet-start:[eb.java2.describe_app.main]
    public static void describeApps(ElasticBeanstalkClient beanstalkClient) {

        try {
            DescribeApplicationsResponse applicationsResponse = beanstalkClient.describeApplications();
            List<ApplicationDescription> apps = applicationsResponse.applications();
            for (ApplicationDescription app: apps) {
                System.out.println("The application name is "+app.applicationName());
                DescribeEnvironmentsRequest desRequest =  DescribeEnvironmentsRequest.builder()
                            .applicationName(app.applicationName())
                            .build();

                DescribeEnvironmentsResponse res = beanstalkClient.describeEnvironments(desRequest) ;
                List<EnvironmentDescription> envDesc = res.environments();
                for (EnvironmentDescription desc: envDesc) {
                    System.out.println("The Environment ARN is "+desc.environmentArn());
                    System.out.println("The Endpoint URL is "+ desc.endpointURL());
                    System.out.println("The status is "+ desc.status());
                }
            }
        } catch (ElasticBeanstalkException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }
    //snippet-end:[eb.java2.describe_app.main]
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM