Terraform部署Azure Application Gateway报request_routing_rules不存在错误
配置错误原因及修复方案
你的配置存在名称拼写不匹配问题:
- 你在
backend_http_settings配置块中定义的资源名称为demo-http-settings(末尾带s) - 但在
request_routing_rule配置块的backend_http_settings_name参数中,填写的名称为demo-http-setting(末尾缺少s)
两者名称不一致,导致路由规则无法匹配到对应的后端HTTP设置资源,因此Azure API返回了引用资源不存在的错误,这不是资源创建顺序的问题,是配置项拼写错误导致的校验不通过。
修复方案
将request_routing_rule块中的backend_http_settings_name参数值修改为和backend_http_settings块一致的名称即可,修正后的配置片段如下:
request_routing_rule { http_listener_name = "demo-app-gateway-listener" name = "demo-rule" rule_type = "Basic" backend_address_pool_name = "demo-backend-pool" backend_http_settings_name = "demo-http-settings" }
额外优化建议
为了避免同类拼写错误,你可以将这类重复引用的名称提前定义为Local变量,所有引用位置统一调用变量即可:
locals { app_gw_backend_http_settings_name = "demo-http-settings" }
之后在backend_http_settings的name参数和request_routing_rule的backend_http_settings_name参数中都填写local.app_gw_backend_http_settings_name即可。
内容的提问来源于stack exchange,提问作者Nayden Van
相关产品推荐
相关产品推荐

