Executar, acompanhar e pagar uma aplicação com o erpc worker
O
erpc worker status mostra se a sua aplicação está rodando e quanto ela custa por hora. Toda ativação mostra o preço antes, e o erpc worker delete --release-server encerra o gRPC, o Shreds e o Unlimited RPC que a aplicação usa por hora e, depois, o servidor por hora dela.Esta página descreve o ERPC CLI
v0.1.0-rc.4, uma versão de pré-lançamento.Verificar uma aplicação
O
status mostra se a aplicação está bloqueada ou em execução, qual release e desde quando. Quando você está logado, ele também mostra quanto o ambiente custa por hora, cada item com o preço cobrado da sua conta por ele, e o crédito da sua conta com quanto tempo ele dura. O --json traz o mesmo em hourly.charged.Um item que não está entre as cobranças da conta é descrito como fora delas, e não como encerrado, porque essa lista pode estar um minuto atrasada em relação a uma ativação. Sem uma sessão, ou quando as cobranças da sua conta não podem ser lidas, o
status diz o que está registrado.Controlar a aplicação
O
API_TOKEN da aplicação é lido aqui e chega ao servidor pela entrada padrão, sem passar por nenhuma linha de comando nem por nenhum journal. Todo comando do worker aceita --env <name> (padrão default) e --json, exceto secret unlock e secret lock, que tratam do keystore desta máquina e não de uma aplicação, e não aceitam --env. Executado de qualquer lugar, um comando encontra a aplicação pelo nome com que o erpc a conhece; secret put, secret rm, key import, firewall allow e firewall deny só recebem a aplicação por --dir.Como funciona a cobrança por hora
- Toda ativação mostra o preço antes. Em um terminal, uma ativação só acontece depois de um sim; com
--yes, a linha de comando que nomeia o que ativar é o sim. - Um produto por hora é pago com ERPC Credit, comprado antecipadamente, e uma ativação que o crédito não cobre é recusada. Os preços estão em Preços e no ERPC Web Dashboard.
- Uma nova VPS fica registrada assim que é nomeada, antes de ficar pronta. A próxima implantação passa a usá-la em vez de comprar outra.
- No
deploy, uma ativação que não recebeu resposta é enviada de novo, nunca como uma nova. A chave da requisição fica registrada ([env.<name>.starting]), então executar o mesmo comando de novo envia a mesma requisição. Depois de algumas respostas, ela fica lá até você removê-la manualmente (Uma compra que o erpc não consegue registrar). Oerpc worker runnão guarda registro, então a próxima execução dele faz uma nova requisição. - Implante um ambiente de cada vez. Duas implantações do mesmo ambiente iniciadas juntas podem resultar em duas compras, e isso não é suportado.
- O que decide se uma linha ainda existe é o que é cobrado da conta. Uma linha que não é cobrada por hora nunca é encerrada pelo erpc: encerre-a no dashboard.
Remover uma aplicação
O
erpc worker delete remove o worker. O erpc worker delete --release-server também encerra as linhas dele e, depois, o servidor por hora. O que não pôde ser encerrado continua registrado, e uma linha que não é cobrada por hora é indicada pelo nome, para ser encerrada no dashboard.- Um delete simples recusa uma VPS comprada e nunca alcançada, pois a esqueceria enquanto ela é cobrada. Um delete simples de uma VPS por hora já alcançada a tira do registro enquanto ela ainda é cobrada, e avisa disso.
- Com
--forget, o erpc não tenta alcançar um servidor que não pode mais ser alcançado, e--forget-line <id>tira do registro uma linha encerrada fora do erpc.
Medir a latência RPC a partir do servidor
O
erpc worker bench mede o tempo de chamadas RPC a partir do servidor do ambiente: o RPC compartilhado da ERPC, o Unlimited RPC dela e qualquer outro, lado a lado. O agente no servidor mede cada chamada, então os números são o que a aplicação obtém.bash
--methodaceitagetSlot,getBlockHeight,getLatestBlockhashougetHealth.--no-shareddeixa o RPC compartilhado de fora. Um valor de--urlpode ser a própria URL, uma referênciaop://…,keychain:…oukeystore:…(ao lugar onde fica guardada uma URL com uma chave; nunca à entrada da chave de trading, que é recusada), ou-(lido da entrada padrão, ou pedido e digitado sem aparecer na tela). Mais de seis endpoints são recusados.- O bench imprime p50, p90, p99, mínimo e máximo, as falhas com o primeiro motivo, e quantos slots cada resposta estava atrás da mais recente na mesma rodada.
- As chaves chegam ao servidor somente pela entrada padrão, e a tabela mostra esquema, host e porta.
Fazer backup do estado da aplicação
O
erpc worker backup on faz backup do estado da aplicação todos os dias no ERPC Global Storage, criptografado pelo restic, no horário de --at no fuso do servidor e em até 30 minutos depois. É necessário um plano de armazenamento (erpc storage buy 5).- O que entra no backup é o estado da aplicação,
/var/lib/private/erpc-worker-<id>. As releases não entram, já que uma implantação as coloca de volta. Os dados de Redis e PostgreSQL não são cobertos. - O servidor não pode excluir snapshots. Ele nunca guarda a sessão do erpc, a chave de administrador da conta nem a senha mestra dela.
- Um servidor comprometido pode ler os snapshots de todas as máquinas da conta, incluindo os desta máquina; manter a chave do repositório, que o restic nunca muda, depois do
off; adicionar snapshots com o nome de outra máquina, então verifique o querestore latestescolhe depois de um caso assim; e encher o armazenamento da conta, o que interrompe os backups de todas as máquinas. Oerpc worker backup offrevoga primeiro a chave de acesso do servidor, quer o servidor responda, quer não. - O restic copia os arquivos como estão enquanto o worker roda, então um banco de dados pode precisar de um dump próprio para ser restaurado de forma consistente. Uma execução perdida enquanto o servidor estava desligado roda quando ele volta.
erpc worker backup off,statusenowinterrompem o backup, informam sobre ele e o executam. Os snapshots continuam lá depois dooff, e oerpc backup prune --hostreduz os antigos.
Restaure a partir desta máquina, depois de executar
erpc backup init nela:bash
Vários ambientes e máquinas
- Vários workers em um mesmo servidor rodam cada um como uma unidade própria, compartilham a tabela de firewall do servidor, e cada um abre somente a própria porta.
- Uma aplicação pode ter vários ambientes (
[env.staging],[env.prod]), cada um com o próprio servidor e as próprias linhas. - Um ambiente pode guardar os dados do servidor no 1Password em vez do
erpc.toml. Assim, qualquer máquina com login nesse cofre e com o repositório da aplicação pode executar todos os comandos; as referênciaskeychain:ekeystore:nesse tipo de aplicação geram um aviso, já que outra máquina não consegue lê-las. Um novo ambiente guarda os dados no 1Password quando oerpc loginguarda a sessão lá;deploy --vault <vault-id>indica outro cofre, edeploy --inlinemantém os dados noerpc.toml.






