我需要查询包含数千条记录的 Route 53 记录集。
我需要一种方法来过滤掉源中以"ip-"等字符串开头的记录,以便可以在合理的时间内下载记录。
目前,我正在使用aws
命令行与JMESPath查询结合使用:
$ date ; aws route53 list-resource-record-sets --hosted-zone-id $hosted_zone_id --query 'ResourceRecordSets[?starts_with(Name, `ip-`)==`false`].Name' | head -4 ; date
Thu May 11 19:16:53 AEST 2017
[
"foo-pilot.example.com.",
"foo-pilot.example.com.",
"bar-dev.foo-pilot.example.com.",
Thu May 11 19:17:04 AEST 2017
可以看出,这需要 11 秒,并且在应用程序中需要其中的几个查询,结果是执行时间慢得令人无法接受。
不幸的是,aws route53 list-resource-record-sets
命令(文档,另请参阅 API 文档(不像其他一些命令那样接受--filter
。
有没有办法快速获取 Route 53 记录的过滤子集?
有没有办法快速获取 Route 53 记录的过滤子集?
维护缓存...或者创建一个单独的权威系统来处理使用 Route 53 的所有事务,并改为查询该系统。
ListResourceRecordSets API 似乎仅用于扫描,而不用于查询,因此您必须对结果进行分页才能找到所需的内容。
事实上,Route 53 API似乎不适合大批量使用,因为 Route 53 API 的每个 AWS 账户限制为 5 req/s。