4.4. 사용자 정의 3scale API Management APIcast 정책


APIcast 동작을 수정하려면 사용자 지정 정책을 구성합니다. 먼저 사용자 지정 정책을 포함하여 APIcast 정책을 구성하는 정책 체인을 정의한 다음 APIcast에 정책 체인을 추가합니다.

참고

Red Hat 3scale은 사용자 지정 정책을 추가하는 방법을 제공하지만 사용자 정의 정책은 지원하지 않습니다.

APIcast에 대한 사용자 정의 정책은 3scale 배포 구성에 따라 다릅니다.

  • 이러한 APIcast 자체 관리 배포(OpenShift의 APIcast, 설치한 컨테이너화된 환경에 APIcast)에 사용자 지정 정책을 추가합니다.
  • APIcast 호스팅에 사용자 지정 정책을 추가할 수 없습니다.
주의

프로덕션 게이트웨이에 정책을 직접 변경하지 마십시오. 항상 변경 사항을 테스트합니다.

4.4.1. 3scale API Management APIcast 배포를 위한 사용자 정의 정책 정보

사용자 지정 APIcast 정책을 완전히 생성하거나 표준 정책을 수정할 수 있습니다.

사용자 지정 정책을 생성하려면 다음을 이해해야 합니다.

  • 정책은 Lua에서 작성되었습니다.
  • 정책을 준수하고 적절한 파일 디렉터리에 배치해야 합니다.
  • 정책 동작은 정책 체인에 배치되는 방법에 의해 영향을 받습니다.
  • 사용자 지정 정책을 추가하는 인터페이스는 완전히 지원되지만 사용자 지정 정책 자체는 지원되지 않습니다.

3scale API Management 인스턴스에 사용자 지정 정책을 추가하려면 3scale API Management Operator 를 사용하여 사용자 정의 정책 삽입을 참조하십시오.

4.4.2. 다른 OpenShift Container Platform에서 3scale API Management에 사용자 정의 정책 추가

통합 OpenShift Container Platform 레지스트리에서 사용자 지정 정책이 포함된 APIcast 이미지를 가져와서 OpenShift Container Platform (OCP)의 APIcast에 사용자 정의 정책을 추가할 수 있습니다.

프로세스

  1. 3scale API Management Operator를 사용하여 사용자 지정 정책 삽입
  2. 기본 OpenShift 클러스터에 APIcast 게이트웨이를 배포하지 않는 경우 기본 OpenShift 클러스터의 내부 레지스트리에 대한 액세스를 설정합니다.
  3. 3scale 2.15 APIcast OpenShift 템플릿을 다운로드합니다. https://raw.githubusercontent.com/3scale/3scale-amp-openshift-templates/2.15.0.GA/apicast-gateway/apicast.yml
  4. 템플릿을 수정하려면 기본 이미지 디렉터리를 내부 레지스트리의 전체 이미지 이름으로 교체합니다.

    image: <registry>/<project>/amp-apicast:latest
  5. OpenShift 템플릿을 사용하여 APIcast를 배포하여 사용자 지정 이미지를 지정합니다.

    $ oc new-app -f customizedApicast.yml
참고

APIcast에 사용자 지정 정책이 추가되고 새 이미지가 빌드되면 APIcast가 이미지와 함께 배포될 때 관리 포털에서 사용 가능한 대로 해당 정책이 자동으로 표시됩니다. 기존 서비스는 사용 가능한 정책 목록에서 이 새 정책을 볼 수 있으므로 모든 정책 체인에서 사용할 수 있습니다.

사용자 지정 정책이 이미지에서 제거되고 APIcast가 다시 시작되면 목록에서 더 이상 정책을 사용할 수 없으므로 더 이상 정책 체인에 추가할 수 없습니다.

4.4.3. 3scale API Management 사용자 정의 정책에 외부 Lua 종속 항목 포함

