我将从一个几乎代表特使代理配置的配置示例开始:)
virtual_hosts:
- name: webxp-api_http
domains: ["*"]
routes:
- match: { prefix: "/static/v5.0" }
route: { cluster: bodhi_static }
- match: { prefix: "/"}
route: { cluster: bodhi-web }
clusters:
- name: bodhi_web
- name: bodhi_static
规则是,必须定义该名称clusters
列表必须定义为在route
配置部分中使用。如果您仔细观察,此配置将无法加载,因为bodhi_web
is not bodhi-web
. 我将如何在 Dhall 中对其进行编码?
一方面,我可以clusters
在 let 绑定中作为列表,这会有所帮助,但没有什么强迫我使用绑定,实际上我希望将其clusters
视为cluster:
字段的总和类型?依赖类型可以在这里帮助我吗(即我记得在纯脚本中做了类似的事情,它对依赖类型编程的能力有限)
还是我应该只创建一个构造函数/验证器函数并滥用断言来验证它?
还是我不应该?:)