6.2. OpenShift의 Fuse에서 Apache Camel을 사용하여 생성된 APIcast 정책 확장 구성
OpenShift에서 Fuse를 사용하여 Apache Camel 변환을 구현한 후에는 3scale 관리 포털을 사용하여 APIcast 정책 체인에서 정책 확장으로 구성할 수 있습니다.
정책 확장을 사용하면 Camel HTTP 프록시를 사용하도록 3scale 제품을 구성할 수 있습니다. 이 서비스는 HTTP 프록시를 통해 3scale 트래픽을 전송하여 타사 프록시에서 요청 응답 수정을 수행하는 데 사용됩니다. 이 경우 타사 프록시는 OpenShift에서 Fuse를 사용하여 구현된 Apache Camel입니다. TLS를 사용하여 안전하게 Camel HTTP 프록시 서비스에 연결하도록 APIcast를 구성할 수도 있습니다.
정책 확장 코드는 OpenShift의 Fuse의 Apache Camel 애플리케이션에서 구현되며 3scale에서 수정하거나 삭제할 수 없습니다.
사전 요구 사항
동일한 OpenShift 클러스터에 배포된 OpenShift 7.10 및 3scale 2.11에 Fuse가 배포되어 있어야 합니다. 설치 세부 사항은 다음을 참조하십시오.
- OpenShift의 Fuse에서 Apache Camel 애플리케이션을 사용하여 APIcast 정책 확장을 구현해야 합니다. 보기 6.1절. “Fuse에서 Apache Camel 변환과 APIcast 통합”
- Apache Camel 애플리케이션을 OpenShift 포드에 배포하고 서비스로 노출해야 합니다. 자세한 내용은 OpenShift에서 Fuse에서 애플리케이션 생성 및 배포를 참조하십시오.
절차
- 3scale 관리 포털에서 Integration > Policies 를 선택합니다.
- POLICIES > Add policy > Camel Service 를 선택합니다.
적절한 필드에서 Camel HTTP 프록시 서비스에 연결하는 데 사용되는 OpenShift 경로를 입력합니다.
https_proxy
:http
프로토콜 및 TLS 포트를 사용하여 Camel HTTP 프록시에 연결합니다. 예를 들면 다음과 같습니다.http://camel-proxy.my-3scale-management-project.svc:8443
http_proxy
:http
프로토콜 및 포트를 사용하여 Camel HTTP 프록시에 연결합니다. 예를 들면 다음과 같습니다.http://camel-proxy.my-3scale-management-project.svc:8080
all_proxy
: 프로토콜을 지정하지 않은 경우http
프로토콜 및 포트를 사용하여 Camel HTTP 프록시에 연결합니다. 예를 들면 다음과 같습니다.http://camel-proxy.my-3scale-management-project.svc:8080
- 업데이트된 정책 구성을 스테이징 또는 프로덕션 환경으로 승격합니다. 예를 들어 Promote v를 클릭합니다. 3 ~ Staging APIcast.
3scale
curl
명령을 사용하여 APIcast 정책 구성을 테스트합니다. 예를 들면 다음과 같습니다.curl "https://testapi-3scale-apicast-staging.myuser.app.dev.3sca.net:443/?user_key=MY_USER_KEY" -k
APIcast는 Camel HTTP 프록시에 연결하기 위한 새 TLS 세션을 설정합니다.
- 메시지 콘텐츠가 변환되었는지 확인합니다. 이 예에서는 대문자로 변환되었습니다.
APIcast를 우회하고 TLS를 사용하여 Camel HTTP 프록시를 직접 테스트하려면 사용자 지정 HTTP 클라이언트를 사용해야 합니다. 예를 들어
netcat
명령을 사용할 수 있습니다.$ print "GET https://mybackend.example.com HTTP/1.1\nHost: mybackend.example.com\nAccept: */*\n\n" | ncat --no-shutdown --ssl my-camel-proxy 8443
이 예제에서는
GET
이후 전체 URL을 사용하여 HTTP 프록시 요청을 생성하고ncat --ssl
매개 변수를 사용하여 포트8443
의my-camel-proxy
호스트에 대한 TLS 연결을 지정합니다.참고프록시가
CONNECT
메서드를 사용하여 HTTP 터널링을 지원하지 않으므로curl
또는 기타 일반 HTTP 클라이언트를 사용하여 Camel HTTP 프록시를 직접 테스트할 수 없습니다.CONNECT
로 HTTP 터널링을 사용하는 경우 전송은 엔드 투 엔드 암호화로, Camel HTTP 프록시가 페이로드를 중재할 수 없습니다.
추가 리소스