Настройка тарифного плана с настраиваемыми атрибутами

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Введение

В некоторых случаях вам может потребоваться, чтобы счетчики транзакций основывались на переменной или пользовательском значении. Например, вам может понадобиться:

  • Взимайте с разработчиков переменную сумму, основанную на значении, указанном в сообщении вызова API. Например, вы можете взимать с разработчиков приложений плату в зависимости от количества байтов, переданных в запросе API.
  • Объедините несколько вызовов API в одну транзакцию.

Используя тарифные планы с настраиваемыми атрибутами, вы можете определить значение в сообщении вызова API, которое действует как счетчик и используется для расчета количества транзакций и сборов.

Поддерживаются следующие тарифные планы с настраиваемыми атрибутами:

  • Прейскурант с пользовательским атрибутом
  • Настраиваемое уведомление с настраиваемым атрибутом

Вы можете установить максимум десять пользовательских атрибутов для каждого тарифного плана.

Понимание вычислений пользовательских атрибутов

То, как значение настраиваемого атрибута учитывается в количестве транзакций и сборов тарифного плана, зависит от модели начисления платы, как показано в следующей таблице.

Модель зарядки Расчет пользовательского атрибута
Фиксированная ставка и диапазон объема

custom attribute number * rate = charge to developer

Для фиксированной ставки номер пользовательского атрибута становится количеством транзакций, умножаемых на ставку. Для Volume Banded количество транзакций в группе увеличивается на номер пользовательского атрибута, и за это количество транзакций взимается плата с разработчика. Например, если значение настраиваемого атрибута в сообщении равно 10, то с разработчика взимается плата за 10 транзакций, и 10 транзакций добавляются к текущему количеству полос. Если у разработчика осталось только 6 транзакций в текущем диапазоне, 6 умножается на ставку для этого диапазона. Остальные 4 переходят в следующий диапазон и умножаются на ставку этого диапазона.

В плане Volume Banded, если последний диапазон объема имеет лимит (не «неограничен») и транзакция превышает этот лимит, происходят две вещи:

Пакеты

Поскольку пакеты взимаются за группу, а не за транзакцию, происходит следующий расчет:

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 , которая содержит количество байтов в полезных данных запроса. Прикрепив политику назначения сообщения к ответу конечной точки прокси, мы можем сгенерировать заголовок ответа с именем 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 в каждое приложение разработчика, как показано ниже:

При использовании политики Verify API Key (которая необходима для монетизации) это значение сохраняется в переменнойverifyapikey verifyapikey.{policy_name}.apprating . Используя политику назначения сообщения, прикрепленную к ответу конечной точки прокси-сервера, вы можете создать заголовок 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>

Настройка тарифного плана

За исключением настройки пользовательских атрибутов, описанной выше, тарифный план настраивается так же, как и обычно (для тарифных планов без пользовательских атрибутов), но он должен соответствовать следующим требованиям.

Настройка тарифного плана с настраиваемым атрибутом с помощью пользовательского интерфейса

Настройте тарифные планы с настраиваемыми атрибутами с помощью пользовательского интерфейса Edge или классического пользовательского интерфейса Edge, как описано в следующих разделах.

Край

Чтобы настроить тарифный план с настраиваемыми атрибутами с помощью пользовательского интерфейса Edge:

  1. Определите пользовательские атрибуты при добавлении продукта API .
  2. Создайте пакет продуктов API, содержащий продукт. См. раздел Создание пакетов продуктов API .
    В политике записи транзакций для пакета продуктов API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во введении в этом разделе, а также в разделе Создание политики записи транзакций .
  3. Создайте тарифный план для пакета продуктов API и укажите собственный параметр рейтинга .

Дополнительные сведения см. в разделе Настройка сведений о тарифном плане с помощью пользовательского интерфейса .

Классический Edge (частное облако)

