Лимиты и квоты
Цифры, которые вам понадобятся перед разработкой функции, и известные пробелы текущей платформы.
1. Функция
| Лимит | Ценить | Откуда это взялось |
|---|---|---|
| Имя | От 1 до 64 символов среди a-z, A-Z, 0-9, _, -. | Принудительно при развертывании |
| Размер источника | 20 МБ | Принудительно при развертывании |
| Время выполнения | deno (TypeScript или JavaScript) и wasm | |
| Память | От 16 до 1024 МБ, по умолчанию 128 | permissions.memory_mb |
| Продолжительность | от 1 до 300 с, по умолчанию 30 | permissions.timeout_secs |
| Исходящая сеть | Открыта по умолчанию | permissions.allow_net: если список не пуст, доступны только перечисленные хосты |
Значение, выходящее за пределы, отклоняется с помощью 400; он никогда не зажимается бесшумно. Реальный ответ на timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
Изменение разрешений без повторного развертывания:
Меняются только поля, которые вы отправляете.
2. Звонок
| Лимит | Ценить | Источник |
|---|---|---|
| Тело запроса | О 256 КиБ | Измерено: 260 КБ прошло успешно, 300 КБ не удалось с 503 |
| Тело ответа | О 256 КиБ | Измерено: прошло 250 КБ; 300 КБ ничего не вернули в течение 50 с. |
| Состояние между вызовами | Никто | Каждый вызов выполняется в новом изолированном рабочем сервере V8. |
| Регионы | Один | Нет выбора региона |
Сообщение, которое пересекает платформу, ограничено 1 МБ, и каждый байт тела запроса учитывается четыре раза, поэтому тело размером более 256 КиБ отклоняется с помощью 503 SERVICE_UNAVAILABLE. SDK сообщает об этом как FunctionsRelayError, что вводит в заблуждение: повторная попытка не поможет. В нашем тесте ответ больше того же размера вообще не был получен. Сохраняйте запросы и ответы размером менее 250 КБ и отправляйте большие данные через хранилище.
3. Ставки и плановые квоты
Частота вызовов на IP-адрес клиента:
| Профиль | Ценить |
|---|---|
| Лопаться | 15 звонков |
| устойчивый | 1 звонок в секунду |
В реальной серии из 30 быстрых вызовов 15 вернули 200 и 15 вернули 429. 429 содержит заголовки x-ratelimit-* и retry-after, а SDK отображает задержку как error.retryAfter.
Ежемесячные квоты на план из таблицы планов платформы:
| План | Вызовы | Общая продолжительность |
|---|---|---|
| Бесплатно | 100,000 | 6 000 000 мс (100 мин) |
| Про | 1,000,000 | 60 000 000 мс (1 000 мин) |
| Команда | 10,000,000 | 600 000 000 мс (10 000 мин) |
| Предприятие | 100,000,000 | 6 000 000 000 мс (100 000 мин) |
В бесплатном плане ограничение жесткое: вызов за его пределами отклоняется с помощью 403 QUOTA_EXCEEDED. В платных планах эта таблица представляет собой ежемесячное пособие, а то, что происходит за его пределами, зависит от настроек превышения вашей подписки. Вызов засчитывается после того, как ваша функция ответила, независимо от ее статуса. Вызов, который завершился неудачей до ответа функции, не учитывается. Задания и запуск cron также считаются вызовами.
4. Задания, cron и оповещения
| Лимит | Ценить |
|---|---|
| Попытки работы | 3 по умолчанию, устанавливается для каждого задания с помощью maxAttempts |
| Задержка между попытками | 5 с, фиксированный |
| Параллельные задания на экземпляр службы | 8 по умолчанию |
| Текущая аренда | 450 с, затем задание восстанавливается |
| Выполненные работы сохраняются | 14 дней по умолчанию |
Страница listJobs | от 1 до 500, по умолчанию 50 |
| Расписание Крон | 5 или 6 полей, UTC, без псевдонимов |
| Проверка оповещений | Каждые 60 с |
Эти значения задания являются настройками службы: JOB_MAX_RETRIES, JOB_RETRY_DELAY_SECS, WORKER_CONCURRENCY, JOB_RUNNING_LEASE_SECS и JOB_RETENTION_DAYS. Узнайте у оператора платформы о ценностях управляемого развертывания.
5. Известные пробелы
- Нет доступа к собственным журналам функции. То, что функция записывает с помощью
console.logилиconsole.error, остается в журналах среды выполнения, которые может прочитать только оператор платформы.aura functions logsпоказывает запросы (метод, путь, статус, продолжительность, идентификатор запроса), а не сам вывод. Верните необходимую информацию в ответ или отправьте ее в свою собственную службу регистрации. - Внутри функции нет идентификатора запроса. Идентификатор вызова не пересылается в функцию.
- Никаких версий и отката. При развертывании код заменяется. Сохраните предыдущую версию в своем репозитории.
- Нет потоковой передачи. Весь ответ буферизуется до того, как он достигнет SDK.
- Пустой
allow_netничего не ограничивает. Сеть открыта по умолчанию; перечислите свои хосты, чтобы её ограничить. - Локальная эмуляция является частичной.
aura functions serveзапускает ваш файл с помощью Deno, но не воспроизводит маршрут платформы, заголовки или ограничения.