#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