GCP部署管理器 - 如果存在则删除防火墙规则

2024-10-01 02:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图删除一些防火墙规则(默认规则),如果它们存在,请使用下面的GCP Deployment manager config,但我遇到了一些错误,如有任何帮助,将不胜感激:

default_vpc_list.jinja:

       resources:

    - name: def_firw
      action: gcp-types/compute-v1:compute.firewalls.list  
      properties:
        filter: (name = "default*")


    {% if "($(ref.def_firw.items[0]))"|length > 0 %}     
    - name: firewall-delete-internal
      action: gcp-types/compute-v1:compute.firewalls.delete
      metadata:
        dependsOn: 
        - def_firw
      properties:
        firewall: $(ref.def_firw.items[0].name)
    {% endif %}

    outputs:
    - name: fw_rules
      value: $(ref.def_firw.items[0].name) 

以下是yaml文件:

^{pr2}$

还有错误 我得到了这个代码:

The reference 'items[0].name' is not found, reason: The resource 'def_firw' exists, but the reference value does not, details: Missing property in path $['ref']['def_firw']['items']

更新: 采用了一种解决方法并设置了runtimePolicy:CREATE,仅在创建资源时触发:

- name: delete-default-private-route
  action: gcp-types/compute-v1:compute.routes.delete
  metadata:
    dependsOn: 
    - defaultRoutelist  
    runtimePolicy:
    - CREATE
  properties:
    route: $(ref.defaultRoutelist.items[0].name) 

Tags: namerefdefault规则def错误itemsaction