맞춤 속성으로 요금제 구성

Apigee Edge 문서입니다.
Go to the Apigee X 문서로 이동합니다.
info

소개

경우에 따라 변수 또는 맞춤 값을 기반으로 트랜잭션 카운터가 필요할 수 있습니다. 예를 들어 다음과 같은 작업이 필요할 수 있습니다.

  • API 호출 메시지에 제공된 값을 기반으로 개발자에게 가변 금액을 청구합니다. 예를 들어 API 요청에서 전송된 바이트 수 를 기준으로 앱 개발자에게 요금을 청구할 수 있습니다.
  • 여러 API 호출을 단일 트랜잭션으로 번들링합니다.

맞춤 속성이 있는 요금제를 사용하면 카운터 역할을 하고 트랜잭션 수와 요금을 계산하는 데 사용되는 API 호출 메시지의 값을 식별할 수 있습니다.

맞춤 속성이 있는 다음 요금제가 지원됩니다.

  • 맞춤 속성이 있는 요금 카드
  • 맞춤 속성이 있는 조정 가능한 알림

요금제당 최대 10개의 맞춤 속성을 설정할 수 있습니다.

맞춤 속성 계산 이해

맞춤 속성 값이 요금제 트랜잭션 수와 요금에 반영되는 방식은 다음 표에 요약된 대로 요금 모델에 따라 다릅니다.

요금 모델 맞춤 속성 계산
정액제 및 볼륨 밴드

custom attribute number * rate = charge to developer

정액제의 경우 맞춤 속성 수가 요금에 곱해지는 트랜잭션 수가 됩니다. 볼륨 밴드의 경우 밴드의 트랜잭션 수 가 맞춤 속성 수만큼 증가하고 개발자에게 해당 트랜잭션 수에 대한 요금이 청구됩니다. 예를 들어 메시지의 맞춤 속성 값이 10이면 개발자에게 10개의 트랜잭션에 대한 요금이 청구되고 현재 밴드 수에 10개의 트랜잭션이 추가됩니다. 개발자에게 현재 밴드에 6개의 트랜잭션만 남아 있는 경우 6에 해당 밴드의 요금이 곱해집니다. 나머지 4개는 다음 밴드로 이동하여 해당 밴드의 요금이 곱해집니다.

볼륨 밴드 요금제에서 마지막 볼륨 밴드에 한도가 있고('무제한'이 아님) 트랜잭션이 해당 한도를 초과하면 다음 두 가지가 발생합니다.

번들

번들은 트랜잭션이 아닌 그룹별로 청구되므로 다음 계산이 발생합니다.

custom attribute number = amount added to bundle count

예를 들어 메시지의 맞춤 속성 수가 10이면 번들에서 사용된 트랜잭션 수에 10이 추가됩니다. 개발자에게 현재 번들에 6 개의 트랜잭션만 남아 있는 경우 해당 번들이 채워지고 다음 번들 수가 4만큼 증가합니다. 다음 번들의 요금이 있는 경우 청구됩니다.

마지막 번들에 한도가 있고('무제한'이 아님) 트랜잭션이 해당 한도를 초과하면 다음 두 가지가 발생합니다.

조정 가능한 알림

조정 가능한 알림의 경우 다음 계산이 발생합니다.

custom attribute number = amount added to transaction count

예를 들어 메시지의 맞춤 속성 수가 10이면 총 트랜잭션 수에 10이 추가됩니다.

요금제에서 맞춤 속성 값을 가져오는 위치

트랜잭션 기록 정책 (API 제품 번들)은 수익 창출에 메시지에서 맞춤 속성 값을 찾을 위치를 알려줍니다. API 제품 번들의 트랜잭션 기록 정책의 맞춤 속성 섹션에서 맞춤 속성을 정의합니다.

그런 다음 맞춤 속성이 정의된 트랜잭션 기록 정책이 포함된 API 제품 번들을 만든 후 요금제에서 해당 맞춤 속성을 선택할 수 있습니다.

다음은 대략적인 흐름입니다.

  1. API 제품을 추가할 때 맞춤 속성을 정의합니다.
  2. 제품이 포함된 API 제품 번들을 만듭니다.
    API 제품 번들의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다.
  3. 요금제 만들기 API 제품 번들에 대해 요금 카드 또는 조정 가능한 알림 유형의 요금제를 만들고 맞춤 평가 매개변수를 지정합니다.

