3장. 이벤트 싱크
3.1. 이벤트 싱크
이벤트 소스를 생성할 때 소스에서 이벤트가 전송되는 이벤트 싱크를 지정할 수 있습니다. 이벤트 싱크는 다른 리소스에서 들어오는 이벤트를 수신할 수 있는 주소 지정 가능 리소스 또는 호출 가능 리소스입니다. Knative 서비스, 채널 및 브로커는 모두 이벤트 싱크의 예입니다. 특정 Apache Kafka 싱크 유형도 사용할 수 있습니다.
주소 지정 가능 오브젝트는 HTTP를 통해 전달되는 이벤트를 status.address.url
필드에 정의된 주소로 수신하고 승인합니다. 특수한 경우 코어 Kubernetes 서비스
오브젝트도 주소 지정 가능한 인터페이스를 수행합니다.
호출 가능 오브젝트는 HTTP를 통해 전달되는 이벤트를 수신하고 이벤트를 변환하여 HTTP 응답에서 0
또는 1
개의 새 이벤트를 반환할 수 있습니다. 반환된 이벤트는 외부 이벤트 소스의 이벤트를 처리하는 것과 동일한 방식으로 추가로 처리할 수 있습니다.
3.1.1. Knative CLI sink 플래그
Knative(kn
) CLI를 사용하여 이벤트 소스를 생성할 때 --sink
플래그를 사용하여 해당 리소스에서 이벤트가 전송되는 싱크를 지정할 수 있습니다. 싱크는 다른 리소스에서 들어오는 이벤트를 수신할 수 있는 주소 지정 가능 또는 호출 가능 리소스일 수 있습니다.
다음 예제에서는 싱크로 서비스 http://event-display.svc.cluster.local
를 사용하는 싱크 바인딩을 생성합니다.
sink 플래그를 사용하는 명령의 예
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \ 1
--ce-override "sink=bound"
- 1
http://event-display.svc.cluster.local
의svc
는 싱크가 Knative 서비스인지 확인합니다. 기타 기본 싱크 접두사에는channel
, 및broker
가 포함됩니다.
kn
을 사용자 지정하여 Knative(kn
) CLI 명령에 --sink
플래그와 함께 사용할 수 있는 CR을 구성할 수 있습니다.