3.4. Kamelet Binding의 데이터 싱크에 Knative 대상 연결
Knative 대상을 데이터 싱크에 연결하려면 figure 3.3에 설명된 대로 Kamelet Binding을 생성합니다.
그림 3.3 Knative 대상을 데이터 싱크에 연결
Knative 대상은 Knative 채널 또는 Knative 브로커일 수 있습니다.
채널에서 데이터를 보낼 때 채널에는 하나의 이벤트 유형만 있습니다. Kamelet Binding에서 채널에 대한 속성 값을 지정할 필요가 없습니다.
브로커가 둘 이상의 이벤트 유형을 처리할 수 있으므로 브로커에서 데이터를 보낼 때 Kamelet Binding에서 브로커를 참조할 때 type 속성에 대한 값을 지정해야 합니다.
사전 요구 사항
Knative 채널의 이름 및 유형 또는 이벤트를 수신하려는 브로커의 이름을 알고 있습니다. 브로커의 경우 수신하려는 이벤트 유형도 알고 있습니다.
이 절차의 예제에서는 mychannel이라는 InMemoryChannel 채널 또는 mybroker라는 브로커를 사용합니다(유형 속성의 경우). 다음은 Kamelet Binding의 Knative 채널에 데이터 소스 연결 의 Coffee 소스에서 이벤트를 수신하는 데 사용되는 것과 동일한 예제 대상입니다.
Camel 통합과 필수 인스턴스 매개 변수에 추가할 Kamelet을 알고 있습니다.
이 절차의 예제 Kamelet은 Kamelet Catalog에 제공되며 테스트 및 디버깅에 유용한
log-sinkKamelet입니다.showStreams매개 변수를 지정하여 데이터의 메시지 본문을 표시합니다.
절차
Knative 채널을 데이터 싱크에 연결하려면 Kamelet Binding을 생성합니다.
선택한 편집기에서 다음 기본 구조를 사용하여 YAML 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 이름을 추가합니다. 이 예에서 바인딩이 Knative 대상을
log-sinkKamelet에 연결하므로 name은knative-to-log입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 소스의 경우 Knative 채널 또는 브로커와 필수 매개변수를 지정합니다.
이 예제에서는 Knative 채널을 소스로 지정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 Knative 브로커를 소스로 지정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 싱크의 경우 데이터 소비자 Kamelet(예:
log-sinkKamelet)을 지정하고 Kamelet에 대한 매개변수를 구성합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML 파일 (예:
knative-to-log.yaml)을 저장합니다. - OpenShift 프로젝트에 로그인합니다.
OpenShift 네임스페이스에 Kamelet Binding을 리소스로 추가합니다.
oc apply -f <kamelet binding filename>예를 들면 다음과 같습니다.
oc apply -f knative-to-log.yamlCamel K Operator는
KameletBinding리소스를 사용하여 Camel K 통합을 생성하고 실행합니다. 빌드하는 데 몇 분 정도 걸릴 수 있습니다.KameletBinding의 상태를 보려면 다음을 수행합니다.oc get kameletbindings통합 상태를 확인하려면 다음을 수행합니다.
oc get integrations통합 로그를 보려면 다음을 수행합니다.
Kamel logs <integration> -n <project>예를 들면 다음과 같습니다.
Kamel 로그 knative-to-log -n my-camel-knative출력에는 coffee 이벤트가 표시되어야 합니다. 예를 들면 다음과 같습니다.
[1] INFO [sink] (vert.x-worker-thread-1) {"id":254,"uid":"8e180ef7-8924-4fc7-ab81-d6058618cc42","blend_name":"Good-morning Star","origin":"Santander, Colombia","variety":"Kaffa","notes":"delicate, creamy, lemongrass, granola, soil","intensifier":"sharp"} [1] INFO [sink] (vert.x-worker-thread-2) {"id":8169,"uid":"3733c3a5-4ad9-43a3-9acc-d4cd43de6f3d","blend_name":"Caf? Java","origin":"Nayarit, Mexico","variety":"Red Bourbon","notes":"unbalanced, full, granola, bittersweet chocolate, nougat","intensifier":"delicate"}[1] INFO [sink] (vert.x-worker-thread-1) {"id":254,"uid":"8e180ef7-8924-4fc7-ab81-d6058618cc42","blend_name":"Good-morning Star","origin":"Santander, Colombia","variety":"Kaffa","notes":"delicate, creamy, lemongrass, granola, soil","intensifier":"sharp"} [1] INFO [sink] (vert.x-worker-thread-2) {"id":8169,"uid":"3733c3a5-4ad9-43a3-9acc-d4cd43de6f3d","blend_name":"Caf? Java","origin":"Nayarit, Mexico","variety":"Red Bourbon","notes":"unbalanced, full, granola, bittersweet chocolate, nougat","intensifier":"delicate"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실행 중인 통합을 중지하려면 연결된 Kamelet Binding 리소스를 삭제합니다.
oc delete kameletbindings/<kameletbinding-name>예를 들면 다음과 같습니다.
oc delete kameletbindings/knative-to-log
자세한 내용은