다음 그림은 트랜잭션 기록 정책에 정의된 맞춤 속성과 요금 카드 요금제 구성 간의 관계를 보여줍니다. 맞춤 속성 요금제가 있는 조정 가능한 알림 관계는 볼륨 밴드 값이 적용되지 않는다는 점을 제외하고 비슷합니다.

메시지에서 맞춤 속성 값을 생성하는 방법

트랜잭션 기록 정책은 응답 헤더, 응답 본문 또는 응답의 미리 정의된 흐름 변수와 같은 여러 위치에서 맞춤 속성 값을 찾을 수 있습니다. (성공적인 응답을 받을 때까지 트랜잭션이 공식이 아니므로 요청을 사용할 수 없습니다.) 다음은 숫자 값이 있는 응답 헤더 를 메시지에 추가하는 방법을 보여주는 예입니다. 두 경우 모두 변수와 함께 Assign Message 정책을 사용합니다.

요청 페이로드 크기를 응답 헤더에 추가

각 메시지 요청에는 요청 페이로드의 바이트 수를 포함하는 client.received.content.length 변수가 있습니다. Assign Message 정책을 프록시 엔드포인트 응답에 연결하면 길이 값이 포함된 messageSize라는 응답 헤더를 생성할 수 있습니다.

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="messageSize">{client.received.content.length}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

앱 맞춤 속성 값을 헤더에 추가

마찬가지로 앱의 맞춤 속성 값이 있는 헤더를 생성할 수 있습니다. 예를 들어 각 개발자 앱에 다음과 같이 apprating이라는 맞춤 속성을 포함하는 경우:

수익 창출에 필요한 API 키 검증 정책을 사용하는 경우 이 값은 verifyapikey.{policy_name}.apprating이라는 변수에 저장됩니다. 프록시 엔드포인트 응답에 연결된 Assign Message 정책을 사용하면 앱의 apprating 값이 포함된 apprating이라는 헤더를 생성할 수 있습니다.

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

요금제 설정

위에서 설명한 맞춤 속성 설정 외에 요금제는 일반적으로 (맞춤 속성이 없는 요금제의 경우) 설정하는 방식과 동일하지만 다음 요구사항을 준수해야 합니다.

UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제 구성

다음 섹션에 설명된 대로 Edge UI 또는 기존 Edge UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제를 구성합니다.

에지

Edge UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제를 구성하려면 다음 단계를 따르세요.

  1. API 제품을 추가할 때 맞춤 속성을 정의합니다.
  2. 제품이 포함된 API 제품 번들을 만듭니다. API 제품 번들 만들기를 참고하세요.
    API 제품 번들의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다. 자세한 내용은 이 주제의 소개와 트랜잭션 기록 정책 만들기를 참고하세요.
  3. API 제품 번들에 대해 요금제를 만들고 맞춤 평가 매개변수를 지정합니다.

자세한 내용은 UI를 사용하여 요금 카드 요금제 세부정보 구성을 참고하세요.

기존 Edge (Private Cloud)

