能否在AWS Config查询中为resourceType用通配符获取EC2关联资源?
AWS Config查询中resourceType能否使用通配符匹配EC2相关资源?
问题场景
想要获取某一特定EC2实例的所有关联资源关系类型,希望通过通配符匹配所有EC2相关的resourceType,而非逐个手动声明资源类型。
当前可用的查询(逐个声明资源类型)
以下语句可以正常返回结果:
SELECT * WHERE resourceType IN ( 'AWS::EC2::InternetGateway', 'AWS::EC2::NetworkACL', -- 其他EC2相关资源类型 ) AND relationships.resourceId = 'foo'
尝试失败的写法
尝试使用*作为通配符,但均返回空结果:
写法1:
SELECT * WHERE resourceType IN ( 'AWS::EC2::*' ) AND relationships.resourceId = 'foo'
写法2:
SELECT * WHERE resourceType = 'AWS::EC2::*' AND relationships.resourceId = 'foo'
解决方案
AWS Config查询基于SQL语法,不支持用*作为字符串通配符,正确的做法是使用LIKE操作符结合%通配符来匹配前缀:
SELECT * WHERE resourceType LIKE 'AWS::EC2::%' AND relationships.resourceId = 'foo'
这里的%是SQL标准的通配符,代表任意长度的任意字符,能匹配所有以AWS::EC2::开头的资源类型。
内容的提问来源于stack exchange,提问作者risail
相关产品推荐
相关产品推荐

