Google Cloud中ListAssets与SearchAllResources的区别及CloudFunction查询问题
两个接口的核心定位区别
ListAssets是全量资产快照拉取接口,直接读取Google Cloud官方的资产库数据,只要资源存在、权限足够就会返回,数据是强一致的,没有延迟。SearchAllResources是面向搜索场景的接口,依赖后台异步构建的索引库提供查询能力,只有完成索引构建的资源才会被返回,索引同步最长可能有24小时的延迟,部分情况还会因为索引故障漏返回资源。
云函数无法被搜索到的常见原因
- 索引还没同步完成:新建、更新配置或者迁移过区域的云函数,后台索引构建会延后,没进索引的资源自然搜不到。
- 权限校验规则不一样:
SearchAllResources除了要求有资产搜索的全局权限外,还会校验你对每个云函数的读取权限,没有单个云函数读权限的资源会被直接过滤掉。ListAssets只校验全局资产清单的读取权限,不会做单资源的二次校验。 - 隐式的区域过滤:
SearchAllResources默认不会返回部分特殊合规区域的资源,可以加全区域查询的参数显式拉取所有区域的资源试试。
使用建议
如果是要做全量资产盘点、合规检查这类要求资源不能遗漏的场景,直接用ListAssets接口就行,它的返回结果是官方权威的资产快照,不会有漏的。如果必须用搜索接口,先等24小时再重试,还是没结果的话就提工单让Google Cloud支持排查索引同步的问题。
内容的提问来源于stack exchange,提问作者stanmarsh
相关产品推荐
相关产品推荐

