5.4. APIcast에 사용자 정의 정책 추가

사용자 지정 정책을 생성한 경우 APIcast에 추가해야 합니다. 이 방법은 APIcast가 배포된 위치에 따라 다릅니다.

다음 APIcast 자체 관리 배포에 사용자 정의 정책을 추가할 수 있습니다.

  • OpenShift에서 3scale 온프레미스 배포의 일부로 APIcast 기본 제공 게이트웨이
  • OpenShift 및 Docker 컨테이너화된 환경의 APIcast

사용자 정의 정책을 APIcast 호스팅에 추가할 수 없습니다.

주의

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

5.4.1. APIcast 내장에 사용자 정의 정책 추가

온프레미스 배포에 사용자 정의 APIcast 정책을 추가하려면 사용자 지정 정책이 포함된 OpenShift 이미지를 빌드하고 배포에 추가해야 합니다. Red Hat 3scale은 프레임워크로 사용할 수 있는 샘플 리포지토리를 제공하여 온프레미스 배포에 사용자 지정 정책을 생성하고 추가합니다.

이 샘플 리포지토리에는 사용자 정의 정책에 대한 올바른 디렉터리 구조와 생성한 사용자 정의 정책이 포함된 새 APIcast OpenShift 이미지를 빌드하기 위한 이미지 스트림 및 BuildConfig를 생성하는 템플릿이 포함되어 있습니다.

주의

apicast-custom-policies 를 빌드할 때 빌드 프로세스에서 amp-apicast:latest 태그에 새 이미지를 "ushes"합니다. 이 이미지 스트림 태그(:latest)에 이미지 변경이 있는 경우 apicast-stagingapicast-production 태그를 둘 다 기본적으로 새 배포를 자동으로 시작하도록 구성됩니다. 프로덕션 서비스(또는 원하는 경우 준비)에 대한 중단을 방지하려면 자동 배포를 비활성화하는 것이 좋습니다(이미지가 변경될 때 새 배포를 자동으로 시작하거나 프로덕션에 대해 다른 이미지 스트림 태그(예: amp-apicast:production)를 구성하는 것이 좋습니다.

다음 단계에 따라 온-프레미스 배포에 사용자 지정 정책을 추가합니다.Follow these steps to add a custom policy to an on-premises deployment:

  1. https://github.com/3scale/apicast-example-policy [public repository with the policy example]를 포크하거나 해당 콘텐츠가 있는 개인 리포지토리를 생성합니다. OpenShift가 이미지를 빌드하기 위해 Git 리포지토리에서 사용자 지정 정책 코드를 사용할 수 있어야 합니다. 개인 Git 리포지토리를 사용하려면 OpenShift에서 시크릿을 설정해야 합니다.
  2. 리포지토리를 로컬로 복제하고 정책에 대한 구현을 추가하고 변경 사항을 Git 리포지토리로 내보냅니다.
  3. openshift.yml 템플릿을 업데이트합니다. 특히 다음 매개 변수를 변경합니다.

    1. spec.source.git.uri: https://github.com/3scale/apicast-example-policy.git 정책 BuildConfig에서 - Git 리포지토리 위치로 변경합니다.
    2. 사용자 정의 정책 BuildConfig에서 spec.source.images[0].paths.sourcePath: /opt/app-root/policies/ example 을 리포지터리의 policies 디렉터리 아래에 추가한 사용자 정의 정책 이름으로 변경합니다.
    3. 선택적으로 OpenShift 오브젝트 이름 및 이미지 태그를 업데이트합니다. 그러나 변경 사항이 일관되게(예: apicast-example-policy BuildConfig 빌드)인지 확인하고 apicast-custom-policies BuildConfig에서 소스로 사용되는 apicast-policy:example 이미지를 푸시해야 합니다. 따라서 태그는 동일해야 합니다.
  4. 명령을 실행하여 OpenShift 오브젝트를 생성합니다.

    oc new-app -f openshift.yml --param AMP_RELEASE=2.3.0
  5. 빌드가 자동으로 시작되지 않으면 다음 두 개의 명령을 실행합니다. 이를 변경한 경우 apicast-example-policy 를 고유한 BuildConfig 이름으로 교체합니다(예: apicast-<name>-policy). 두 번째 명령을 실행하기 전에 첫 번째 명령이 완료될 때까지 기다립니다.

    oc start-build apicast-example-policy
    oc start-build apicast-custom-policies

빌드 제공 APIcast 이미지에 amp-apicast:latest 이미지 스트림의 변경 사항을 추적하면 APIcast의 새 배포가 시작됩니다. apicast-staging 을 다시 시작한 후 관리 포털에서 Integration 페이지로 이동한 후 Add Policy 버튼을 클릭하여 사용자 지정 정책을 확인합니다. 이를 선택하고 구성한 후 Staging Environment에서 Update & test 를 클릭하여 스테이징 APIcast에서 사용자 지정 정책 작업을 수행합니다.