Развертывания
Узнайте о деплойментах и их жизненном цикле — концепции и лучшие практики для более глубокого понимания.
🗺️ Оркестрация
Запускайте новые серверы за считанные секунды, чтобы соответствовать требованиям по мощности, с нашим облачно-нативным подходом к edge-вычислениям. Мы рассматриваем серверы как скотов, а не питомцев — полностью заменяя неисправные инстансы вместо ручного восстановления каждого из них.
Ваш выбор оркестрации влияет на ваши расходы на девопс, стоимость серверов и масштабируемость.
Свяжитесь в Discord чтобы узнать о гибридных вариантах оркестрации и оптимизации стоимости хостинга.
Чтобы полностью понять все плюсы и минусы, давайте сравним различные методы оркестрации.
Привязка к матчу
Золотой стандарт для современных студий, обеспечивающий самую простую интеграцию с наилучшей рентабельностью.
👍 Преимущества
Лучшая рентабельность — масштабирование в реальном времени для удовлетворения спроса игроков поминутно.
Низкие затраты на девопс благодаря хостингу без региональной привязки: Edgegap автоматизирует 99% задач.
Самый низкий пинг благодаря более чем 615 локациям в публичной облачной инфраструктуре Edgegap.
Самое быстрое масштабирование (burst-способность) в случае неожиданного всплеска трафика.
Высочайший уровень безопасности и предотвращения мошенничества игроков (сервер — авторитет).
Минимальное влияние неожиданного сбоя сервера на игроков — затрагивается только один матч.
👎 Недостатки
Принятие новой ментальной модели оркестрации требует первоначальных усилий по адаптации.
Серверы, работающие более 24 часов, будут автоматически завершены.
🧩 Лучше всего подходит для
Игры, чувствительные к задержке — когда оптимизация сетевого кода не может компенсировать высокий пинг:
шутеры от первого лица, файтинги, VR и XR (виртуальная и расширенная реальность) и т. д.
Игры с верхним лимитом продолжительности матчей по дизайну,
Королевская битва, PvPvE, кооперативные шутеры, MOBA, спортивные игры, ARPG и «проходилки по подземельям» и т. д.
🔎 Обнаруживаемость
Запускайте новые игры, когда собирается достаточное количество игроков Подбор матчей.
Добавляйте игроков, чтобы замещать покинувших существующие матчи через бэкфилл.
Позвольте игрокам просматривать серверы и выбирать из списка с помощью Браузер серверов.
Edgegap автоматически масштабирует все более чем 615 локаций вверх/вниз на основе активности игроков в каждом регионе. Готовьтесь к успеху — бесшовно масштабируйтесь до 14 миллионов одновременных пользователей за 60 минут.
Региональное резервирование
Традиционная модель для постоянных миров с контентом, создаваемым пользователями, и социальных MMO-игр.
👍 Преимущества
Знакомый и понятный, олдскульный подход для ветеранов с боевым опытом.
Высочайший уровень безопасности и предотвращения мошенничества игроков (сервер — авторитет).
Легко предсказуемая стоимость на основе ежемесячного обязательства.
👎 Недостатки
Более высокая стоимость хостинга — в каждом регионе требуется один или несколько простаивающих резервных серверов (burst-ёмкость).
Более высокие затраты на девопс — масштабирование, операции и обслуживание дублируются для каждого региона.
Регионы с меньшей базой игроков испытывают высокий пинг из-за подключения к серверам, находящимся далеко.
🧩 Лучше всего подходит для
Постоянные миры с пользовательским контентом, хранящимся на сервере даже когда игроки офлайн.
MMO, песочницы с базостроением или размещением объектов, extraction-шутеры и т. д.
Игры, терпимые к задержкам — когда серверная авторитетная физика в реальном времени не требуется:
мобильные игры, кооперативные игры, карточные игры (TCG/CCG), пошаговые стратегии и т. д.
Асинхронный мультиплеер, когда сбои сервера имеют минимальное влияние на опыт игрока:
гонки против призраков, набеги на вражескую базу, игры с таймерным строительством/фермерством и т. д.
приложения с тяжёлой инициализацией — когда подготовка серверов занимает минуты.
🔎 Обнаруживаемость
Позвольте игрокам просматривать серверы и выбирать из списка с помощью Браузер серверов.
См. Управляемые кластеры для самохостинга ваших микросервисов и бэкенд-сервисов на Edgegap.
P2P (Peer to Peer)
Перенесите усилия по разработке с выделенных серверов на релейный сетевой код для не соревновательных игр.
Связанные темы: listen-серверы, авторитет хоста-игрока, NAT punch-through.
👍 Преимущества
Низкая стоимость хостинга, требующая только релейных серверов для решения проблем NAT punch-through.
Низкие затраты на девопс — обслуживание требуется только для клиентских сборок и каналов дистрибуции.
Минимальное влияние неожиданного сбоя сервера на игроков — затрагивается только один матч.
Легко реализуется и быстро прототипируется, без необходимости разработки бэкенда.
👎 Недостатки
Увеличенные усилия по разработке P2P-сетевого кода, требующие навыков конкурентного программирования.
Худшие показатели пинга и наибольшая чувствительность к неблагоприятным условиям сети (например, мобильный интернет).
Наименьшая безопасность, уязвимость к атакам «человек посередине» и перехвату сессий.
Риск разрыва сессий при уходе хоста, если не реализована кастомная миграция хоста.
🧩 Лучше всего подходит для
Кооперативные и казуальные игры — когда читерство не портит удовольствие и не ломает игру,
Детские игры, исследовательские игры, приключения и т. д.
🔎 Обнаруживаемость
См. наши Распределённые реле для сервиса, обеспечивающего P2P с лучшей в классе задержкой и безопасностью.
📍 Размещение серверов
Независимо от выбранного метода оркестрации, выбор правильного местоположения сервера для группы игроков критичен для обеспечения наилучшего пинга и оптимального опыта игроков. Узнайте о различных стратегиях размещения серверов и о том, как они влияют на ваших игроков.
Ваша стратегия размещения серверов влияет на опыт игроков, удержание и отзывы о вашей игре.
Edgegap разворачивается в наиболее подходящем местоположении с доступной ёмкостью, для быстрых и низколатентных матчей.

