如何使用AWS SDK筛选创建时间早于指定日期的EC2镜像?
解决EC2镜像按创建日期过滤返回空的问题
你的问题出在creation-date过滤器的写法上——EC2的DescribeImages接口不支持用通配符*来匹配日期前缀,必须使用比较运算符+完整ISO 8601时间戳的格式来筛选早于指定日期的镜像。
正确的实现代码
将过滤器的值改为带<运算符的完整时间戳,比如要筛选2021年9月29日0点前创建的镜像,代码如下:
DescribeImagesResponse describeImagesResponse = _ec2Client.DescribeImages(new DescribeImagesRequest { Filters = new List<Filter> { new Filter("creation-date", new List<string> { "<2021-09-29T00:00:00Z" }) }, Owners = new List<string> { "self" } }); return describeImagesResponse.Images;
关键说明
- EC2的
creation-date过滤器支持<、>、<=、>=四种比较运算符,后跟符合YYYY-MM-DDThh:mm:ss.sssZ格式的时间戳。 - 如果只需要按日期筛选,也可以简化为
"<2021-09-29",AWS会自动将其解析为该日期的00:00:00Z之前的时间范围,但使用完整时间戳能避免时区或日期解析的歧义。
内容的提问来源于stack exchange,提问作者Luis Angel Urena Lopez
相关产品推荐
相关产品推荐

