شغّل تطبيقًا وراقبه وادفع مقابله باستخدام erpc worker
يعرض
erpc worker status ما إذا كان تطبيقك يعمل وكم يكلّف بالساعة. كل بدء يعرض سعره أولًا، وerpc worker delete --release-server يُنهي gRPC وShreds وUnlimited RPC التي يستخدمها التطبيق بالساعة، ثم خادمه بالساعة.تصف هذه الصفحة ERPC CLI
v0.1.0-rc.4، وهو إصدار تمهيدي.افحص تطبيقًا
يعرض
status ما إذا كان التطبيق مقفلًا أو قيد التشغيل، وأي إطلاق، ومنذ متى. وعندما تكون مسجّل الدخول، يعرض أيضًا ما تكلّفه البيئة بالساعة، وكل بند مع السعر الذي يُفرض على حسابك مقابله، وERPC Credit الخاص بحسابك مع المدة التي يكفيها. ويحمل --json المعلومات نفسها تحت hourly.charged.البند الذي ليس ضمن رسوم الحساب يُوصف بأنه ليس ضمنها، ولا يُسمّى منتهيًا، لأن تلك القائمة قد تتأخر عن البدء بدقيقة. وبلا جلسة، أو عندما تتعذر قراءة رسوم حسابك، يذكر
status ما هو مُدوَّن.تحكّم في التطبيق
يُقرأ
API_TOKEN الخاص بالتطبيق هنا ويصل إلى الخادم عبر الإدخال القياسي، لا في أي سطر أوامر ولا في أي سجل. يقبل كل أمر worker الخيارين --env <name> (الافتراضي default) و--json، باستثناء secret unlock وsecret lock اللذين يخصّان مخزن المفاتيح على هذا الجهاز لا تطبيقًا، فلا يقبلان --env. وعند تشغيل الأمر من أي مكان، يجد تطبيقه بالاسم الذي يعرفه به erpc؛ أما secret put وsecret rm وkey import وfirewall allow وfirewall deny فلا تحدد التطبيق إلا عبر --dir.كيف تعمل الرسوم بالساعة
- كل بدء يعرض سعره أولًا. في الطرفية، لا يحدث البدء إلا بعد الإجابة بنعم؛ ومع
--yes، يكون سطر الأوامر الذي يسمّي ما سيُبدأ هو تلك الإجابة بنعم. - يُدفع ثمن المنتج بالساعة من ERPC Credit، الذي يُشترى مسبقًا، ويُرفض البدء الذي لا يغطيه ERPC Credit. تجد الأسعار في صفحة الأسعار وفي ERPC Web Dashboard.
- يُدوَّن خادم VPS الجديد بمجرد أن يُسمّى، قبل أن يصبح جاهزًا. ويعتمده النشر التالي بدلًا من شراء خادم آخر.
- في
deploy، يُعاد إرسال البدء الذي لم يتلقَّ ردًا، ولا يُرسَل أبدًا كبدء جديد. يبقى مفتاح طلبه مُدوَّنًا ([env.<name>.starting])، لذا فإن تشغيل الأمر نفسه مرة أخرى يرسل الطلب نفسه. وبعد بعض الردود يبقى حتى تزيله يدويًا (عملية شراء لا يستطيع erpc تدوينها). أماerpc worker runفلا يحتفظ بأي تدوين، لذا يُنشئ تشغيله التالي طلبًا جديدًا. - انشر بيئة واحدة في كل مرة. قد يؤدي نشران للبيئة نفسها بُدئا معًا إلى شراء اثنين، وهذا غير مدعوم.
- ما إذا كان الخط لا يزال موجودًا يحدده ما تُفرض على الحساب رسومه. الخط الذي لا يُفوتَر بالساعة لا يُنهيه erpc أبدًا: أنهِه من لوحة التحكم.
أزل تطبيقًا
يزيل
erpc worker delete الـ worker. ويُنهي erpc worker delete --release-server أيضًا خطوطه، ثم خادمه بالساعة. ما تعذّر إنهاؤه يبقى مُدوَّنًا، ويُذكر اسم الخط الذي لا يُفوتَر بالساعة لتُنهيه من لوحة التحكم.- يرفض الحذف العادي خادم VPS اشتُري ولم يُوصَل إليه قط، لأنه كان سينساه بينما تُفرض عليه الرسوم. أما الحذف العادي لخادم VPS بالساعة سبق الوصول إليه فيحذفه من التدوين بينما لا تزال تُفرض عليه الرسوم، ويحذّر من ذلك.
- مع
--forgetلا يحاول erpc الوصول إلى خادم لم يعد من الممكن الوصول إليه، ويحذف--forget-line <id>من التدوين خطًا أُنهي خارج erpc.
قِس زمن استجابة RPC من الخادم
يقيس
erpc worker bench توقيت استدعاءات RPC من خادم البيئة: RPC المشترك من ERPC، وUnlimited RPC الخاص بها، وأي RPC آخر، جنبًا إلى جنب. يقيس الوكيل على الخادم توقيت كل استدعاء، لذا فإن الأرقام هي ما يحصل عليه التطبيق.bash
- يقبل
--methodالقيمgetSlotأوgetBlockHeightأوgetLatestBlockhashأوgetHealth. - يستبعد
--no-sharedالـ RPC المشترك. يمكن أن تكون قيمة--urlعنوان URL نفسه، أو مرجعop://…أوkeychain:…أوkeystore:…(يشير إلى المكان الذي يُحفظ فيه عنوان URL يتضمن مفتاحًا؛ ولا يشير أبدًا إلى مُدخل مفتاح التداول، فذلك يُرفض)، أو-(تُقرأ من الإدخال القياسي، أو تُطلب منك وتكتبها دون أن تظهر). ويُرفض أكثر من ست نقاط نهاية. - يطبع bench قيم p50 وp90 وp99 والحد الأدنى والحد الأقصى، وحالات الفشل مع السبب الأول، وعدد السلوتات التي تأخر بها كل رد عن الأحدث في الجولة نفسها.
- تصل المفاتيح إلى الخادم عبر الإدخال القياسي فقط، ويعرض الجدول المخطط والمضيف والمنفذ.
النسخ الاحتياطي لبيانات حالة التطبيق
ينسخ
erpc worker backup on بيانات حالة التطبيق احتياطيًا كل يوم إلى ERPC Global Storage، مشفّرة بواسطة restic، عند --at بتوقيت الخادم وخلال 30 دقيقة بعده. يلزم وجود خطة تخزين (erpc storage buy 5).- ما يُنسخ احتياطيًا هو بيانات حالة التطبيق،
/var/lib/private/erpc-worker-<id>. أما الإطلاقات فلا، لأن النشر يعيدها. ولا تشمل التغطية بيانات Redis وPostgreSQL. - لا يستطيع الخادم حذف اللقطات. فهو لا يحمل أبدًا جلسة erpc، ولا مفتاح المسؤول للحساب، ولا كلمة المرور الرئيسية له.
- الخادم الذي استُولي عليه يستطيع أن يقرأ لقطات كل جهاز في الحساب، بما فيها لقطات هذا الجهاز؛ وأن يحتفظ بمفتاح المستودع، الذي لا يغيّره restic أبدًا، بعد
off؛ وأن يضيف لقطات باسم جهاز آخر، لذا تحقّق مما يختارهrestore latestبعد استيلاء كهذا؛ وأن يملأ مساحة التخزين في الحساب، مما يوقف النسخ الاحتياطي لكل الأجهزة. يُلغيerpc worker backup offمفتاح الوصول الخاص بالخادم أولًا، سواء أجاب الخادم أم لا. - ينسخ restic الملفات كما هي أثناء عمل الـ worker، لذا قد تحتاج قاعدة البيانات إلى نسخة تفريغ خاصة بها لتُستعاد بحالة متسقة. والتشغيل الذي فات أثناء إيقاف الخادم يُنفَّذ عند عودته.
- يوقف
erpc worker backup offوstatusوnowالنسخ الاحتياطي ويبلّغ عنه ويشغّله، على الترتيب. تبقى اللقطات بعدoff، ويقلّلerpc backup prune --hostعدد اللقطات القديمة.
استعِد من هذا الجهاز، بعد تشغيل
erpc backup init عليه:bash
عدة بيئات وأجهزة
- عدة workers على خادم واحد يعمل كل منها كوحدة مستقلة، وتتشارك جدول جدار الحماية في الخادم، ولا يفتح كل منها إلا منفذه.
- يمكن أن يكون للتطبيق الواحد عدة بيئات (
[env.staging]،[env.prod])، لكل منها خادمها وخطوطها. - يمكن للبيئة أن تحفظ معلومات خادمها في 1Password بدلًا من
erpc.toml. عندئذ يستطيع أي جهاز مسجّل الدخول إلى تلك الخزنة، ومعه مستودع التطبيق، تشغيل كل أمر؛ ويُحذَّر من مراجعkeychain:وkeystore:في تطبيق كهذا، لأن جهازًا آخر لا يستطيع قراءتها. تحفظ البيئة الجديدة معلوماتها في 1Password عندما يحفظerpc loginالجلسة هناك؛ ويسمّيdeploy --vault <vault-id>خزنة أخرى، ويحفظdeploy --inlineالمعلومات فيerpc.toml.