См. Развертывания на анализировать размещение серверов в реальном времени, в масштабе.
Оценка сервера
Стратегия оценки сервера использует запатентованную методологию Edgegap, которая оптимизирует размещение серверов для каждого матча индивидуально. Выполняет ненавязчивую телеметрию для приближённой оценки сетевой близости каждого игрока к нашим локациям серверов и выбора сервера, который обеспечивает лучшее:
отзывчивость — обеспечивает самый низкий средний пинг для всех игроков,
справедливость — обеспечивает сбалансированный и справедливый пинг для всех игроков.
Наш Матчмейкер использует стратегию оценки сервера по умолчанию, чтобы обеспечить наилучший возможный опыт. Чтобы использовать эту стратегию с Deploy APIs, указывайте публичные IP игроков или геокоординаты в вашем запросе на деплой.
Нереспонсивное размещение — сервер находится далеко, высокий пинг для всех игроков:

Несправедливое размещение — неоднородный пинг, один игрок находится в невыгодном положении:

Пример хорошего размещения — отзывчивый и справедливый пинг для всех игроков:

Эта стратегия особенно эффективна для хостинга группы игроков, находящихся далеко друг от друга (Северная Америка против Европы, или западное побережье против восточного), что часто бывает в заранее собранных лобби.
Геолокация
В качестве альтернативы, указывайте широту и долготу игроков или координаты предпочитаемой локации сервера вместо использования автоматизированной телеметрии. Этот подход требует дополнительной реализации гео-поиска на стороне клиента и полностью полагается на решение разработчика игры.
Стратегия геолокации не рекомендуется для Развертывания оркестрации, за исключением приложений с жёсткими регуляторными требованиями к межрегиональным передачам данных или когда IP игрока недоступен.
Чтобы использовать эту стратегию с Deploy APIs, перечислите публичные IP игроков или геокоординаты в вашем запросе на деплой.
Региональная блокировка
Серверы могут размещаться с использованием грубо обобщённого параметра региона, либо:
автоматически выбираемого для игрока на основе их метаданных (база данных аккаунтов игрока), либо
выбранного игроком во время матчмейкинга, что допускает размещение с высокой клиент-серверной задержкой.
Использование этой стратегии в одиночку не рекомендуется, так как это может привести к плохой сетевой производительности.
Использование выбора региона в качестве предфильтра в сочетании с другой стратегией является лучшей альтернативой.
🟢 Качество соединения
Некоторые игры (и некоторые игроки) более чувствительны к задержке или лагам, чем другие. Хотя отчёты игроков — отличный индикатор инцидентов или регрессий в масштабе, игроки могут не обладать глубоким пониманием сетевых концепций и быстро возлагают вину на студии, сетевой код или серверы.
Причина некоторых проблем может быть скрыта от игроков, поэтому сотрудничество студии и провайдера хостинга может быть решающим. Приоритет Edgegap всегда — предоставлять максимально качественный сервис.
Если вы получаете множество жалоб от игроков, испытываете масштабные отключения или повторяющиеся проблемы, свяжитесь с нами немедленно через тикет поддержки на нашей платформе.
Низкая задержка
Задержка игрока — это сочетание задержек, возникающих при передаче данных между:
физическими устройствами — физический сигнал, распространяющийся по топологии интернет-сетей,
хост от хоста — возникающая из-за протокола, транспортных и мер безопасности,
процесс от процесса — возникающая из-за (де)сериализации и обработки данных в клиенте/сервере.
Edgegap снижает физическую задержку, размещая серверы ближе к вашим игрокам для более коротких ответов и меньшего числа сетевых хопов. С локациями у 17 облачных и bare-metal провайдеров вы получаете пинг самого высокого уровня для игроков в любой точке мира.
Покрытие серверов и интернета в мире (не только у Edgegap) ограничено из-за таких факторов, как:
доступность инфраструктуры — качество интернет-соединения в конкретном регионе может быть недостаточным,
естественные факторы — очень сложные серверные стойки требуют в основном стабильной среды.
Высокая доступность
Доступность серверов в различных локациях по всему миру будет меняться со временем, изменяясь несколько раз в течение дня. Edgegap автоматически масштабирует вверх/вниз локации по требованию, учитывая:
всплески трафика — деплойменты, выполненные в течение 15-минутного периода,
требования к vCPU — больше vCPU на деплой увеличивает общий спрос на конкретную локацию,
предложения провайдера — для некоторых удалённых локаций доступно меньше вариантов провайдеров,
наличие машин — в некоторых локациях может быть доступно только 4 vCPU или 8 vCPU машин,
запросы студий для тестирования, обеспечения качества, раннего доступа, закрытых бета-тестов или турниров.
Запросы на деплой всех приложений объединяются для оценки спроса по локациям. По умолчанию всем организациям предоставляется равный приоритет распределения, с возможностью добавить приватные пуулы серверов для корпоративных клиентов, требующих специфического оборудования или локаций.
Пожалуйста, свяжитесь с нами, чтобы спланировать релиз, или если у вас есть какие-либо запросы по доступности локаций.
Решение проблем игроков
Проблемы игроков могут быть вызваны багами на сервере или инцидентами провайдера, но также могут возникать из-за третьих сторон, таких как локальные ISP, игровые сервисы, ошибки в низкоуровневых библиотеках, провайдеры инфраструктуры или другие источники.
При устранении неполадок по жалобам игроков или инцидентам учитывайте факторы:
качество матчмейкинга — игроки должны быть близки друг к другу (в одном регионе) для Развертывания чтобы дать наилучшие результаты:
см. Подбор матчей и Пинг-маяки для наших рекомендаций,
см. Подробный обзор чтобы узнать, как найти логи серверов, связанные с жалобами игроков,
региональные проблемы:
локальные интернет-провайдеры (ISP) могут в данный момент устранять инцидент,
некоторые регионы (например, Китай, Россия) могут иметь ограничения из-за локальных санкций,
уровень кэширования — Edgegap будет отдавать приоритет быстрым деплойментам в кешированных локациях:
максимальное время развертывания — деплойменты могут завершаться неудачей из-за медленного и тяжёлого процесса инициализации:
см. Приложения и версии чтобы увеличить период таймаута,
отложите шаги инициализации до самой необходимости,
проблемы с образом сервера или интеграцией.
Отображайте идентификаторы деплойментов в интерфейсе истории матчей клиента чтобы отслеживать жалобы игроков при отладке.
Уведомляйте пользователей о масштабных багах, временных проблемах и отключениях, чтобы смягчить негативное восприятие.
🔄 Жизненный цикл деплоймента
Деплойменты Edgegap проходят несколько стадий жизненного цикла, обозначаемых статусом деплоймента.
1. Запуск деплоймента
Деплоймент для тестовых целей может быть запущен с помощью:
Unreal Engine — Docker Extension или плагина для проектов Unreal Engine,
Unity — плагина для проектов Unity,
Веб-интерфейс панели управления — простой в использовании веб-интерфейс для тестирования интеграции серверов.
Деплоймент для рабочая производственная среда должна запускаться с помощью:
Подбор матчей — находите других игроков и запускайте серверы по требованию (Развертывания).
Браузер серверов — предварительно прогревайте серверы с длительной инициализацией (Развертывания).
Deploy API — настроенная интеграция сервер-сервер (кастомное масштабирование).
Сохраните request_id (ID деплоймента) и помечайте деплойменты чтобы идентифицировать и устранить проблемы позже.
При тестировании с Deploy APIвы можете переопределить стандартную Dockerfile CMD настраиваемой командой.
2. Развёртывание
После запуска деплоймента наша система выполнит ряд шагов в быстрой последовательности:
Телеметрия — мы измеряем сетевую отзывчивость от доступных дата-центров до каждого игрока,
Деплой — мы резервируем ёмкость и готовимся запустить ваш контейнер сервера,
Загрузка контейнера — мы запускаем контейнер, устанавливаем зависимости и инициализируем,
Постобработка — мы добавляем хранение логов, мониторинг и завершаем деплоймент.
Слишком много запросов 429 — чтобы обеспечить стабильность и предотвратить неожиданные счета, мы ограничиваем скорость запросов для вашей организации до 40 req/s. Свяжитесь с нами чтобы спланировать релизы, оценить трафик при запуске и подготовиться к успеху.
3. Деплоймент готов
Ваш контейнер полностью инициализирован, и ваш сервер сейчас запускается. В течение нескольких секунд до минуты ваш сервер может всё ещё инициализироваться и не отвечать на запросы игроков, пока движок игры (или кастомное рантайм-окружение) не будет полностью готов принимать подключения игроков.
Как только деплоймент станет Готов, повторяйте попытки подключения игрока до успешного результата, или до заранее определённого таймаута клиента.
4. Ошибка деплоймента
Ваш деплоймент в любой момент может перейти в состояние Ошибка по непредвиденным причинам. Это более вероятно при тестировании интеграции или новых сборок сервера.
С деплойментов в состоянии Ошибка оплата не взимается — они автоматически останавливаются через 24 часа.
Шаги по устранению неполадок:
Проверьте статус сервиса Edgegap на нашей странице мониторинга доступности.
Попробуйте протестировать контейнер сервера локально с помощью Docker Desktop, чтобы исключить проблемы Edgegap.
При обращении за помощью, включите ваш ID деплоймента и любые полезные детали чтобы мы могли оперативно расследовать!
5. Деплоймент остановлен
Мы никогда не останавливаем ваши серверы без вашего указания, чтобы не повлиять негативно на опыт ваших игроков. Ваш деплоймент может быть остановлен по следующим причинам:
Самостоятельная остановка через DELETE_URL — деплоймент остановился сам после ухода игроков и окончания матча,
см. Руководства для Unreal Engine и Unity по корректной остановке деплойментов,
Остановка с вашего бэкенда — ваш бэкенд остановил этот деплоймент с помощью Deployments API,
Максимальная длительность игры — выделенное время в вашем Приложения и версии истекло,
Приватные флоты Хост, на котором выполнялся ваш деплоймент, был удалён через запланированное действие.
После остановки деплоймента мы инициируем корректное завершение отправляя SIGTERM сигнал вашему основному процессу, предоставляя короткий период для завершения. После его истечения отправляется SIGKILL
сигнал для остановки деплоймента.
👀 Наблюдаемость
Обнаруживаемость
Позволяйте игровым серверам взаимодействовать со сторонними сервисами и получайте операционные инсайты.После состояния Готов деплойменту присваивается URL (fqdn
) и внешний порт для каждого внутреннего порта. Используйте и Развертывания.
теги деплоймента, чтобы легко помечать ваши деплойменты Исходящий трафик (к клиентам или бэкенду) с ваших игровых серверов никогда не блокируется
и не фильтруется.
Websockets (WS) и Secure Websockets (WSS)
Чтобы использовать websocket-основной сетевой код с Edgegap, у вас есть два варианта:управляемый сертификат
, настраиваемый за 1 минуту без написания кода: Приложения и версии на сконфигурируйте ваш
используйте Websocket (WS) и включите TLS Upgrade,
используйте Edgegap URL для подключения клиентов (например,)
https://5fa53fa00a57.pr.edgegap.net/самостоятельно управляемый сертификат
, настраиваемый за 1 минуту без написания кода: Приложения и версии на , если вы хотите использовать собственный домен:,
используйте Secure Websocket (WSS) настройте собственный поток TLS-сертификатов с пользовательской DNS-записью (например, на).
Состояние сервера может быть утрачено
Внедрённые переменные
Игровым серверам часто требуется дополнительная информация, такая как IP сервера, значения внутренних портов или другое. Внедрение переменных окружения только для чтения — надёжный облачно-агностичный способ передачи параметров. Получайте значения переменных с помощью GetEnvironmentVariable в C# или.
См. GetEnvironmentVariable в C++ и Переменные версии приложения Переменные матчмейкера
в дополнение к переменным деплоймента ниже.
Пользовательские переменные
Определите до 20 пользовательских переменных для каждого деплоймента, каждая содержит до 4 КБ строковых данных.
Избегайте использования зарезервированных имён (ниже), иначе ваши пользовательские переменные будут перезаписаны!
Доступ к важной информации через чтение переменных, внедрённых в ваши серверы Edgegap:
ИдентификаторыARBITRIUM_REQUEST_ID— например,.f68e011bfb01
Уникальный ID деплоймента, также называемый request ID. Используется для получения дополнительной информации.
URL деплоймента всегда имеют формат.
{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_REQUEST_IDARBITRIUM_HOST_ID.alpha-north-america-70364ef8
Уникальный идентификатор машины, хостящей ваш деплоймент, общий для других деплойментов.ARBITRIUM_REQUEST_ID162.254.141.66.ARBITRIUM_PUBLIC_IP
Публичный IP-адрес этого хоста, может использоваться для подключения вместо URL.ARBITRIUM_REQUEST_IDARBITRIUM_DEPLOYMENT_TAGS.tag1,tag2 Теги деплоймента, разделённые запятыми,.
удобны для поиска и фильтрации
Спецификации ресурсовARBITRIUM_REQUEST_ID2000ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY, частота процессора в МГц.ARBITRIUM_REQUEST_ID256ARBITRIUM_DEPLOYMENT_VCPU_UNITS, выделенные единицы vCPU (1024 = 1 vCPU).ARBITRIUM_REQUEST_ID512ARBITRIUM_DEPLOYMENT_MEMORY_MB
, выделенная память в МБ (1024 = 1 ГБ).
Управление жизненным цикломARBITRIUM_REQUEST_IDARBITRIUM_DELETE_URL.https://api.edgegap.com/v1/self/stop/9f511e17/660 Доступно для вызова из деплоймента,.
деплоймент будет корректно остановлен
Требует уникального одноразовогоARBITRIUM_DELETE_TOKENв заголовкеAuthorization
Требует уникального одноразовогоARBITRIUM_REQUEST_ID7df4cd933df87084b34ae80d8abde293.ARBITRIUM_CONTEXT_URLARBITRIUM_REQUEST_IDhttps://api.edgegap.com/v1/context/9170f5211e17/17.Доступно только из деплоймента, возвращает более подробную информацию о деплойменте.
Требует уникального
ARBITRIUM_CONTEXT_TOKENARBITRIUM_DELETE_TOKENв заголовкеAuthorization
ARBITRIUM_CONTEXT_TOKENARBITRIUM_REQUEST_IDdfaf50b9333b9ee07b22ed247e4a17e6.
Обнаруживаемость
ARBITRIUM_PORT_GAMEPORT_INTERNALARBITRIUM_REQUEST_ID7777, внутренний порт для прослушивания сервера.ARBITRIUM_PORT_GAMEPORT_EXTERNALARBITRIUM_REQUEST_ID31504, внешний порт для подключений клиентов.Значения внешних портов рандомизируются для каждого деплоймента в целях безопасности.
ARBITRIUM_PORT_GAMEPORT_PROTOCOLARBITRIUM_REQUEST_IDUDP, протокол транспортного уровня вашего сетевого кода.
Примеры предполагают, что вы назвали ваш порт gameport (по умолчанию). Каждый порт добавляет дополнительный набор очищенных Приложения и версии переменных: @Super Port! ⇒ ARBITRIUM_PORT_SUPER_PORT_INTERNAL .
ARBITRIUM_BEACON_ENABLEDARBITRIUM_REQUEST_IDtrue, если деплоится на приватный флот, запущенный Пинг-маяки.ARBITRIUM_HOST_BEACON_PUBLIC_IPARBITRIUM_REQUEST_ID139.177.198.69, публичный IP ближайшего маячка.ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNALARBITRIUM_REQUEST_ID30199, для измерения пинга по UDP.ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNALARBITRIUM_REQUEST_ID30456, для измерения пинга по TCP.
Структурированная информация (JSON в виде строки)
Переменные окружения хранятся в виде сериализованных JSON, разбирайте их с помощью SDK или собственного метода.
Мониторинг панели управления
Наш Панель управления предоставляет инструменты для мониторинга масштабируемости вашего сервера и помощи в операциях.
Аналитика
Найдите панели аналитики в меню боковой панели в разделе Хостинг серверов и Оркестрация.
🌟 Обновитесь до тарифа «Плати по мере использования» чтобы разблокировать подробные метрики и инсайты производительности сервера:
Общие сведения: отслеживайте релизы с количеством живых серверов по версиям + обзор использования ресурсов,
Информация о CPU: устраняйте проблемы с зависаниями серверов из‑за операций, нагружающих процессор,
Информация о памяти: предупреждайте перезапуски сервера из‑за превышения выделенной памяти,
Сетевые инсайты: обнаруживайте неэффективные сетевые паттерны и оптимизируйте сетевой код.

Карта развертываний
Найдите карту развертываний в странице деталей вашего развертывания на панели управления.
Просматривайте расположение развертывания, доступные локации и предполагаемые местоположения игроков на карте:

Точки балансировки развертывания
Найдите тепловую карту точек балансировки развертывания в странице деталей вашего приложения на панели управления.
Просмотрите тепловую карту точек балансировки развертывания и фильтруйте по Приложения и версии. Точки балансировки — приблизительные места с равной сетевой близостью к каждому игроку в данном развертывании:

Очаги точек балансировки в странных местах (например, Гренландия) указывают на матчмейкинг игроков, находящихся далеко друг от друга. Узнайте о Развертывания и Пинг-маяки чтобы оптимизировать ваш матчмейкинг.
Журналы развертываний
Найдите журналы развертываний в странице деталей вашего развертывания на панели управления.
Журналы развертываний отображают информацию о Развертывания:

Журналы контейнера
Найдите журналы контейнера в странице деталей вашего развертывания на панели управления.
Просматривайте журналы вашего игрового сервера в случае проблем или при отладке:

После остановки развертывания журналы контейнера удаляются. Настройте хранение логов S3 третьей стороны чтобы сохранять журналы.
Метрики контейнера
Найдите метрики контейнера в странице деталей вашего развертывания на панели управления.
Просматривайте метрики контейнера (процессор, память, сеть), чтобы:
выявлять распространённые проблемы с подключением при Развертывания,
обнаруживать неэффективные паттерны реализации, вызывающие всплески использования ресурсов,
определять неэффективное использование ресурсов в конкретных сценариях,
проверять изменения в использовании ресурсов сервером во время оптимизации,
оценивать потребление ресурсов и длительность инициализации сервера при бенчмаркинге.
Исторические метрики отображают средние значения с периодом 1 минута, доступны в бесплатном тарифе.
🌟 Обновитесь до тарифа «Плати по мере использования» чтобы разблокировать точные метрики с интервалом 1 секунда.

Свяжитесь с нами до вашего релиза, чтобы запросить поддержку хостинга для крупных релизов в реальном времени.
Контекст и статус
Дополнительную информацию о развертывании можно получить в формате JSON:
изнутри развертывания (игрового сервера), используя API контекста развертывания,
снаружи развертывания (бэкенд / третья сторона), используя API статуса развертывания.
API контекста (из развертывания) требует токен Context API, тогда как API статуса использует ваш Edgegap токен.
Слишком много запросов 429 - мы ограничиваем частоту запросов для вашей организации на 10 req/s для конечных точек API Context и Status. Используйте Состояние сервера может быть утрачено и Webhook-и для масштабируемого решения.
Фильтрация развертываний
Чтобы быстро искать среди всех развертываний, вы можете использовать нашу панель управления:

Список развертываний через API и применять фильтры с помощью интеграций бэкенда:
ARBITRIUM_DELETE_TOKEN GetEnvironmentVariable в C# nin
[ "7e709a0d8efd", "4ba353100b4b" ]
ARBITRIUM_DELETE_TOKEN GetEnvironmentVariable в C# nin
[ "tagA", "tagB" ]
ARBITRIUM_DELETE_TOKEN GetEnvironmentVariable в C# nin
[ "my-app", "my-other-app" ]
ARBITRIUM_DELETE_TOKEN GetEnvironmentVariable в C# nin
[ "1.0.0", "prod" ]
eq GetEnvironmentVariable в C# neq GetEnvironmentVariable в C#
lt GetEnvironmentVariable в C# lte GetEnvironmentVariable в C#
gt GetEnvironmentVariable в C# gte
5
Каждый атрибут может иметь не более 1 оператора фильтра в одном запросе. См. Справочник API для получения дополнительной информации.
Сортируйте результаты по нескольким полям в порядке, в котором они указаны в запросе:
asc GetEnvironmentVariable в C# desc
asc GetEnvironmentVariable в C# desc
Примеры запросов с фильтрами:
Список Развертываний с ошибкой для устранения неполадок и удаления.
Закодированный URL:
Отформатированный JSON-запрос:
Список Развертывания с устаревшей версией приложения чтобы подтвердить, что релиз завершён.
Закодированный URL:
Отформатированный JSON-запрос:
Не забудьте добавить в заголовке заголовок с вашим Edgegap API токеном в запрос.
Webhook-и и отклики
Получайте простые HTTP-уведомления в вашем бэкенде игры о изменениях в Развертывания указав URL вебхука в вашем запросе API развертывания. Доступно для:
При готовности: контейнер развертывания успешно запущен (после этого сервер начинает инициализацию),
При ошибке: развертывание не удалось запустить и произошла Развертывания ,
При завершении: Развертывания и игровой сервер больше недоступен.
Webhook-и Ready и Error никогда не срабатывают для одного и того же развертывания.
Webhook-и не повторяются, поэтому если ваш бэкенд не обработал запрос из‑за ограничения по скорости или ошибки, вебхук может быть потерян. Используйте вебхуки только для некритических сценариев использования или в целях отладки.
Webhook-и отслеживают жизненный цикл развертывания, но не знают о состоянии инициализации вашей сцены/уровня. Чтобы отслеживать прогресс загрузки вашей сцены/уровня, реализуйте собственный вебхук на вашем игровом сервере.
🚨 Устранение неполадок
При устранении неполадок развертываний:
проверьте, нет ли ошибок в ваших Развертывания и Развертывания,
запустите сервер локально, чтобы исключить ошибки интеграции,
ознакомьтесь с шагами по устранению неполадок на этой странице,
свяжитесь с нами в сообществе Discord и укажите ваш ID развертывания.
См. Развертывания для наших рекомендаций по работе с отзывами сообщества игроков.
Клиенты не могут подключиться к серверу - Время запроса истекло., Запрос превысил время ожидания , ConnectionFailed , или Проверка порта не прошла.
Сначала убедитесь, что деплоймент готов (Ready), и в журнале деплоя нет исключений или ошибок во время выполнения. Если ваш деплоймент остановился, просмотрите логи в нашем Панель управления.
Если вы используете сетевой код Mirror, вам необходимо включить "Автозапуск сервера" выбрано в вашем
NetworkManager, пересоберите, запушьте и задеплойте сервер заново.Если вы используете сетевой код FishNet, вам нужно включить "Запуск на безголовом режиме" в вашем
ServerManager, пересоберите, запушьте и задеплойте сервер заново.Если вы используете Photon Fusion 2 netcode, пожалуйста, убедитесь, что ваш сервер передаёт публичный IP деплоймента, внешний порт и
roomCodeна сервере, а в клиенте используется тот же код комнаты в параметре "NeworkRunner.StartGame" параметрStartGameArgs. ID деплоймента (напримерb63e6003b19f) является отличным выбором, так как он глобально уникален и легко доступен клиенту через Матчмейкер назначение и для Подробный обзор.Далее, пожалуйста, проверьте, что настройка порта в сетевых настройках сборки сервера совпадает с внутренним портом в вашем App version. Вы можете изменить маппинг портов, отредактировав App version без пересборки. Найдите ваш протокол в интеграции сетевого кода.
Пожалуйста, убедитесь, что ваш игровой клиент подключается к внешнему порту показанному на странице деталей деплоймента, это значение всегда будет рандомизировано по соображениям безопасности.
Если вы используете протокол Secure Websocket (WSS) в интеграции сетевого кода, пожалуйста, убедитесь, что ваша App version конфигурация порта для WSS-порта имеет включённый TLS Upgrade.
Вы находитесь в Китае и используете Smart Fleets? Ваше соединение может блокироваться Великой файрволом. Рассмотрите возможность добавления сервера, расположенного в Китае, в ваш флит или использования VPN для подключения.
Мой деплоймент остановился/перезапустился, и я больше не могу получить доступ к его логам.
Если процесс сервера падает из‑за исключения, наша система попытается автоматически перезапустить сервер. Рассмотрите возможность тестирования сервера локально, чтобы выяснить первопричину.
Мы сохраняем логи только на время работы деплоймента; если вы хотите просмотреть логи после остановки деплоймента, пожалуйста, интегрируйте стороннее хранилище логов.
См. Развертывания чтобы обнаружить все причины остановки вашего деплоймента.
Мой деплоймент автоматически остановился через X минут.
Деплойменты Free Tier имеют лимит времени в 60 минут, пожалуйста, рассмотрите возможность апгрейда аккаунта.
Все деплойменты будут завершены через 24 часа работы в соответствии с нашей политикой санитаризации серверов, для обслуживания инфраструктуры и чтобы предотвратить накопление непредвиденных расходов, если деплоймент не был корректно завершён. Для длительно работающих серверов рассмотрите использование Приватные флоты с Сохранение состояния.
См. Развертывания чтобы обнаружить все причины остановки вашего деплоймента.
Мой деплоймент готов, но я не могу подключиться в течение нескольких минут после этого.
После того как деплоймент становится Ready, начинается инициализация игрового движка. Этот процесс может занять от нескольких секунд до минут, и в этот период сервер не принимает подключения игроков.
Рассмотрите оптимизацию инициализации сервера, чтобы сократить это время.
Игровые клиенты должны повторять попытки подключения с интервалом в 1 секунду в течение ограниченного времени (в зависимости от длительности инициализации), после чего они возвращаются в матчмейкинг.
Рассмотрите добавление сцены загрузки, чтобы сервер мог выполнять инициализацию (и travel в случае Unreal Engine) одновременно с клиентами, синхронизируя состояние обоих.
Устройство Meta Quest выдаёт HTTP 0: Невозможно разрешить хост назначения .
При сборке приложений Unity для Android разрешение на доступ в Интернет может быть автоматически удалено из выходного APK-клиента.
Добавьте разрешения обратно (требует пересборки клиента):
Project Settings / OpenXR / ⚙️ Meta Quest Support / Force Remove Internet Permissions (снять галочку).
Player Settings / Internet Access (установить в require).
Что произойдёт, если игрок покинет мой деплоймент?
По умолчанию серверы не отвергают подключения игроков. Аутентификация игроков остаётся на усмотрение разработчиков, так как можно использовать различные методы и провайдеров аутентификации.
Игровые клиенты могут хранить данные подключения локально, чтобы попытаться переподключиться в случае непредвиденного краша клиента.
Чтобы позволить игрокам присоединяться к текущим играм, рассмотрите использование Подробный обзор GetEnvironmentVariable в C# Sessions.
Мой сервер показывает 100% загрузку CPU после того, как стал готов.
Это может не быть проблемой, так как игровые движки часто выполняют интенсивные по CPU операции во время инициализации сервера. Если загрузка CPU не снижается в течение 2–3 минут с момента старта деплоймента, возможно, потребуется оптимизировать сервер или увеличить ресурсы версии приложения.
Снижение частоты тиков может повлиять на использование CPU, так как сервер выполняет меньше операций обмена сообщениями.
Если вы используете сетевой код Mirror, вам необходимо включить "Автозапуск сервера" выбрано в вашем
NetworkManager, пересоберите, запушьте и задеплойте сервер заново.Если вы используете сетевой код FishNet, вам нужно включить "Запуск на безголовом режиме" в вашем
ServerManager, пересоберите, запушьте и задеплойте сервер заново.В Free Tier вам доступно 1.5 vCPU и 3 ГБ памяти (RAM).
Вы можете увеличить выделенные ресурсы при создании новой версии приложения. Вы можете дублировать вашу App version в нашей Панели и при необходимости отрегулировать эти значения без пересборки сервера или образа.
Мой деплоймент перезапускается повторно и показывает ошибку `OOM kill`.
Такое поведение вызвано превышением выделенного объёма памяти. Рассмотрите оптимизацию использования памяти с помощью пулов объектов, сжатия или удаления ненужных объектов в сцене.
Убедитесь, что ваш проект загружает сцену по умолчанию, содержащую ваш
NetworkManagerи что сцена включена в Build Settings Unity.В Free Tier вам доступно 1.5 vCPU и 3 ГБ памяти (RAM).
Вы можете увеличить выделенные ресурсы при создании новой версии приложения. Вы можете дублировать вашу App version в нашей Панели и при необходимости отрегулировать эти значения без пересборки сервера или образа.
Последнее обновление
Это было полезно?