기존 Edge UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제를 만들려면 다음 단계를 따르세요.

  1. API 제품의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다. 자세한 내용은 이 주제의 소개와 트랜잭션 기록 정책 만들기를 참고하세요. API 패키지에 포함할 각 API 제품에 대해 이 작업을 실행합니다.
  2. API 제품 및 트랜잭션 기록 정책을 원하는 대로 정확하게 구성한 후 제품이 포함된 API 패키지를 만듭니다. API 패키지 만들기를 참고하세요.
  3. API 패키지의 요금제를 만들고 요금제 유형으로 요금 카드 맞춤 속성이 있는를 선택합니다.
  4. 요금 카드 링크를 클릭합니다. 그러면 요금 카드 창이 열립니다.

  5. 맞춤 속성 드롭다운 메뉴에서 맞춤 속성을 선택합니다. 메뉴에는 트랜잭션 기록 정책에서 제품에 대해 생성된 맞춤 속성이 나열됩니다. 개발자에게는 각 트랜잭션 내에서 선택한 맞춤 속성의 값을 기준으로 요금이 청구됩니다.
    (속성 값 * 요금 = 개발자에게 청구되는 요금)
  6. (선택사항) 요금 카드 요금제 세부정보 지정에 설명된 대로 프리미엄 요금제를 설정합니다.
  7. 요금 카드 요금제 세부정보 지정에 설명된 대로 요금 모델을 설정합니다. 하지만 맞춤 속성이 있는 요금 카드 요금제 유형의 경우 요금 모델은 선택한 맞춤 속성을 기반으로 합니다. 예를 들어 요금 모델로 정액제 를 선택하면 개발자에게 각 트랜잭션의 고정 요금이 아닌 각 트랜잭션에서 전송된 바이트 수와 같은 맞춤 속성을 기반으로 고정 요금이 청구됩니다. 자세한 내용은 계산을 참고하세요.
  8. 저장 초안 을 클릭합니다.
    요금제가 최종인지 확실한 경우에만 게시합니다. 게시일 설정 및 요금제 게시에 대한 자세한 내용은 요금제 게시 를 참고하세요.

자세한 내용은 UI를 사용하여 요금 카드 요금제 세부정보 지정을 참고하세요.

UI를 사용하여 맞춤 속성이 있는 조정 가능한 알림 요금제 구성

아래 설명된 대로 맞춤 속성이 있는 조정 가능한 알림 요금제를 구성합니다.

에지

Edge UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제를 구성하려면 다음 단계를 따르세요.

  1. API 제품을 추가할 때 맞춤 속성을 정의합니다.
  2. 제품이 포함된 API 제품 번들을 만듭니다. API 제품 번들 만들기를 참고하세요.
    API 제품 번들의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다. 자세한 내용은 이 주제의 소개와 트랜잭션 기록 정책 만들기를 참고하세요.
  3. API 제품 번들에 대해 요금제를 만들고 맞춤 평가 매개변수를 지정합니다.

자세한 내용은 UI를 사용하여 조정 가능한 알림 요금제 구성을 참고하세요.

기존 Edge (Private Cloud)

기존 Edge UI를 사용하여 맞춤 속성이 있는 요금 카드 요금제를 구성하려면 다음 단계를 따르세요.

  1. API 제품의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다. 자세한 내용은 이 주제의 소개와 트랜잭션 기록 정책 만들기를 참고하세요. API 패키지에 포함할 각 API 제품에 대해 이 작업을 실행합니다.
  2. API 제품 및 트랜잭션 기록 정책을 원하는 대로 정확하게 구성한 후 제품이 포함된 API 패키지를 만듭니다. API 패키지 만들기를 참고하세요.
  3. API 패키지의 요금제를 만들고 요금제 유형으로 조정 가능한 맞춤 속성이 있는 알림을 선택합니다.
  4. 세부정보 링크를 클릭합니다. 그러면 조정 가능한 알림 창이 열립니다.

  5. 맞춤 속성 드롭다운 메뉴에서 맞춤 속성을 선택합니다. 메뉴에는 트랜잭션 기록 정책에서 제품에 대해 생성된 맞춤 속성이 나열됩니다. 개발자의 총 트랜잭션 수는 각 트랜잭션 내에서 선택한 맞춤 속성의 값을 기준으로 계산됩니다.
  6. 트랜잭션 볼륨이 집계되는 기간으로 집계 기준 을 설정합니다. 1~24개월 사이의 숫자를 선택합니다. 이 값은 기본적으로 1 개월로 설정됩니다.
  7. 적용 및 닫기 를 클릭합니다.
  8. 저장 초안 을 클릭합니다.
    요금제가 최종인지 확실한 경우에만 게시합니다. 게시일 설정 및 요금제 게시에 대한 자세한 내용은 요금제 게시 를 참고하세요.

자세한 내용은 UI를 사용하여 조정 가능한 알림 요금제 세부정보 지정을 참고하세요.

API를 사용하여 맞춤 속성이 있는 요금제의 세부정보 지정

