Summary

  • Руководство по учёту запускает час событием unsubscribe-pending. Руководство по тарифам ставит License Deprovisioned - Manufacturer после истечения часа. Руководство по EventBridge, напротив, считает это же событие началом последнего часа.
  • После закрытия окна AWS отклоняет записи об использовании. Поставщику нужен ответ API о принятых единицах, а покупателю — сверка отмены, последнего расхода и итогового счёта.

Можно спорить о цене часа. Здесь сначала приходится выяснять, когда этот час вообще начался.

AWS Marketplace формирует плату за SaaS на основании записей, которые передаёт продавец. В инструкции по учёту для подписочной модели описана такая цепочка: покупатель инициирует отказ, продавец получает unsubscribe-pending, затем в течение часа отправляет неучтённый расход. После unsubscribe-success новые записи не принимаются. Если у покупателя одновременно несколько соглашений по одному продукту, закрывается окно только отменённой лицензии.

Страница о тарифах выстраивает другую цепочку. Сначала приходит уведомление о завершении соглашения о покупке, затем идёт час для остаточного учёта, и после этого часа продавец получает License Deprovisioned - Manufacturer. Отправлять записи после этого события, по тексту страницы, уже нельзя. Лицензионное событие обозначает конец.

Руководство EventBridge назначает ему противоположную роль. Таблица событий называет License Deprovisioned - Manufacturer началом часового заключительного окна для продуктов с оплатой по использованию. Отдельный раздел повторяет: отсчёт идёт после получения события, записи передаются через BatchMeterUsage, а позднее API их отклоняет. Одно и то же название стоит в официальных документах по разные стороны дедлайна.

Поставщик, запрограммировавший ожидание лицензионного события по руководству EventBridge, рискует опоздать по расписанию страницы тарифов. Поставщик, который закроет учёт сразу после окончания соглашения, может не передать расход, который API ещё принял бы. Документы подтверждают конфликт инструкций, но не содержат рабочей трассировки, определяющей фактический порядок в сервисе.

Есть и соседние сроки. Пока подписка действует, AWS допускает записи с меткой времени до 24 часов назад; после отказа от подписки остаток нужно передать за час. Шестичасовая льгота в начале нового расчётного месяца относится к расходу прошлого месяца. Она не заменяет час при отмене. Покупатель видит данные в отчётах с задержкой: факт нажатия кнопки отмены не показывает окончательную сумму.

Учёт следует вести по каждому соглашению: ID лицензии, момент отмены, время прихода каждого уведомления, период расхода, запрос BatchMeterUsage, ответ о приёме или отказе и соответствующая строка счёта. Не хватает датированной спецификации AWS либо проверяемой записи вызовов API, где установлен порядок событий и момент закрытия для каждой модели тарификации. До появления такого документа разумно запускать заключительный учёт по первому подходящему сигналу и сохранять квитанцию API.

Официальные источники