GCP URL映射为不同的后端服务创建路径规则 [英] GCP url map creating path rules for different backend services

查看:20
本文介绍了GCP URL映射为不同的后端服务创建路径规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的地形文字。我已经设置了必要的转发规则和目标http代理。此外,还存在后端服务。我可以访问/images/*下的所有路径,但不能访问/videos/*下的路径。从脚本中,dafault后端服务是backend-lb-prod,这是路径/images/*所在的后端服务。我将默认后端服务切换到backend-lb,现在可以访问/videos/*,但不能访问/images/*

resource "google_compute_url_map" "url-map-be" {
  name            = "${var.platform_name}-url-map-be-prod"
  default_service = "${google_compute_backend_service.backend-lb-prod.self_link}"

  host_rule {
    hosts        = ["${var.backend_address_name}"]
    path_matcher = "allpaths"
  }

  path_matcher {
    name            = "allpaths"
    default_service = "${google_compute_backend_service.backend-lb-prod.self_link}"

    path_rule {
      paths   = ["/images"]
      service = "${google_compute_backend_service.backend-lb-prod.self_link}"
    }  

    path_rule {
      paths   = ["/images/*"]
      service = "${google_compute_backend_service.backend-lb-prod.self_link}"
    } 

    path_rule {
      paths   = ["/videos"]
      service = "${google_compute_backend_service.backend-lb.self_link}"
    }  

    path_rule {
      paths   = ["/videos/*"]
      service = "${google_compute_backend_service.backend-lb.self_link}"
    }

  }
}

当我在Google控制台上运行URL地图测试时,我收到以下错误

Invalid value for field 'resource': ''. Test failure: Expect URL ‘*.*.*.*/videos/go' 
to map to service ‘***93-BACKEND_SERVICE-**-backend-lb', but actually mapped to 
'***93-BACKEND_SERVICE-**-backend-lb-prod’.

这就是google_compute_url_map在地形documentation中的图示。在这种情况下,我错过了什么。

更新

我已经包括了/videos/images路径,上面的错误已经消失了。但是,从应用程序的日志中,流量仍通过默认后端服务发送。

推荐答案

希望这对任何其他人都有帮助。在host_rule下,hosts最初是一个IP地址。我也将其更改为域名,但它仍然将所有流量发送到默认的后端服务。我将其更改为*,现在它可以正常工作。还需要注意的是,不属于默认后端服务的路径需要几分钟才能访问。

host_rule {
  hosts        = ["*"]
  path_matcher = "allpaths"
}

这篇关于GCP URL映射为不同的后端服务创建路径规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