Перенос автоматизации Zapier или Make на новый хост геокодирования
No-code автоматизации с шагом геокодирования требуют иного подхода к миграции, чем собственный код. Вот как провести такой переход.
Лимиты запросов у разных провайдеров различаются не только допустимым числом запросов, и миграция, при которой проверяют только заявленный лимит, может упустить структурные различия, которые на практике важнее самого числа.
Несколько структурных аспектов, которые стоит проверить отдельно для любого провайдера, к которому вы переходите или от которого уходите:
К чему привязан лимит. Одни провайдеры ограничивают только по API-ключу. Другие по IP-адресу, по аккаунту или по какой-то комбинации. В My Geocode бесплатная квота считается по сети, то есть по /24 для IPv4 или по /48 для IPv6, и она общая для использования без ключа и с ключом из одной и той же сети. Это существенно иная модель, чем лимит, считаемый исключительно по ключу, и она особенно важна для приложений, работающих за общим диапазоном IP-адресов, например в корпоративной сети или облачной среде, где много экземпляров использует один блок адресов.
Как сбрасывается лимит. Распространены ежедневный, ежемесячный сброс и скользящее окно, и разница влияет на то, как следует распределять во времени пакетную задачу или обрабатывать всплеск трафика. Лимит, который сбрасывается на фиксированной суточной границе, при всплеске трафика ведёт себя иначе, чем лимит со скользящим окном.
Сообщается ли информация о лимите в каждом ответе или нужна отдельная проверка. От этого зависит, может ли ваше приложение заранее само снижать темп или узнаёт о достижении лимита, только когда запрос завершается ошибкой. My Geocode сообщает это напрямую: каждый ответ содержит заголовки X-Quota-Limit, X-Quota-Used, X-Quota-Free-Remaining, X-Quota-Network-Used, X-Credits-Remaining, X-Key-IPs-Used, X-Key-IPs-Limit и X-Quota-Reset, описанные на /docs/rate-limits/. Это значит, что логика повторов и распределения запросов может читать текущее состояние прямо из только что полученного ответа, а не опрашивать отдельный эндпоинт или личный кабинет.
Что происходит сверх лимита. Останавливает ли провайдер запросы полностью, замедляет ответы или автоматически выставляет счёт за превышение? В My Geocode сверх бесплатной дневной квоты действует предоплаченный баланс по 0,0001 € за запрос или ключ Unlimited за 50 € в месяц, причём все эндпоинты стоят одинаково. Это стоит напрямую сравнить с тем, как ваш текущий провайдер обрабатывает превышение или ограничивает скорость, поскольку от этого может существенно зависеть, как всплеск трафика на самом деле скажется на поведении вашего приложения в моменте.
Перед переходом стоит явно переписать всю логику повторов и отсрочек, которая ссылается на конкретное имя заголовка, код состояния или числовой порог вашего текущего провайдера, а не рассчитывать, что та же логика просто заработает с сигналами лимитов другого провайдера. В большинстве приложений это небольшой фрагмент кода, но именно такие детали незаметно ломаются при миграции, если их сознательно не проверить, ведь неправильно обработанная ошибка лимита запросов обычно усугубляет реальный всплеск трафика, а не смягчает его.