Устранение сбоя erpc worker

Найдите начало сообщения, которое вывел erpc worker, и сделайте то, что сказано в его строке.
Эта страница описывает ERPC CLI v0.1.0-rc.4 — пререлиз.

Сообщения об ошибках и что делать

Сбои воркера используют коды и статусы завершения erpc: см. Ошибки и коды завершения.
Сообщение (его начало)ПричинаЧто делать
<app> cannot start without <SETTING>run.requires называет настройку, которую ничто не задаётerpc worker secret put <SETTING>, задайте её в [vars] или выполните развёртывание с линией, которая её задаёт (--grpc, --unlimited)
your key was added but does not get inSSH-агент не подписал: 1Password заблокирован или его запрос не разрешёнРазблокируйте 1Password, разрешите запрос и снова выполните ту же команду. Она продолжит работу
1Password could not …: authorization timeout1Password запросил одобрение, и никто не ответилРазрешите запрос в 1Password и выполните команду снова
<NAME> is empty; nothing was keptsecret put прочитал пустой стандартный ввод: оболочка не является терминаломЗапустите команду в терминале или передайте значение через конвейер
the keystore is locked, and nobody is at a terminal …Команде без терминала нужен keystore, а сохранённой разблокировки нетerpc worker secret unlock в терминале, затем снова команда
nothing is kept under keystore:… on this machineЗначение было сохранено в keystore другой машиныerpc worker secret put <NAME> --replace здесь; для ключа перенесите весь каталог keystore той машины и его парольную фразу
release <id> failed: …; the server went back to <previous>Новый релиз не прошёл проверку работоспособностиСмотрите erpc worker logs. Предыдущий релиз продолжает работать
… is locked: the trading key has not been handed overСервер перезагрузился, агент упал или был убит и systemd снова запустил его, либо был выполнен stop --lockerpc worker start
port <n> is taken: …Тот же порт проверки работоспособности у другого воркера, который поддерживается запущенным, или этот порт слушает другая программаДайте приложению собственный порт в erpc.toml, затем выполните развёртывание снова
release <id> runs, and its WAF did not come up: …WAF не начал слушать. Чаще всего waf.port занят другой программойerpc worker logs --waf, затем освободите порт или измените waf.port и выполните развёртывание снова. Тем временем приложение работает
waf.<key> … (из check, deploy)Ключ [waf] вне допустимых пределов, или waf.port ниже 1024 либо совпадает с портом run.port, SSH или проверки работоспособностиИсправьте erpc.toml. erpc worker check перечисляет все проблемы сразу
the WAF's port <port> was not opened to … (из firewall allow, deny, sync)Изменение пустило бы кого-то нового по правилам WAF, которые сервер ещё не применяетerpc worker deploy: он устанавливает новые правила, затем открывает порт
<kind> line <id> did not become active in <n> minutesЛиния ещё настраиваетсяВыполните развёртывание снова, чтобы подождать дольше
OUT_OF_STOCKСвободного сервера этого тарифа в этом регионе нетВыполните развёртывание с --region <another>
the start may or may not have gone through: …Запрос ушёл, а ответ не вернулся, или ответ был 5xx, 408 или 429Снова выполните ту же команду: она отправит тот же запрос
this purchase, or another of the account's, is still being made …Первый запрос ещё выполняется, или другая покупка аккаунта удерживает его блокировкуНемного погодя снова выполните ту же команду: она отправит тот же запрос
… changed in 1Password since this command read itДругая машина тем временем записала элемент реестраСнова выполните команду
the shared RPC takes none of the account's API keys from this machine (<n> tried) (из secret put --from-account, erpc rpc call, erpc webhook run)Каждый из ключей аккаунта был отклонён с этой машины: срок действия ключей истёк, у аккаунта нет активного тарифа общего RPC или ключи ограничены другими адресами, например адресом сервераERPC Web Dashboard показывает дату окончания ключа и тариф и создаёт новый ключ. Для ключа, ограниченного адресом сервера: erpc worker secret put ERPC_API_KEY, введя значение вручную или передав его через конвейер
shared: … HTTP 401 (bench)Общий RPC отклонил ключ: нет активного тарифа общего RPC или ключ неверныйПроверьте тариф в панели или задайте ERPC_API_KEY
shared: … HTTP 429 (bench)Ограничение скорости тарифаИспользуйте --interval 150 или больше

Покупка, которую erpc не может поставить на учёт

Если сервер или линия могли быть запущены более ранним запросом, который erpc не смог поставить на учёт, проверьте серверы и линии вашего аккаунта в панели. Возьмите сервер в работу с помощью erpc worker deploy --vps <ID> или завершите то, что не нужно. Затем вручную удалите запись из [env.<name>.starting] в erpc.toml: у erpc нет флага, который её удаляет, и до тех пор та же команда отправляет тот же запрос.

Если сервер мог быть захвачен

  1. Сначала выполните erpc worker backup off, чтобы отозвать ключ доступа сервера к резервным копиям. off не отменяет того, что сервер уже прочитал.
  2. Выведите средства с его торгового ключа и замените его секреты.
  3. Пересоздайте сервер в ERPC Web Dashboard и выполните развёртывание снова.
Если при пересоздании изменился SSH-ключ хоста сервера, erpc отказывается работать с сервером, пока вы не обновите закреплённый ключ. Развёртывание возвращает код, но не состояние приложения, которое может восстановить только резервная копия (Резервное копирование состояния приложения).

Чего erpc никогда не делает

  • Не передаёт ключ, секрет или URL, содержащий один из них, в командной строке.
  • Не записывает торговый ключ или секрет приложения в файл, за одним исключением: свой keystore на вашей машине, где каждый из них зашифрован вашей парольной фразой. На сервере erpc worker backup on оставляет собственные ключи резервного копирования сервера в файле, доступном только root.
  • Не запускает ничего, не показав цену.
  • Не оставляет сервер открытым: брандмауэр действует ещё до первого запуска приложения.
  • Не подключается к серверу, ключ хоста которого не совпадает с закреплённым.
Руководство по воркерам перечисляет все сообщения, включая сообщения WAF.