Ниже мой скрипт 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
, и ошибка, указанная выше, исчезла.Однако из журналов приложения трафик по-прежнему отправляется через базовую службу по умолчанию.