3장. Knative CLI 플러그인

Knative(kn) CLI는 플러그인 사용을 지원하므로 사용자 정의 명령 및 코어 배포에 포함되지 않은 기타 공유 명령을 추가하여 kn 설치 기능을 확장할 수 있습니다. Knative(kn) CLI 플러그인은 기본 kn 기능과 동일한 방식으로 사용됩니다.

현재 Red Hat은 kn-source-kafka 플러그인과 kn-event 플러그인을 지원합니다.

중요

kn-event 플러그인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

3.1. kn-event 플러그인을 사용하여 이벤트 빌드

kn event build 명령의 빌더와 같은 인터페이스를 사용하여 이벤트를 빌드할 수 있습니다. 그런 다음 나중에 해당 이벤트를 보내거나 다른 컨텍스트에서 사용할 수 있습니다.

사전 요구 사항

  • Knative(kn) CLI가 설치되어 있습니다.

프로세스

  • 이벤트를 빌드합니다.

    $ kn event build --field <field-name>=<value> --type <type-name> --id <id> --output <format>

    다음과 같습니다.

    • --field 플래그는 이벤트에 필드-값 쌍으로 데이터를 추가합니다. 여러 번 사용할 수 있습니다.
    • --type 플래그를 사용하면 이벤트 유형을 지정하는 문자열을 지정할 수 있습니다.
    • --id 플래그는 이벤트의 ID를 지정합니다.
    • json 또는 yaml 인수를 --output 플래그와 함께 사용하여 이벤트의 출력 형식을 변경할 수 있습니다.

      이러한 플래그는 모두 선택 사항입니다.

      간단한 이벤트 만들기

      $ kn event build -o yaml

      YAML 형식의 결과 이벤트

      data: {}
      datacontenttype: application/json
      id: 81a402a2-9c29-4c27-b8ed-246a253c9e58
      source: kn-event/v0.4.0
      specversion: "1.0"
      time: "2021-10-15T10:42:57.713226203Z"
      type: dev.knative.cli.plugin.event.generic

      샘플 트랜잭션 이벤트 빌드

      $ kn event build \
          --field operation.type=local-wire-transfer \
          --field operation.amount=2345.40 \
          --field operation.from=87656231 \
          --field operation.to=2344121 \
          --field automated=true \
          --field signature='FGzCPLvYWdEgsdpb3qXkaVp7Da0=' \
          --type org.example.bank.bar \
          --id $(head -c 10 < /dev/urandom | base64 -w 0) \
          --output json

      JSON 형식의 결과 이벤트

      {
        "specversion": "1.0",
        "id": "RjtL8UH66X+UJg==",
        "source": "kn-event/v0.4.0",
        "type": "org.example.bank.bar",
        "datacontenttype": "application/json",
        "time": "2021-10-15T10:43:23.113187943Z",
        "data": {
          "automated": true,
          "operation": {
            "amount": "2345.40",
            "from": 87656231,
            "to": 2344121,
            "type": "local-wire-transfer"
          },
          "signature": "FGzCPLvYWdEgsdpb3qXkaVp7Da0="
        }
      }