2017-09-18 9 views
1

나는 Consul Catalog에 태그로 선언 된 서비스를 가지고 있으며 이러한 서비스는 Traefik의 올바른 구성을 통해 traefik에서 볼 수 있습니다 (작동하는 것으로 간주하고 이미 테스트했습니다).traefik 프런트 엔드 템플릿에서 태그를 사용하는 방법은 무엇입니까?

이 서비스에는 서비스 계층의 환경 변수를 통해 영사에 선언 된 태그가 있습니다. 일반적으로 일부 서비스에는 버전 태그가 있고 다른 서비스에는 단위 태그가 있습니다.

나는 그래서 내가 Host:{{getTag("BU", tags, "white")}}.{{.ServiceName}}.{{.Domain}}로 변경하여 내 단위 태그를 추가 할 수 있습니다 추측 내 서비스가 이미 템플릿 Host:{{.ServiceName}}.{{.Domain}} 기본 작업이 다음과 같은 형식

http://{version}.{unit].{service}.{domain}/ 

의 URL에 traefik에 의해 프록시 갖고 싶어. 내가 그렇게 할 때, 난 단위 태그가 정의한 서비스와 프런트 엔드 매핑 형태

"Error creating route for frontend a-frontend: error parsing rule: Empty rule" 

에 오류 메시지의 톤을 얻을.

그렇다면 Jon Snow와 같은 생각으로 어떻게 작동시킬 수 있습니까?

답변

1

내 서비스에 version 태그를 정의했다고 가정합니다. 이 version 태그는 영사관에서 볼 수 있습니다. traefik에서이 태그는 Attributes "지도"에 표시됩니다.

은 결과적으로, 나는 메소드 호출은 C와 같은 텍스트 서식을 사용하지 않는

frontEndRule = Host:{{if hasTag "version" .Attributes}}{{getTag "version" .Attributes ""}}.{{end}}{{.ServiceName}}.{{.Domain}} 

공지 사항이 코드 다음 frontEndRule에서 사용할 수 있습니다.