Карта URL GCP, создающая правила пути для различных внутренних сервисов - PullRequest
0 голосов
/ 22 сентября 2018

Ниже мой скрипт terraform.Я установил необходимые правила переадресации и настроил 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}"
    }

  }
}

Когда я запускаю тесты для карты URL в консоли Google, я получаю эту ошибку

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 в terraform документация иллюстрируется.Чего мне не хватает в этом случае?

update

Я включил пути /videos и /images, и ошибка, указанная выше, исчезла.Однако из журналов приложения трафик по-прежнему отправляется через базовую службу по умолчанию.

1 Ответ

0 голосов
/ 23 сентября 2018

Надеюсь, это поможет любому другому человеку.Под host_rule hosts изначально был IP-адрес.Я также изменил его на доменное имя, но все равно отправил весь трафик в бэкэнд-сервис по умолчанию.Я изменил его на *, и теперь он работает как положено.Также следует отметить, что пути, которые не относятся к бэкэнд-сервису по умолчанию, занимают несколько минут, прежде чем к ним можно будет получить доступ.

host_rule {
  hosts        = ["*"]
  path_matcher = "allpaths"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...