Amazon web services 获取当前正在运行的beanstalk版本标签的Java代码?

Amazon web services 获取当前正在运行的beanstalk版本标签的Java代码?,amazon-web-services,amazon-elastic-beanstalk,Amazon Web Services,Amazon Elastic Beanstalk,从运行在beanstalk上的Java应用程序中,如何获取当前正在运行的beanstalk版本标签 [稍后进行多次编辑…] 在与索尼(Sony)进行了几次反复的评论之后(见下文),我编写了下面的代码,它现在适合我。如果在部署时在版本标签中添加有意义的注释,那么这将告诉您正在运行什么。我们有一个连续的构建环境,因此我们可以让构建环境提供一个标签,该标签会导致相关代码的签入注释。把这些放在一起,您的服务器就可以确切地告诉您,相对于您的源代码签入,它正在运行哪些代码。对我们来说真的很有用。好的,现在我

从运行在beanstalk上的Java应用程序中,如何获取当前正在运行的beanstalk版本标签

[稍后进行多次编辑…]

在与索尼(Sony)进行了几次反复的评论之后(见下文),我编写了下面的代码,它现在适合我。如果在部署时在版本标签中添加有意义的注释,那么这将告诉您正在运行什么。我们有一个连续的构建环境,因此我们可以让构建环境提供一个标签,该标签会导致相关代码的签入注释。把这些放在一起,您的服务器就可以确切地告诉您,相对于您的源代码签入,它正在运行哪些代码。对我们来说真的很有用。好的,现在我实际上在这里回答我自己的问题,但索尼提供了宝贵的帮助。您无法删除硬编码的值并在运行时查询这些值,这似乎是一种遗憾

String getMyVersionLabel() throws IOException {
    Region region = Region.getRegion(Regions.fromName("us-west-2")); // Need to hard-code this

    AWSCredentialsProvider credentialsProvider = new ClasspathPropertiesFileCredentialsProvider();
    AWSElasticBeanstalkClient beanstalk = region.createClient(AWSElasticBeanstalkClient.class, credentialsProvider, null);

    String environmentName = System.getProperty("PARAM2", "DefaultEnvironmentName"); // Need to hard-code this too

    DescribeEnvironmentsResult environments = beanstalk.describeEnvironments();
    for (EnvironmentDescription ed : environments.getEnvironments()) {
        if (ed.getEnvironmentName().equals( environmentName)) {
            return "Running version " + ed.getVersionLabel() + " created on " + ed.getDateCreated());
            break;
        }
    }
    return null;
}
你可以直接使用和调用这个

有关如何获取应用程序中所有版本的详细信息,请参阅API。请确保同时提供您的区域(否则您将从默认AWS区域获取版本)

现在,如果您需要知道当前部署的版本,则需要另外调用。这有版本标签,它告诉您当前部署的版本


同样,如果您需要知道代码中的环境名称,则需要将其作为参数传递给aws控制台中的beanstalk配置,并作为参数进行访问。

是的,您需要告知区域。否则,它将从默认区域获取。看看是否有帮助。谢谢索尼-我修改了原始问题(见上文)中的代码,现在得到了正确的版本(来自正确的地区),但我如何知道哪一个是当前正在运行的版本?我在上面的答案中添加了更多信息。谢谢-我很接近,但仍然不在那里。DescribeenViorNMentsRequest返回当前应用程序的所有环境描述的列表,我正在运行的Elastic Beanstalk集群就是其中之一。还有一个问题,希望是这样:如何获取我正在运行的集群的环境名称?这样,我就可以遍历DescribeenEnvironmentsRequest的结果并找到正确的结果。因为它是一个常量设置,所以您可以在aws控制台中将其作为参数传递给beanstalk配置。