как получить список всех доступных изображений для региона в amazon web services, используя aws-java-sdk?

#java #amazon-web-services #amazon-ec2 #amazon-ami #aws-java-sdk

#java #amazon-web-services #amazon-ec2 #amazon-ami #aws-java-sdk

Вопрос:

Как я могу получить список всех доступных изображений для региона, используя aws-java-sdk, я только что попробовал с приведенным ниже кодом, он выполняется в течение длительного времени.

 AmazonEC2  ec2Client = new AmazonEC2Client(awsCredetials);
ec2Client.setRegion(RegionUtils.getRegion("us-west-2"));
DescribeImagesRequest request = new DescribeImagesRequest().withFilters(new LinkedList<Filter>());
DescribeImagesResult describeImagesResult= ec2Client.describeImages(request);
  

Ответ №1:

Вы перечисляете все общедоступные AMI в us-west-2, их более 50 000, добавьте несколько фильтров.

например, чтобы найти все 64-разрядные AMI Ubuntu:

 request.getFilters().add(new Filter().withName("architecture").withValues("x86_64"));
request.getFilters().add(new Filter().withName("platform").withValues("Ubuntu"));
  

Смотрите полный список фильтров здесь.

Комментарии:

1. не могли бы вы, пожалуйста, поделиться со мной некоторыми примерами, если это возможно, пожалуйста

2. @MohamedUvaisM добавил пример

Ответ №2:

Когда я попытался с помощью filter

 request.getFilters().add(new Filter().withName("architecture").withValues("x86_64"));
request.getFilters().add(new Filter().withName("platform").withValues("Ubuntu"));
  

Я получил нулевой результат, и причина, по которой я нашел, была такой, что platform всегда null отличается от windows .

Я пробовал с подстановочными знаками

 request.getFilters().add(new Filter().withName("architecture").withValues("x86_64"));
request.getFilters().add(new Filter().withName("description").withValues("*Linux*"));
  

который работает хорошо, так как мы не беспокоимся о plarform здесь. Но вряд ли я не знаю, почему DescribeImagesResult возвращает platform as null для OS отдельно от Windows