如何使用describe instance
Java SDK api 为给定的操作系统获取 AWS Ec2 映像 ID,该操作系统也是给定区域的免费套餐?我尝试使用,describe Instance api
但我不知道如何使用Filters
.
AmazonEC2ClientBuilder.defaultClient().describeImages(new DescribeImagesRequest().withFilters(Arrays.asList(
new Filter().withName("is-public").withValues("true"),
new Filter().withName("some name i dont know").withValues("some values i dont know")
)))
我正在努力获取图像 ID,它仅使用is-public
过滤器返回大量图像。我只想获得符合条件的免费层级核心操作系统实例,没有安装额外的软件,如 SQL 服务器等。我尝试了这个文档,但不太了解。
确切地说,我想在启动标记为符合条件的免费套餐的实例时获取在 AWS 控制台上提供的图像的 AMI id,如下图所示
请给我一个示例代码片段,用于获取ubuntu 18.04 LTS
上图中显示的此免费套餐合格图像的 ami-id,即ami-02d55cb47e83a99a0
。并建议我如何更改它以获取其他图像(如 Suse、debian 或 redhat 等)的 AMI id。
PS:
我想即使对于相同的操作系统,每个区域的这些 AMI id 也是不同的,我认为解决方案应该包括region
在该区域中获取图像 id 之类的东西。在解决方案中,请包括解决方案,ap-south-1
因为此屏幕截图适用于该地区。
编辑 1
我知道这与过滤name
或description
. 我可以在 中使用通配符withValue()
,就像我想搜索 AMI 一样new Filter().withName("description").withValue("*ubuntu-18.04*")
,*
通配符在哪里。但它会返回ubuntu-18.04
描述中包含的所有 AMI,包括所有已安装现有软件的付费 AMI 。如何过滤以仅获取符合免费层级条件的基本默认 ubuntu 映像。