从运行在beanstalk上运行的Java应用程序中,如何获取当前正在运行的beanstalk版本标签?获取当前运行beanstalk版本标签的Java代码?
[多个编辑后...]
与索尼(见下文)几回的往复的意见后,我写了下面的代码这对我现在的作品。如果您在部署时在版本标签中添加有意义的评论,那么这会告诉您您正在运行的是什么。我们有一个持续的构建环境,所以我们可以让我们的构建环境提供一个标签,导致相关代码的签入注释。把这一切放在一起,你的服务器可以告诉你它的运行相对于源代码检查的确切代码。真的对我们有用。现在我确实在回答我自己的问题,但有索尼的宝贵帮助。看起来很遗憾你不能删除硬编码值并在运行时查询这些值。
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;
}
是的,你需要告诉该地区。否则它从默认区域获取。看看它是否有帮助。 –
谢谢索尼 - 我修改了原始问题中的代码(参见上文),它使我现在正确的版本(来自右侧区域),但是我怎么知道哪一个是当前运行的版本? – Danger
我在上面的答案中添加了更多信息。 –