소스 3scale 인스턴스와의 연결이 없는 3scale 인스턴스로 해당 제품을 가져올 수 있도록 3scale 제품 정의를 .yaml 형식으로 내보낼 수 있습니다. 3scale 제품을 설정해야 해당 제품을 내보낼 수 있습니다. API 호출을 테스트하기 위해 신제품 생성을  참조하십시오.
			
				3scale 인스턴스에 네트워크 연결이 있는 경우  3scale 인스턴스 모두에서 동일한 3scale 제품을 사용하려면 toolbox 3scale copy 명령을  사용합니다.
			
						제품에 연결된 백엔드입니다.
					 
						연결된 백엔드에 대한 지표, 메서드 및 매핑 규칙.
					 
						애플리케이션 계획에 정의된 제한 및 가격 결정 규칙.
					 
						제한 및 가격 규칙에 따라 참조되는 지표 및 방법.
					 
				제품 내보내기는 읽기 전용 작업입니다. 즉, 제품을 반복적으로 내보내는 것이 안전합니다. toolbox는 내보낼 제품을 변경하지 않습니다. 원하는 경우 .yaml 출력을 다른 3scale 인스턴스로 가져오기 전에 수정할 수 있습니다.
			
				3scale 제품 내보내기는 다음과 같은 상황에 적합합니다.
			
						소스와 대상 3scale 인스턴스 간에는 연결이 없습니다. 예를 들어 2개 이상의 3scale 인스턴스에서 동일한 제품을 사용하려는 경우 toolbox 3scale copy 명령을 실행하지 않는 심각한 네트워크 제한이 있을 수 있습니다.
					 
						Git 또는 일부 기타 소스 제어 시스템을 사용하여 3scale 제품 정의를 .yaml 형식으로 유지 관리하려고 합니다.
					 
				3scale toolbox 내보내기 및 가져오기 명령은 제품 정의를 백업하고 복원하는 데에도 유용할 수 있습니다.
			
3scale product export [-f output-file] <remote> <product> 
3scale product export [-f output-file] <remote> <product> 
 
Copy to Clipboard 
Copied! 
 
   
   
 
 
 
Toggle word wrap 
Toggle overflow 
 
  
    
       
       
     
    
       
       
       
     
   
 
 
 
				export 명령은 출력을 stdout 또는 파일에 전송할 수 있습니다. 기본값은 stdout 입니다. 출력을 파일로 보내려면.  yaml 파일 이름으로 -f 또는 --file 옵션을 지정합니다.
			
				<remote> 를 제품을 내보낼 3scale 인스턴스와 연결된 3scale 공급자 계정 별칭 또는 URL로 바꿉니다. 이를 지정하는 방법에 대한 자세한 내용은 원격 액세스 자격 증명  관리를 참조하십시오.
			
				<product> 를 시스템 이름 또는 내보낼 제품의 3scale ID로 바꿉니다. 이 제품은 지정한 3scale 공급자 계정과 연결되어야 합니다. 제품의 시스템 이름은 제품 개요   페이지의 3scale GUI에서 확인할 수 있습니다. 제품의 3scale ID를 얻으려면 toolbox 3scale services show 명령을  실행합니다.
			
3scale product export -f petstore-product.yaml my-3scale-1 petstore 
3scale product export -f petstore-product.yaml my-3scale-1 petstore 
 
Copy to Clipboard 
Copied! 
 
   
   
 
 
 
Toggle word wrap 
Toggle overflow 
 
  
    
       
       
     
    
       
       
       
     
   
 
 
 
				다음은 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: '' 
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 
Copied! 
 
   
   
 
 
 
Toggle word wrap 
Toggle overflow 
 
  
    
       
       
     
    
       
       
       
     
   
 
 
 
						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 - 
3scale product export my-3scale-1 petstore | oc apply -f - 
 
Copy to Clipboard 
Copied! 
 
   
   
 
 
 
Toggle word wrap 
Toggle overflow 
 
  
    
       
       
     
    
       
       
       
     
   
 
 
 
				자세한 내용은 3scale Operator가 사용자 지정 리소스가 연결되는 테넌트를 식별하는 방법을  참조하십시오.