Exécuter, surveiller et payer une application avec erpc worker
erpc worker status indique si votre application tourne et ce qu'elle coûte à l'heure. Chaque démarrage affiche d'abord son prix, et erpc worker delete --release-server met fin aux gRPC, Shreds et Unlimited RPC que l'application utilise à l'heure, puis à son serveur horaire.Cette page décrit ERPC CLI
v0.1.0-rc.4, une préversion.Vérifier une application
status indique si l'application est verrouillée ou en cours d'exécution, quelle release, et depuis quand. Lorsque vous êtes connecté, il affiche aussi ce que l'environnement coûte à l'heure, chaque élément avec le prix facturé à votre compte, ainsi que le crédit de votre compte et la durée qu'il couvre. --json contient les mêmes informations sous hourly.charged.Un élément qui ne figure pas parmi les frais du compte est signalé comme n'y figurant pas, et non comme ayant pris fin, car cette liste peut avoir une minute de retard sur un démarrage. Sans session, ou lorsque les frais de votre compte ne peuvent pas être lus,
status indique ce qui est consigné.Piloter l'application
Le
API_TOKEN de l'application est lu ici et parvient au serveur par l'entrée standard, sur aucune ligne de commande et dans aucun journal. Chaque commande worker accepte --env <name> (par défaut default) et --json, à ceci près que secret unlock et secret lock, qui concernent le keystore de cette machine et non une application, n'acceptent pas --env. Lancée depuis n'importe où, une commande trouve son application par le nom sous lequel erpc la connaît ; secret put, secret rm, key import, firewall allow et firewall deny ne prennent l'application que par --dir.Comment fonctionnent les frais horaires
- Chaque démarrage affiche d'abord son prix. Dans un terminal, un démarrage n'a lieu qu'après un oui ; avec
--yes, la ligne de commande qui nomme ce qu'il faut démarrer vaut oui. - Un produit horaire est payé en ERPC Credits, achetés à l'avance, et un démarrage que le crédit ne couvre pas est refusé. Les prix figurent sur la page Tarifs et dans l'ERPC Web Dashboard.
- Un nouveau VPS est consigné dès qu'il est nommé, avant d'être prêt. Le déploiement suivant le reprend au lieu d'en acheter un autre.
- Pour
deploy, un démarrage resté sans réponse est renvoyé, jamais comme un nouveau démarrage. Sa clé de requête reste consignée ([env.<name>.starting]), si bien que relancer la même commande envoie la même requête. Après certaines réponses, elle reste jusqu'à ce que vous la retiriez à la main (Un achat qu'erpc ne peut pas consigner).erpc worker runne consigne rien, si bien que son exécution suivante fait une nouvelle requête. - Déployez un environnement à la fois. Deux déploiements du même environnement lancés ensemble peuvent en acheter deux, ce qui n'est pas pris en charge.
- C'est ce qui est facturé au compte qui détermine si une ligne existe encore. erpc ne met jamais fin à une ligne non facturée à l'heure : mettez-y fin dans le tableau de bord.
Retirer une application
erpc worker delete retire le worker. erpc worker delete --release-server met aussi fin à ses lignes, puis à son serveur horaire. Ce à quoi il n'a pas pu être mis fin reste consigné, et une ligne non facturée à l'heure est nommée, pour que vous y mettiez fin dans le tableau de bord.- Une suppression simple refuse un VPS acheté et jamais joint, puisqu'elle l'oublierait alors qu'il est facturé. Une suppression simple d'un VPS horaire déjà joint le retire du registre alors qu'il est encore facturé, et en avertit.
--forgetne tente pas de joindre un serveur devenu injoignable, et--forget-line <id>retire du registre une ligne à laquelle on a mis fin en dehors d'erpc.
Mesurer la latence RPC depuis le serveur
erpc worker bench chronomètre des appels RPC depuis le serveur de l'environnement : le RPC partagé d'ERPC, son Unlimited RPC, et tout autre, côte à côte. L'agent sur le serveur chronomètre chaque appel, si bien que les chiffres sont ceux qu'obtient l'application.bash
--methodacceptegetSlot,getBlockHeight,getLatestBlockhashougetHealth.--no-sharedexclut le RPC partagé. Une valeur de--urlpeut être l'URL elle-même, une référenceop://…,keychain:…oukeystore:…(vers l'endroit où est conservée une URL contenant une clé ; jamais vers l'entrée de la clé de trading, qui est refusée), ou-(lue depuis l'entrée standard, ou demandée et saisie sans affichage). Plus de six endpoints sont refusés.- Le bench affiche p50, p90, p99, min et max, les échecs avec la première raison, et le nombre de slots de retard de chaque réponse sur la plus récente du même tour.
- Les clés ne parviennent au serveur que par l'entrée standard, et le tableau affiche le schéma, l'hôte et le port.
Sauvegarder l'état de l'application
erpc worker backup on sauvegarde l'état de l'application chaque jour sur ERPC Global Storage, chiffré par restic, à l'heure --at du serveur et dans les 30 minutes qui suivent. Un forfait de stockage est nécessaire (erpc storage buy 5).- Ce qui est sauvegardé, c'est l'état de l'application,
/var/lib/private/erpc-worker-<id>. Les releases ne le sont pas, puisqu'un déploiement les remet en place. Les données Redis et PostgreSQL ne sont pas couvertes. - Le serveur ne peut pas supprimer de snapshots. Il ne détient jamais la session erpc, la clé d'administration du compte ni son mot de passe maître.
- Un serveur compromis peut lire les snapshots de toutes les machines du compte, y compris ceux de cette machine ; conserver après
offla clé du dépôt, que restic ne change jamais ; ajouter des snapshots sous le nom d'une autre machine, vérifiez donc ce que choisitrestore latestensuite ; et remplir le stockage du compte, ce qui arrête les sauvegardes de toutes les machines.erpc worker backup offrévoque d'abord la clé d'accès du serveur, que le serveur réponde ou non. - restic copie les fichiers tels quels pendant que le worker tourne, si bien qu'une base de données peut avoir besoin de son propre dump pour être restaurée de façon cohérente. Une exécution manquée pendant que le serveur était éteint a lieu à son retour.
erpc worker backup off,statusetnowarrêtent la sauvegarde, en rendent compte et la lancent. Les snapshots restent aprèsoff, eterpc backup prune --hostélague les anciens.
Restaurez depuis cette machine, après
erpc backup init sur celle-ci :bash
Plusieurs environnements et machines
- Plusieurs workers sur un même serveur tournent chacun dans leur propre unité, partagent la table du pare-feu du serveur, et chacun n'ouvre que son propre port.
- Une application peut avoir plusieurs environnements (
[env.staging],[env.prod]), chacun avec son serveur et ses lignes. - Un environnement peut conserver les informations de son serveur dans 1Password au lieu de
erpc.toml. Toute machine connectée à ce coffre, avec le dépôt de l'application, peut alors exécuter toutes les commandes ; les référenceskeychain:etkeystore:d'une telle application font l'objet d'un avertissement, puisqu'une autre machine ne peut pas les lire. Un nouvel environnement conserve ses informations dans 1Password lorsqueerpc loginy conserve la session ;deploy --vault <vault-id>désigne un autre coffre, etdeploy --inlineconserve les informations danserpc.toml.






