5.17. 제품 내보내기


소스 3scale 인스턴스와의 연결이 없는 3scale 인스턴스로 해당 제품을 가져올 수 있도록 3scale 제품 정의를 .yaml 형식으로 내보낼 수 있습니다. 3scale 제품을 설정해야 해당 제품을 내보낼 수 있습니다. API 호출을 테스트하기 위해 신제품 생성을 참조하십시오.

3scale 인스턴스에 네트워크 연결이 있는 경우 3scale 인스턴스 모두에서 동일한 3scale 제품을 사용하려면 toolbox 3scale copy 명령을 사용합니다.

설명

3scale 제품을 내보내면 toolbox는 제품 및 백엔드 CRD(사용자 정의 리소스 정의)를 준수하는 .yaml 형식으로 제품 정의를 직렬화합니다. output. yaml에는 제품의 기본 정보와 함께 다음이 포함됩니다.

  • 제품에 연결된 백엔드입니다.
  • 연결된 백엔드에 대한 지표, 메서드 및 매핑 규칙.
  • 애플리케이션 계획에 정의된 제한 및 가격 결정 규칙.
  • 제한 및 가격 규칙에 따라 참조되는 지표 및 방법.

제품 내보내기는 읽기 전용 작업입니다. 즉, 제품을 반복적으로 내보내는 것이 안전합니다. toolbox는 내보낼 제품을 변경하지 않습니다. 원하는 경우 .yaml 출력을 다른 3scale 인스턴스로 가져오기 전에 수정할 수 있습니다.

3scale 제품 내보내기는 다음과 같은 상황에 적합합니다.

  • 소스와 대상 3scale 인스턴스 간에는 연결이 없습니다. 예를 들어 2개 이상의 3scale 인스턴스에서 동일한 제품을 사용하려는 경우 toolbox 3scale copy 명령을 실행하지 않는 심각한 네트워크 제한이 있을 수 있습니다.
  • Git 또는 일부 기타 소스 제어 시스템을 사용하여 3scale 제품 정의를 .yaml 형식으로 유지 관리하려고 합니다.

3scale toolbox 내보내기가져오기 명령은 제품 정의를 백업하고 복원하는 데에도 유용할 수 있습니다.

형식

export 명령을 실행하려면 이 형식을 사용하십시오.

3scale product export [-f output-file] <remote> <product>
Copy to Clipboard Toggle word wrap

export 명령은 출력을 stdout 또는 파일에 전송할 수 있습니다. 기본값은 stdout 입니다. 출력을 파일로 보내려면. yaml 파일 이름으로 -f 또는 --file 옵션을 지정합니다.

<remote> 를 제품을 내보낼 3scale 인스턴스와 연결된 3scale 공급자 계정 별칭 또는 URL로 바꿉니다. 이를 지정하는 방법에 대한 자세한 내용은 원격 액세스 자격 증명 관리를 참조하십시오.

<product> 를 시스템 이름 또는 내보낼 제품의 3scale ID로 바꿉니다. 이 제품은 지정한 3scale 공급자 계정과 연결되어야 합니다. 제품의 시스템 이름은 제품 개요 페이지의 3scale GUI에서 확인할 수 있습니다. 제품의 3scale ID를 얻으려면 toolbox 3scale services show 명령을 실행합니다.

예제

다음 명령은 my-3scale-1 공급자 계정과 연결된 3scale 인스턴스에서 petstore 제품을 내보내고 petstore-product.yaml 파일에 출력합니다.

3scale product export -f petstore-product.yaml my-3scale-1 petstore
Copy to Clipboard Toggle word wrap

다음은 Default API 제품에 대한 직렬화 예입니다.