다음 필수 단계에 따라 진행합니다.

  1. API 제품의 트랜잭션 기록 정책에서 요금제를 정의하는 데 사용되는 맞춤 속성을 추가합니다. 자세한 내용은 이 주제의 소개와 트랜잭션 기록 정책 만들기를 참고하세요. API 패키지에 포함할 각 API 제품에 대해 이 작업을 실행합니다.
  2. API 제품 및 트랜잭션 기록 정책을 원하는 대로 정확하게 구성한 후 제품이 포함된 API 패키지를 만듭니다. API 패키지 만들기를 참고하세요.

그런 다음 API를 사용하여 요금제를 만듭니다.

요금제를 만들 때 맞춤 속성이 있는 요금제의 세부정보를 지정합니다. /organizations/{org_name}/monetization-packages/{package_id}/rate-plans 호출의 요청 본문 내 ratePlanDetails 속성에서 세부정보를 지정합니다. 세부정보에서 맞춤 속성의 이름을 식별하는 평가 파라미터 값을 지정합니다. 지정된 시간 간격으로 맞춤 속성 을 집계하는 평가 매개변수 값을 지정할 수도 있습니다.

요금제 세부정보 옵션의 전체 목록은 요금제 세부정보 구성 설정을 참고하세요.

예를 들어 다음은 messageSize라는 맞춤 속성을 기반으로 맞춤 속성이 있는 요금 카드 요금제를 만듭니다 (굵게 표시된 항목 참고).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
   "name": "Custom attribute-based rate card plan",
   "developer":null,
   "developerCategory":null,
   "currency": {
     "id" : "usd"
     },     
   "description": "Custom attribute-based rate card plan",
   "displayName" : "Custom attribute-based rate card plan",
   "frequencyDuration": "1",
   "frequencyDurationType": "MONTH",
   "earlyTerminationFee": "10",
   "monetizationPackage": {
      "id": "location"
        },
      "organization": {
       "id": "{org_name}"
      },    
   "paymentDueDays": "30",
   "prorate": "false",
   "published": "false",     
   "ratePlanDetails":[
      {
        "currency":{
           "id":"usd"
        },
      "duration":1,
      "durationType":"MONTH",
      "meteringType":"VOLUME",
      "paymentDueDays":"30",
      "ratingParameter":"messageSize",
      "ratingParameterUnit":"MB",
      "organization":{
         "id":"{org_name}"
      },
      "ratePlanRates":[
         {
           "rate":0.15,
           "startUnit":0,
           "type":"RATECARD",
           "endUnit":1000
         },
         {
           "rate":0.1,
           "startUnit":1000,
           "type":"RATECARD",
           "endUnit":null
         }
      ],
      "freemiumUnit":0,
      "freemiumDuration":0,
      "freemiumDurationType":"MONTH",
      "type":"RATECARD",
      "customPaymentTerm":false
      }
    ],
    "freemiumUnit":0,
    "freemiumDuration":0,
    "freemiumDurationType":"MONTH",
    "contractDuration":"1",
    "contractDurationType":"YEAR", 
    "recurringStartUnit": 1,
    "recurringType": "CALENDAR",
    "recurringFee": "10",
    "setUpFee": "10",
    "startDate": "2013-09-15 00:00:00",
    "type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password

다음은 맞춤 속성 이름 messageSize을 기반으로 맞춤 속성이 있는 조정 가능한 알림 요금제를 만듭니다 (굵게 표시된 항목 참고).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "name": "AdjustableNotification",
     "displayName": "Custom attribute-based adjustable notification plan",
     "description": "Custom attribute-based adjustable notification plan",
     "published": "true",  
     "organization": {
      "id": "myorg"
     },
     "startDate": "2016-04-15 00:00:00",
     "type": "STANDARD",
     "monetizationPackage": {
        "id": "p1",
        "name": "test"
     },
     "currency": {
        "id" : "usd",
        "name" : "USD"
     },
     "ratePlanDetails": [
        {
           "type": "USAGE_TARGET",
           "meteringType": "DEV_SPECIFIC",
           "duration": 1,
           "durationType": "MONTH",
           "ratingParameter": "messageSize",
           "ratingParameterUnit": "MB",
           "organization": {
             "id": "myorg"
           },
           "currency": {
             "id": "usd",
             "name": "USD"
           }
        }
     ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans"  \
-u email:password