6장. Fuse의 정책 확장을 사용하여 3scale API Management 메시지 콘텐츠 변환
Red Hat Fuse를 사용하여 Red Hat 3scale API Management를 위한 매우 유연한 정책 확장을 생성할 수 있습니다. OpenShift의 Fuse에 정책 확장을 생성한 다음 3scale 관리 포털에서 정책 확장을 정책으로 구성할 수 있습니다. APIcast Camel 프록시 정책을 사용하면 요청 및 응답 메시지 콘텐츠(예: Apache Camel 통합 프레임워크에서 구현된 XML~JSON)에서 복잡한 변환을 수행할 수 있습니다.
또한 정적 APIcast 컨테이너 이미지를 다시 빌드하고 재배포하는 대신 Camel에서 동적으로 사용자 지정 정책 확장을 추가하거나 수정할 수 있습니다. Camel DSL(Domain Specific Language)로 작성된 Camel Enterprise Integration Pattern(EIP)을 사용하여 APIcast 정책 확장을 구현할 수 있습니다. 이를 통해 Java 또는 XML과 같은 친숙한 프로그래밍 언어를 사용하여 정책 확장을 작성할 수 있습니다. 이 항목의 예제에서는 Camel Netty4 HTTP 구성 요소를 사용하여 Java에서 HTTP 프록시를 구현합니다.
3scale API 백엔드에서 Fuse Camel 애플리케이션을 이미 사용하고 있는 경우에는 이 기능이 필요하지 않습니다. 이 경우 기존 Fuse Camel 애플리케이션을 사용하여 변환을 수행할 수 있습니다.
필수 소프트웨어 구성 요소
동일한 OpenShift 클러스터에 다음과 같은 Red Hat Integration 구성 요소가 배포되어 있어야 합니다.
- OpenShift 7.10의 Fuse.
- 3scale 온-프레미스 2.15.
- APIcast 내장(기본 스테이징 및 프로덕션) 또는 APIcast 자체 관리.
3scale이 아닌 다른 OpenShift 프로젝트에 사용자 지정 Fuse 정책을 배포할 수 있지만 필수는 아닙니다. 그러나 두 프로젝트 간 통신이 가능한지 확인해야 합니다. 자세한 내용은 OpenShift SDN을 사용하여 네트워크 정책 구성을 참조하십시오.
추가 리소스
6.1. Fuse의 Apache Camel 변환과 APIcast 통합 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift의 Fuse에서 Apache Camel 애플리케이션으로 작성된 변환과 APIcast를 통합할 수 있습니다. 정책 확장 변환을 3scale에 구성하고 배포하면 3scale 트래픽이 Camel 정책 확장을 통해 메시지 콘텐츠를 변환합니다. 이 경우 Camel은 역방향 HTTP 프록시로 작동합니다. 여기서 APIcast는 3scale 트래픽을 Camel로 전송하고 Camel은 트래픽을 API 백엔드로 보냅니다.
이 항목의 예제에서는 Camel Netty4 HTTP 구성 요소를 사용하여 HTTP 프록시를 생성합니다.
- HTTP 프록시 프로토콜을 통해 수신된 요청은 HTTP 본문이 대문자로 변환된 상태로 대상 서비스로 전달됩니다.
- 대상 서비스의 응답은 대문자로 변환한 다음 클라이언트로 반환하여 처리됩니다.
- 이 예에서는 HTTP 및 HTTPS 사용 사례에 필요한 구성을 보여줍니다.
사전 요구 사항
OpenShift 7.10 및 3scale 2.15의 Fuse가 동일한 OpenShift 클러스터에 배포되어 있어야 합니다. 설치 세부 정보는 다음을 참조하십시오.
- OpenShift 및 3scale에 Fuse를 설치하고 프로젝트를 생성하려면 클러스터 관리자 권한이 있어야 합니다. 그러나 배포 구성을 생성하거나 pod를 배포하거나 프로젝트당 액세스 권한을 편집하여 서비스를 생성할 수 있습니다.
프로세스
Camel
netty4-http구성 요소를 사용하여 HTTP 프록시를 구현하여 Java에 Apache Camel 애플리케이션을 작성합니다. 그런 다음 Camel 구성 요소를 사용하여 메시지를 변환할 수 있습니다.다음 간단한 예제에서는 서비스에서 요청 및 응답을 대문자 변환을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 간단한 예에서 Java 키 저장소 파일이
/tls/keystore.jks에 마운트된 경우 수신 포트가8443으로 설정됩니다. - 2
- Camel 프록시 정책이 3scale에서 호출되면 3scale의 백엔드 API에 대해 구성된 값에 따라
HTTP_SCHEME,HTTP_HOST,HTTP_PORT및HTTP_PATH헤더의 값이 자동으로 설정됩니다. - 3
- 이 간단한 예제에서는 메시지 콘텐츠를 대문자로 변환합니다. Camel Enterprise Integration Patterns를 사용하여 요청 및 응답 메시지 콘텐츠(예: XML에서 JSON으로)에 대해 더 복잡한 변환을 수행할 수 있습니다.
- OpenShift에 Camel 애플리케이션을 배포하고 서비스로 노출합니다. 자세한 내용은 OpenShift에서 Fuse에서 애플리케이션 생성 및 배포를 참조하십시오.