Выполните следующие действия, чтобы создать прейскурант с планом настраиваемых атрибутов с помощью классического пользовательского интерфейса Edge:

  1. В политике записи транзакций продукта API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во введении в этом разделе, а также в разделе Создание политики записи транзакций . Сделайте это для каждого продукта API, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций будут настроены именно так, как вы хотите, создайте пакет API, содержащий продукт. См. Создание пакетов API .
  3. Создайте тарифный план для пакета API, выбрав тип тарифного плана «Тариф с пользовательским атрибутом» .
  4. Нажмите ссылку «Тариф» . Откроется окно Прейскурант.

  5. Выберите настраиваемый атрибут в раскрывающемся меню «Настраиваемый атрибут». В меню перечислены пользовательские атрибуты, созданные для продукта в политике записи транзакций. Плата с разработчика взимается в зависимости от значения выбранного настраиваемого атрибута в каждой транзакции.
    (Значение атрибута * ставка = плата разработчику)
  6. При необходимости настройте бесплатный план, как описано в разделе «Указание сведений о тарифном плане» .
  7. Настройте модель оплаты, как описано в разделе «Указание сведений о тарифном плане» . Однако обратите внимание, что для типа тарифного плана «Тариф с настраиваемым атрибутом» модель начисления платы основана на выбранном вами настраиваемом атрибуте. Например, если вы выберете в качестве модели оплаты фиксированную ставку, с разработчика будет взиматься фиксированная ставка на основе настраиваемого атрибута, такого как количество байтов, переданных в каждой транзакции (а не фиксированная ставка для каждой транзакции). Дополнительную информацию см. в разделе «Расчеты» .
  8. Нажмите «Сохранить черновик» .
    Публикуйте план только тогда, когда вы абсолютно уверены, что он окончательный. Информацию об установке даты публикации и публикации плана см. в разделе «Публикация тарифных планов» .

Дополнительные сведения см. в разделе Указание сведений о тарифном плане с помощью пользовательского интерфейса .

Настройка настраиваемого плана уведомлений с настраиваемыми атрибутами с помощью пользовательского интерфейса.

Настройте настраиваемые планы уведомлений с настраиваемыми атрибутами, как описано ниже.

Край

Чтобы настроить тарифный план с настраиваемыми атрибутами с помощью пользовательского интерфейса Edge:

  1. Определите пользовательские атрибуты при добавлении продукта API .
  2. Создайте пакет продуктов API, содержащий продукт. См. раздел Создание пакетов продуктов API .
    В политике записи транзакций для пакета продуктов API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во введении в этом разделе, а также в разделе Создание политики записи транзакций .
  3. Создайте тарифный план для пакета продуктов API и укажите собственный параметр рейтинга .

Дополнительные сведения см. в разделе Настройка настраиваемого плана уведомлений с помощью пользовательского интерфейса .

Классический Edge (частное облако)

Чтобы настроить тарифный план с настраиваемыми атрибутами с помощью классического пользовательского интерфейса Edge:

  1. В политике записи транзакций продукта API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во введении в этом разделе, а также в разделе Создание политики записи транзакций . Сделайте это для каждого продукта API, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций настроены именно так, как вы хотите, создайте пакет API, содержащий продукт. См. Создание пакетов API .
  3. Создайте тарифный план для пакета API, выбрав тип тарифного плана «Настраиваемое уведомление с настраиваемым атрибутом» .
  4. Нажмите ссылку «Подробнее» . Откроется окно «Настраиваемое уведомление».

  5. Выберите настраиваемый атрибут в раскрывающемся меню «Настраиваемый атрибут» . В меню перечислены пользовательские атрибуты, созданные для продукта в политике записи транзакций. Общее количество транзакций разработчика рассчитывается на основе значения выбранного настраиваемого атрибута в каждой транзакции.
  6. Установите в качестве основы агрегирования период времени, за который агрегируется объем транзакций. Выберите число от 1 до 24 месяцев. По умолчанию это значение равно 1 месяцу.
  7. Нажмите «Применить» и «Закрыть» .
  8. Нажмите «Сохранить черновик» .
    Публикуйте план только тогда, когда вы абсолютно уверены, что он окончательный. Информацию об установке даты публикации и публикации плана см. в разделе «Публикация тарифных планов» .

Дополнительные сведения см . в разделе «Указание сведений о настраиваемом плане уведомлений с помощью пользовательского интерфейса» .

Указание деталей тарифного плана с настраиваемыми атрибутами с помощью API

Выполните следующие необходимые шаги:

  1. В политике записи транзакций продукта API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во введении в этом разделе, а также в разделе Создание политики записи транзакций . Сделайте это для каждого продукта API, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций настроены именно так, как вы хотите, создайте пакет API, содержащий продукт. См. Создание пакетов API .

Далее вы используете API для создания тарифного плана.

Подробности тарифного плана с настраиваемыми атрибутами вы указываете при создании тарифного плана. Вы указываете детали в ratePlanDetails в теле запроса при вызове /organizations/{org_name}/monetization-packages/{package_id}/rate-plans . В деталях вы указываете значение параметра рейтинга, которое идентифицирует имя настраиваемого атрибута. Вы также можете указать значение параметра рейтинга, которое агрегирует настраиваемый атрибут за указанный интервал времени.

Полный список параметров тарифного плана см. в разделе Параметры конфигурации подробностей тарифного плана.

Например, в следующем примере создается прейскурант с планом настраиваемых атрибутов на основе настраиваемого атрибута с именем 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