You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Custodian如何筛选指定Azure资源组内的所有资源

Cloud Custodian 沙箱资源清理策略问题排查与实现方案

原配置报错原因

  • 基础适配问题:你的推测成立,azure.armresource 资源类型本身不支持parent过滤器,查阅该资源类型的官方可用过滤器列表,确实未收录parent过滤器,这是策略校验失败的核心原因。
  • 格式写法错误:即使parent过滤器支持该资源类型,你的配置写法也不符合规范:parent过滤器的filter参数接收单个过滤器对象,不接收过滤器列表。你将过滤规则写在了YAML列表(-开头的数组结构)中,校验逻辑会误将传入的数组识别为数值类型参数,最终抛出「is not of type 'number'」的类型校验错误。
  • 附带逻辑错误:你写的正则规则^myprefix*$存在匹配逻辑问题,正则中*是作用于紧邻前一个字符的量词,该表达式实际匹配的是myprefi后接0到多个x字符的字符串,无法实现“匹配指定前缀资源组”的预期,前缀匹配的正确正则写法应为^myprefix.*$。

筛选指定资源组内全量资源的实现方案

不需要使用parent过滤器,直接用azure.armresource原生支持的resource-group过滤器即可实现需求,这是最简洁、适配性最高的方案,参考配置如下:

policies:
  - name: weekly-playground-resource-cleanup
    resource: azure.armresource
    # 按周执行可搭配定时调度配置,或通过cron定期执行custodian run命令
    filters:
      - type: resource-group
        key: name
        op: regex
        value: '^myprefix.*' # 替换为你实际的开发者资源组命名规则
    actions:
      - type: delete

如果需要额外匹配资源组的标签、区域、创建时间等扩展属性,也可以使用traverse过滤器从资源反向关联所属资源组做多层属性校验,但该方案配置更冗余,无特殊需求优先用上述resource-group过滤器方案即可。

注意:执行清理前建议先跑一次不带delete动作的策略,用custodian report命令导出匹配到的资源列表做校验,避免误删非沙箱资源;同时要给Custodian使用的服务主体分配目标订阅的对应操作权限,避免执行删除时报权限不足。

内容的提问来源于stack exchange,提问作者chops

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:48:15