有人可以帮助我根据最新创建日期对amis进行排序吗?
像这样的东西
aws ec2 describe-images --filters "Name=name,Values=Ubuntu 16.04 LTS*" "Name=owner-id,Values=715140769385" --query 'Images[*].[ImageId,CreationDate]'
目前我使用下面的代码来获取动画,但不知道如何排序。
final AmazonEC2 ec2 = getEC2Client();
DescribeImagesRequest request = new DescribeImagesRequest();
request.getFilters().add(new Filter().withName("name").withValues("Ubuntu 16.04 LTS service*"));
DescribeImagesResult result = ec2.describeImages(request);
for(Image images :result.getImages()){
System.out.println(images);
}
任何帮助?
答案 0 :(得分:0)
我可以使用下面的代码来实现它。它有点冗长。我希望得到一些过滤器来解决这个问题。
final AmazonEC2 ec2 = awsClient.getEC2Client();
DescribeImagesRequest request = new DescribeImagesRequest();
request.getFilters().add(new Filter().withName("name").withValues("Ubuntu 16.04 LTS service*"));
DescribeImagesResult result = ec2.describeImages(request);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Map<Date, String> imagesMap = new TreeMap<Date, String>(new Comparator<Date>() {
@Override
public int compare(Date d1, Date d2) {
return d1.before(d2) ? 1 : -1;
}
});
for (Image images : result.getImages()) {
try {
Date date = new Date(sdf.parse(images.getCreationDate()).getTime());
imagesMap.put(date, images.getImageId());
} catch (ParseException e) {
LOG.error("Could not parse date for after fetching AMIs");
}
}
if (imagesMap.size() > 0)
return imagesMap.values().stream().findFirst().get();
else
return null;