APIcast가 3scale 이미지에 없는 Lua 라이브러리를 사용할 수 있도록 외부 Lua 종속성을 사용자 지정 정책에 추가할 수 있습니다.

여기서는 JSON에서 XML로 응답 본문을 변환하는 사용자 지정 정책의 예제 를 사용하여 이 작업을 수행하는 방법을 보여줍니다. 예제 사용자 지정 정책에는 Lua로 작성된 xml2lua XML 구문 분석기가 필요합니다. 전체 예제에서는 빌드 및 테스트에 대한 짧은 컷을 보여 주지만 예제 절차에 따라 사용자 지정 정책을 배포할 수 없습니다. 외부 Lua 종속성이 있는 사용자 정의 정책을 배포하려면 이 절차의 단계를 수행하고 다른 OpenShift Container Platform에서 3scale API Management에 사용자 지정 정책을 추가하는 절차를 수행해야 합니다.

참고

JSON to XML 사용자 지정 정책은 예제일 뿐입니다. 프로덕션 환경에서 사용할 수 없습니다.

전제 조건

  • 3scale 사용자 지정 정책.
  • 외부 Lua 라이브러리에 액세스할 수 있습니다.

프로세스

  1. 사용자 지정 정책이 포함된 디렉터리에 외부 Lua 라이브러리를 식별하는 파일을 추가합니다.

    파일 이름은 Roverfile 이어야 합니다. JSON to XML 사용자 지정 정책 예에서 Roverfile 에는 다음 내용이 있습니다.

    luarocks {
    	group 'production' {
    		module { 'xml2lua' },
    	}
    }

    Lua-rover 는 LuaRocks 관련 래퍼입니다. Lua-rover 는 종속성에 대한 전송 잠금을 제공합니다. LuaRocks는 Lua 모듈용 패키지 관리자입니다.

  2. 사용자 지정 정책이 포함된 디렉터리에 lua-rover 잠금 파일을 추가합니다.

    파일 이름은 Roverfile.lock 이어야 합니다. JSON to XML 사용자 지정 정책 예에서 Roverfile.lock 에는 다음 내용이 있습니다.

    xml2lua 1.5-2||productionbash-4.4

    RoverfileRoverfile.lock 을 함께 사용하면 APIcast 또는 3scale Operator가 종속 라이브러리를 가져올 수 있습니다.

  3. 사용자 지정 정책을 정의하는 파일에서 Lua 종속성을 지정하는 행을 추가합니다. JSON to XML 사용자 지정 정책 예제에서는 다음 행을 지정합니다.

    local xml2lua = require("xml2lua")
  4. 사용자 지정 정책을 빌드하는 데 사용하는 Dockerfile에서 RoverfileRoverfile.lock 을 복사하고 rover install 을 실행합니다. JSON to XML 사용자 지정 정책 예제에서는 Dockerfile에 다음 행을 추가합니다.

    COPY Roverfile .
    COPY Roverfile.lock .
    
    RUN rover install --roverfile=/opt/app-root/src/Roverfile

    Dockerfile은 APIcast 또는 3scale Operator를 사용하여 정책을 빌드할 수 있습니다.

  5. 사용자 지정 정책의 Makefile 에서 사용자 지정 정책에 대해 원하는 대로 빌드 대상을 지정합니다.

    예를 들어 빌드 대상은 다음과 같을 수 있습니다.

    TARGET_IMAGE="apicast/json_to_xml:latest"
    # IP="http://localhost:8080"
    
    build:
    	docker build . --build-arg IMAGE=registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.15 -t $(TARGET_IMAGE)

다음 단계

외부 Lua 종속성이 있는 사용자 지정 정책을 배포하기 위한 나머지 단계는 다른 사용자 지정 정책을 배포하는 것과 동일합니다. 즉, 이미지를 리포지터리로 푸시하고 APIcast 이미지를 방금 빌드한 이미지로 교체해야 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.