apiVersion: v1
kind: List
items:
- apiVersion: capabilities.3scale.net/v1beta1
  kind: Product
  metadata:
    annotations:
      3scale_toolbox_created_at: '2021-02-17T10:59:23Z'
      3scale_toolbox_version: 0.17.1
    name: api.xysnalcj
  spec:
    name: Default API
    systemName: api
    description: ''
    mappingRules:
    - httpMethod: GET
      pattern: "/v2"
      metricMethodRef: hits
      increment: 1
      last: false
    metrics:
      hits:
        friendlyName: Hits
        unit: hit
        description: Number of API hits
    methods:
      servicemethod01:
        friendlyName: servicemethod01
        description: ''
    policies:
    - name: apicast
      version: builtin
      configuration: {}
      enabled: true
    applicationPlans:
      basic:
        name: Basic
        appsRequireApproval: false
        trialPeriod: 0
        setupFee: 0.0
        custom: false
        state: published
        costMonth: 0.0
        pricingRules:
        - from: 1
          to: 1000
          pricePerUnit: 1.0
          metricMethodRef:
            systemName: hits
        limits:
        - period: hour
          value: 1222222
          metricMethodRef:
            systemName: hits
            backend: backend_01
    backendUsages:
      backend_01:
        path: "/v1/pets"
      backend_02:
        path: "/v1/cats"
    deployment:
      apicastSelfManaged:
        authentication:
          oidc:
            issuerType: rest
            issuerEndpoint: https://hello:test@example.com/auth/realms/3scale-api-consumers
            jwtClaimWithClientID: azp
            jwtClaimWithClientIDType: plain
            authenticationFlow:
              standardFlowEnabled: false
              implicitFlowEnabled: true
              serviceAccountsEnabled: false
              directAccessGrantsEnabled: true
            credentials: query
            security:
              hostHeader: ''
              secretToken: some_secret
            gatewayResponse:
              errorStatusAuthFailed: 403
              errorHeadersAuthFailed: text/plain; charset=us-ascii
              errorAuthFailed: Authentication failed
              errorStatusAuthMissing: 403
              errorHeadersAuthMissing: text/plain; charset=us-ascii
              errorAuthMissing: Authentication parameters missing
              errorStatusNoMatch: 404
              errorHeadersNoMatch: text/plain; charset=us-ascii
              errorNoMatch: No Mapping Rule matched
              errorStatusLimitsExceeded: 429
              errorHeadersLimitsExceeded: text/plain; charset=us-ascii
              errorLimitsExceeded: Usage limit exceeded
        stagingPublicBaseURL: http://staging.example.com:80
        productionPublicBaseURL: http://example.com:80
- apiVersion: capabilities.3scale.net/v1beta1
  kind: Backend
  metadata:
    annotations:
      3scale_toolbox_created_at: '2021-02-17T10:59:34Z'
      3scale_toolbox_version: 0.17.1
    name: backend.01.pcjwxbdu
  spec:
    name: Backend 01
    systemName: backend_01
    privateBaseURL: https://b1.example.com:443
    description: new desc
    mappingRules:
    - httpMethod: GET
      pattern: "/v1/pets"
      metricMethodRef: hits
      increment: 1
      last: false
    metrics:
      hits:
        friendlyName: Hits
        unit: hit
        description: Number of API hits
    methods:
      mybackendmethod01:
        friendlyName: mybackendmethod01
        description: ''
- apiVersion: capabilities.3scale.net/v1beta1
  kind: Backend
  metadata:
    annotations:
      3scale_toolbox_created_at: '2021-02-17T10:59:34Z'
      3scale_toolbox_version: 0.17.1
    name: backend.02.tiedgjsk
  spec:
    name: Backend 02
    systemName: backend_02
    privateBaseURL: https://b2.example.com:443
    description: ''
    mappingRules:
    - httpMethod: GET
      pattern: "/v1/cats"
      metricMethodRef: hits
      increment: 1
      last: false
    metrics:
      hits:
        friendlyName: Hits
        unit: hit
        description: Number of API hits
    methods:
      backend02_method01:
        friendlyName: backend02_method01
        description: ''
Copy to Clipboard Toggle word wrap

제품 CR 내보내기 및 파이핑

export 명령을 실행하면 출력을 파이프하여 제품 CR(사용자 정의 리소스) 을 생성할 수 있습니다. 이 CR이 포함된 3scale 인스턴스는 다음에 따라 다릅니다.

  • 3scale-provider-account 시크릿이 정의된 경우 3scale 운영자는 해당 시크릿으로 식별된 3scale 인스턴스에 product CR을 생성합니다.
  • 3scale-provider-account 시크릿이 정의되지 않은 경우 새 제품 CR이 있는 네임스페이스에 3scale 인스턴스가 설치되면 3scale 운영자가 해당 네임스페이스에 제품 CR을 생성합니다.
  • 3scale-provider-account 시크릿이 정의되지 않고 새 제품 CR이 있는 네임스페이스에 3scale 인스턴스가 포함되지 않은 경우 3scale 운영자는 제품 CR을 실패 상태로 표시합니다.

3scale-provider-account 시크릿을 포함하는 네임스페이스에서 다음 명령을 실행하도록 가정합니다. toolbox는 petstore CR을 threescale -provider-account 보안에서 식별된 3scale 인스턴스에 파이프합니다.

3scale product export my-3scale-1 petstore | oc apply -f -
Copy to Clipboard Toggle word wrap

자세한 내용은 3scale Operator가 사용자 지정 리소스가 연결되는 테넌트를 식별하는 방법을 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat