4.3.4. 3scale 사용자 지정 정책에 외부 Lua 종속 항목 포함
APIcast가 3scale 이미지에 아직 없는 Lua 라이브러리를 사용할 수 있도록 사용자 지정 정책에 외부 Lua 종속성을 추가할 수 있습니다.
다음 절차에서는 응답 본문을 JSON에서 XML로 변환하는 사용자 지정 정책 예를 사용하여 이 작업을 수행하는 방법을 보여줍니다. 예제 사용자 지정 정책에는 Lua로 작성된 xml2lua XML 파서가 필요합니다. 전체 예제에서는 빌드 및 테스트에 대한 단축을 보여주지만 예제 프로시저만 따라 사용자 지정 정책을 배포할 수 없습니다. 외부 Lua 종속성이 있는 사용자 정의 정책을 배포하려면 이 절차의 단계를 수행하고 다른 OpenShift Container Platform에서 사용자 정의 정책을 3scale에 추가하는 절차를 수행해야 합니다.
XML 사용자 지정 정책에 대한 JSON 은 예제일 뿐입니다. 프로덕션 환경에서 사용하기 위한 것이 아닙니다.
전제 조건
- 3scale 사용자 정의 정책
- 외부 Lua 라이브러리 액세스
절차
사용자 지정 정책이 포함된 디렉터리에서 외부 Lua 라이브러리를 식별하는 파일을 추가합니다.
파일 이름은
Roverfile이어야 합니다.JSON에서 XML사용자 지정 정책 예제에서Roverfile에는 다음과 같은 내용이 있습니다.luarocks { group 'production' { module { 'xml2lua' }, } }lua-rover는 LuaRocks에 대한 래퍼입니다.lua-rover는 종속성에 대한 전송 잠금을 제공합니다. LuaRocks는 Lua 모듈에 대한 패키지 관리자입니다.사용자 지정 정책이 포함된 디렉터리에
lua-rover잠금 파일을 추가합니다.파일 이름은
Roverfile.lock여야 합니다.JSON에서 XML사용자 지정 정책 예제에서Roverfile.lock에는 다음과 같은 내용이 있습니다.xml2lua 1.5-2||productionbash-4.4Roverfile및Roverfile.lock을 함께 사용하면 APIcast 또는 3scale Operator가 종속 라이브러리를 가져올 수 있습니다.사용자 지정 정책을 정의하는 파일에서 Lua 종속성을 지정하는 행을 추가합니다.
JSON에서 XML사용자 지정 정책 예제에서는 이 행을 지정합니다.local xml2lua = require("xml2lua")사용자 지정 정책을 빌드하는 데 사용하는 Dockerfile에서
Roverfile및Roverfile.lock를 복사하고rover install을 실행합니다.JSON에서 XML사용자 지정 정책 예제에서는 이러한 행을 Dockerfile에 추가합니다.COPY Roverfile . COPY Roverfile.lock . RUN rover install --roverfile=/opt/app-root/src/RoverfileDockerfile은 APIcast 또는 3scale Operator를 사용하여 정책을 빌드할 수 있습니다.
사용자 지정 정책의
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.13 -t $(TARGET_IMAGE)
다음 단계
외부 Lua 종속성이 있는 사용자 지정 정책을 배포하는 나머지 단계는 다른 사용자 지정 정책을 배포하는 것과 동일합니다. 즉 이미지를 리포지터리로 푸시하고 APIcast 이미지를 방금 빌드한 이미지로 교체해야 합니다.
추가 리소스