【发布时间】:2018-12-11 13:12:50
【问题描述】:
我正在尝试删除一些防火墙规则(默认规则),前提是它们使用下面的 GCP 部署管理器配置存在,但我遇到了一些错误,我们将不胜感激:
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文件:
imports:
- path: jinja/default_vpc_list.jinja
name: default_vpc_list.jinja
resources:
- name: default_vpc_list
type: default_vpc_list.jinja
还有错误 r 我得到了这个代码:
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)
【问题讨论】:
-
我假设您的 defaultRouterlist 仍然是路由器上的列表操作...如果您也可以包含该部分可能会有所帮助,因为您的问题与防火墙有关,而您的最终更新与路由器有关
标签: python google-cloud-platform jinja2 google-deployment-manager