Ниже приведен мой код для того же самого. Я пытаюсь получить идентификаторы экземпляров, которые были запущены за 30 дней до текущей даты. Я не могу получить данные, так как он возвращает пустой список.
public List<String> getFilteredInstances(){
List<String> instanceIds=getAllInstanceIds();
Filter instanceIdFilter = new Filter("instance-id",instanceIds);
//Creating date
LocalDate today = LocalDate.now();
List<String> launchTimeFilterValue = new ArrayList<>();
//Subtracting 30 days from the current date
launchTimeFilterValue.add(today.minusDays(30).toString());
Filter launchTimeFilter = new Filter("launch-time",launchTimeFilterValue);
AmazonEC2 amazonEC2 = AmazonEC2ClientBuilder.defaultClient();
DescribeInstancesRequest request = new DescribeInstancesRequest();
DescribeInstancesResult response = amazonEC2.describeInstances(request.withFilters(instanceIdFilter, launchTimeFilter));
List<String> filteredInstanceIds=new ArrayList<>();
response.getReservations().stream()
.flatMap(reservation -> reservation.getInstances().stream())
.forEach(instance -> filteredInstanceIds.add(instance.getInstanceId()));
return filteredInstanceIds;}
Привет, я смог получить без фильтров, но не повезло с фильтром. В крайнем случае я отфильтровал список на время запуска. .filter (экземпляр -> instance.getLaunchTime (). before (today.minusDays (30) .toDate () ))




Вы можете поделиться объектом
response. При этом, возможно, вы также можете поделиться, если список все еще пуст, когда вы не применяете фильтры для описания, например,DescribeInstancesResult response = amazonEC2.describeInstances(new DescribeInstancesRequest());.