4.3.4. 3scale 사용자 지정 정책에 외부 Lua 종속성 포함
APIcast에서 아직 3scale 이미지에 없는 Lua 라이브러리를 사용할 수 있도록 사용자 지정 정책에 외부 Lua 종속성을 추가할 수 있습니다.
다음 절차에서는 응답 본문을 JSON에서 XML로 변환하는 사용자 지정 정책 예제를 사용하여 이 작업을 수행하는 방법을 보여줍니다. 예제 사용자 지정 정책에는 Lua로 작성된 xml2lua
XML 파서가 필요합니다. 전체 예제는 빌드 및 테스트를 간략하게 보여주지만 예제 절차에 따라 사용자 지정 정책을 배포할 수 없습니다. 외부 Lua 종속성이 있는 사용자 지정 정책을 배포하려면 이 절차의 단계와 다른 OpenShift Container Platform에서 사용자 지정 정책을 3scale에 추가하는 절차를 수행해야 합니다.
JSON에서 XML
사용자 지정 정책은 예시일 뿐입니다. 운용 환경에서는 사용하지 않습니다.
전제 조건
- 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.4
Roverfile 및
은 APIcast 또는 3scale Operator를 함께 사용하여 종속 라이브러리를 가져올 수 있습니다.Roverfile
.lock사용자 지정 정책을 정의하는 파일에서 Lua 종속성을 지정하는 행을 추가합니다.
JSON에서 XML
사용자 지정 정책 예제에서는 다음 행을 지정합니다.local xml2lua = require("xml2lua")
사용자 지정 정책을 빌드하는 데 사용하는 Dockerfile에서
Roverfile 및
을 복사하고Roverfile
.lockrover install
을 실행합니다.JSON에서 XML
사용자 지정 정책 예제에서는 다음 행을 Dockerfile에 추가합니다.COPY Roverfile . COPY Roverfile.lock . RUN rover install --roverfile=/opt/app-root/src/Roverfile
Dockerfile은 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.11 -t $(TARGET_IMAGE)
다음 단계
외부 Lua 종속성이 있는 사용자 지정 정책을 배포하는 나머지 단계는 다른 사용자 지정 정책을 배포하는 것과 동일합니다. 즉, 이미지를 리포지토리에 내보내고 APIcast 이미지를 방금 빌드한 이미지로 교체해야 합니다.
추가 리소스