2.7. IntegrationSource 시작하기
OpenShift Serverless IntegrationSource 기능은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
IntegrationSource API는 Apache Camel 프로젝트에서 선택한 Kamelets를 활용하여 외부 시스템에 연결할 수 있는 Knative Eventing CR(사용자 정의 리소스)입니다.
Kamelets는 소스 또는 싱크로 작동할 수 있는 재사용 가능한 커넥터로 작동합니다. IntegrationSource API를 사용하면 외부 시스템의 데이터를 사용하고 데이터를 CloudEvents로 Knative Eventing으로 전달할 수 있습니다.
OpenShift Serverless에서는 다음 Kamelet 소스를 지원합니다.
- AWS DynamoDB Streams
- AWS S3
- AWS SQS
- 타이머 소스
2.7.1. AWS 인증 정보 생성 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services) 리소스에 연결하려면 IntegrationSource 에 유효한 AWS 인증 정보가 포함된 Kubernetes 시크릿이 필요합니다. IntegrationSource 리소스와 동일한 네임스페이스에 이 보안을 생성해야 하며 AWS 액세스 키와 시크릿 키를 모두 포함해야 합니다.
사전 요구 사항
- Amazon Cryostat Streams 서비스에 액세스할 수 있는 액세스 키 ID 및 시크릿 액세스 키가 있는 AWS 계정이 있습니다.
- OpenShift CLI(oc)가 설치되어 클러스터에 로그인되어 있어야 합니다.
-
IntegrationSource리소스를 생성할 네임스페이스를 식별했습니다.
프로세스
다음 명령을 실행하여 시크릿을 생성합니다.
oc -n <namespace> create secret generic my-secret \ --from-literal=aws.accessKey=<accessKey> \ --from-literal=aws.secretKey=<secretKey>
$ oc -n <namespace> create secret generic my-secret \ --from-literal=aws.accessKey=<accessKey> \ --from-literal=aws.secretKey=<secretKey>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
namespace>를IntegrationSource리소스가 있는 네임스페이스로 바꾸고 <accessKey> 및 <secretKey>를 해당 AWS 인증 정보로 대체합니다.
2.7.2. IntegrationSource를 사용한 AWS Cryostat Streams 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services) Cryostat Streams Kamelet을 사용하면 Amazon Cryostat 테이블의 변경 사항을 소비하여 Knative Eventing으로 전달할 수 있습니다. 이러한 통합을 통해 데이터베이스 변경 사항에 보다 쉽게 대응하고 서버리스 애플리케이션 내에서 이벤트를 전파할 수 있습니다.
IntegrationSource for Cryostat Streams를 구성하려면 유효한 AWS 자격 증명을 제공하고, Cryostat 테이블 및 해당 리전을 지정하고, Knative 브로커와 같은 이벤트 싱크를 정의해야 합니다.
2.7.2.1. IntegrationSource for Cryostat Streams 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Cryostat Streams에서 이벤트를 수신하는 IntegrationSource API를 생성하려면 YAML 매니페스트를 적용합니다.
사전 요구 사항
- Amazon Cryostat Streams에 액세스할 수 있는 유효한 AWS(Amazon Web Services) 인증 정보가 포함된 Kubernetes 시크릿을 생성했습니다.
- OpenShift CLI(oc)가 설치되어 대상 클러스터에 로그인되어 있어야 합니다.
-
IntegrationSource리소스가 생성될 네임스페이스를 알고 있습니다. - Knative 브로커 또는 다른 유효한 이벤트 싱크는 이벤트를 수신하기 위해 동일한 네임스페이스에 이미 존재합니다.
프로세스
다음 YAML 매니페스트를
integration-source-aws-ddb.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 매니페스트를 적용합니다.
oc apply -f integration-source-aws-ddb.yaml
$ oc apply -f integration-source-aws-ddb.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 매니페스트는
eu-north-1리전의my-table에서 변경 이벤트를 읽을 수 있도록IntegrationSourceAPI를 구성합니다.auth.secret.ref.name필드는 AWS 인증 정보를 저장하는 Kubernetes Secret(my-secret)을 참조합니다. 이벤트는 sink 섹션에 정의된기본Knative 브로커로 전송됩니다.
2.7.3. IntegrationSource를 사용한 AWS S3 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet을 사용하면 파일 업로드 또는 Amazon S3 버킷의 업데이트와 같은 오브젝트 스토리지 이벤트를 사용하여 Knative Eventing으로 전달할 수 있습니다. 이러한 통합을 통해 OpenShift Serverless 애플리케이션은 폴링 없이도 새 파일 또는 데이터 업데이트와 같은 오브젝트 스토리지의 변경 사항에 대응할 수 있습니다.
S3에 대한 IntegrationSource 를 구성하려면 유효한 AWS 자격 증명을 제공하고 Amazon S3 버킷 Amazon Resource Name(ARN) 및 해당 리전을 지정하고 Knative 브로커와 같은 이벤트 싱크를 정의해야 합니다.
2.7.3.1. AWS S3용 IntegrationSource 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon S3 버킷에서 데이터를 수신하는 IntegrationSource API를 생성하려면 YAML 매니페스트를 적용합니다.
사전 요구 사항
-
AWS 인증 정보를 생성하여
IntegrationSource리소스와 동일한 네임스페이스에 있는 Kubernetes 시크릿에 저장했습니다. - OpenShift CLI(oc)가 설치되어 대상 클러스터에 로그인되어 있어야 합니다.
-
IntegrationSource리소스가 생성될 네임스페이스를 알고 있습니다. - S3 이벤트를 수신하기 위해 Knative 브로커 또는 다른 이벤트 싱크가 있습니다.
프로세스
다음 YAML 매니페스트를
integration-source-aws-s3.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 매니페스트를 적용합니다.
oc apply -f integration-source-aws-s3.yaml
$ oc apply -f integration-source-aws-s3.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 매니페스트는
eu-north-1 리전의 Amazon Resource Name (ARN)arn:aws:s3:::my-bucket에서 식별된 Amazon S3 버킷을 모니터링하도록IntegrationSourceAPI를 구성합니다.auth.secret.ref.name필드는 AWS 인증 정보를 저장하는 Kubernetes Secret(my-secret)을 참조합니다. 이벤트는 sink 섹션에 정의된기본Knative 브로커로 전달됩니다.
2.7.4. AWS SQS with IntegrationSource 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services) SQS(Simple Queue Service) Kamelet을 사용하면 Amazon SQS 대기열의 메시지를 사용하여 Knative Eventing으로 전달할 수 있습니다. 이러한 통합을 통해 OpenShift Serverless 애플리케이션은 대기 중인 메시지에 대응하여 생산자와 소비자를 분리하는 이벤트 중심 아키텍처를 지원합니다.
SQS에 대한 IntegrationSource 를 구성하려면 유효한 AWS 인증 정보를 제공하고, Amazon SQS 대기열 Amazon Resource Name(ARN) 및 해당 리전을 지정하고, Knative 브로커와 같은 이벤트 싱크를 정의해야 합니다. ARM(Amazon Resource Name)은 모든 AWS 계정 및 리전에서 SQS 대기열을 고유하게 식별합니다.
2.7.4.1. SQS용 IntegrationSource 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon SQS 대기열에서 메시지를 수신하는 IntegrationSource API를 생성하려면 YAML 매니페스트를 적용합니다.
사전 요구 사항
-
AWS 인증 정보를 생성하여
IntegrationSource리소스와 동일한 네임스페이스에 있는 Kubernetes 시크릿에 저장했습니다. - OpenShift CLI(oc)가 설치되어 대상 클러스터에 로그인되어 있어야 합니다.
-
IntegrationSource리소스가 생성될 네임스페이스를 알고 있습니다. - SQS 이벤트를 수신하기 위해 Knative 브로커 또는 다른 이벤트 싱크가 있습니다.
프로세스
다음 YAML 매니페스트를
integration-source-aws-sqs.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고ARN이 SQS 큐 지역, 계정 번호 및 큐 이름을 정확하게 반영하는지 확인합니다. 예:
arn:aws:sqs:<region>:<account-id>:<queue-name>다음 명령을 실행하여 매니페스트를 적용합니다.
oc apply -f integration-source-aws-sqs.yaml
$ oc apply -f integration-source-aws-sqs.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 매니페스트는
eu-north-1리전의 ARN으로 식별되는 Amazon SQS 큐를 모니터링하도록IntegrationSourceAPI를 구성합니다.auth.secret.ref.name필드는 AWS 인증 정보를 저장하는 Kubernetes Secret(my-secret)을 참조합니다. 이벤트는 sink 섹션에 정의된기본Knative 브로커로 전달됩니다.
2.7.5. IntegrationSource를 사용한 타이머 소스 링크 복사링크가 클립보드에 복사되었습니다!
Timer Kamelet은 사용자 정의 페이로드를 사용하여 정기적인 메시지를 생성하고 Knative Eventing으로 전달합니다. 이는 외부 시스템에 의존하지 않고 이벤트 흐름을 테스트하거나 예약된 이벤트를 생성하는 데 유용합니다.
Timer Kamelet에 대한 IntegrationSource 를 구성하려면 메시지가 생성되는 간격과 메시지 콘텐츠를 지정한 다음 Knative 브로커와 같은 이벤트 싱크를 정의합니다.
2.7.5.1. 타이머를 위한 IntegrationSource 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 페이로드를 사용하여 주기적으로 메시지를 생성하는 IntegrationSource API를 생성하려면 YAML 매니페스트를 적용합니다.
사전 요구 사항
- OpenShift CLI(oc)가 설치되어 대상 클러스터에 로그인되어 있어야 합니다.
-
IntegrationSource리소스가 생성될 네임스페이스를 알고 있습니다. - SQS 이벤트를 수신하기 위해 Knative 브로커 또는 다른 이벤트 싱크가 있습니다.
프로세스
다음 YAML 매니페스트를
integration-source-timer.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 매니페스트를 적용합니다.
oc apply -f integration-source-timer.yaml
$ oc apply -f integration-source-timer.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 매니페스트는 2000 밀리초 (2 초)마다
"Hello from Timer source"메시지를 내보내도록IntegrationSource를 구성합니다. 생성된 메시지는 sink 섹션에 정의된기본Knative 브로커로 전송됩니다.