รัน ติดตาม และชำระค่าแอปด้วย erpc worker
erpc worker status แสดงว่าแอปของคุณทำงานอยู่หรือไม่ และมีค่าใช้จ่ายรายชั่วโมงเท่าใด การเริ่มทุกครั้งจะแสดงราคาก่อน และ erpc worker delete --release-server จะยุติ gRPC, Shreds และ Unlimited RPC ที่แอปใช้แบบรายชั่วโมง แล้วจึงยุติเซิร์ฟเวอร์รายชั่วโมงของแอปหน้านี้อธิบาย ERPC CLI
v0.1.0-rc.4 ซึ่งเป็นเวอร์ชัน pre-releaseตรวจสอบแอป
status แสดงว่าแอปถูกล็อกหรือทำงานอยู่ เป็น release ใด และตั้งแต่เมื่อใด เมื่อคุณลงชื่อเข้าใช้อยู่ คำสั่งนี้ยังแสดงค่าใช้จ่ายรายชั่วโมงของสภาพแวดล้อมนั้น โดยแต่ละรายการแสดงราคาที่บัญชีของคุณถูกเรียกเก็บ และแสดง credit ของบัญชีคุณพร้อมระยะเวลาที่ credit จะใช้ได้ --json มีข้อมูลเดียวกันภายใต้ hourly.chargedรายการที่ไม่อยู่ในสิ่งที่บัญชีถูกเรียกเก็บเงิน จะถูกระบุว่าไม่อยู่ในนั้น และไม่ถูกเรียกว่ายุติแล้ว เพราะรายการเรียกเก็บนั้นอาจตามหลังการเริ่มได้หนึ่งนาที หากไม่มีเซสชัน หรือเมื่ออ่านรายการเรียกเก็บของบัญชีไม่ได้
status จะแสดงสิ่งที่อยู่ในบันทึกควบคุมแอป
API_TOKEN ของแอปถูกอ่านที่นี่ และส่งถึงเซิร์ฟเวอร์ผ่าน standard input โดยไม่อยู่ในบรรทัดคำสั่งใด และไม่อยู่ใน journal ใด คำสั่ง worker ทุกคำสั่งรับ --env <name> (ค่าเริ่มต้น default) และ --json ยกเว้น secret unlock และ secret lock ซึ่งเกี่ยวกับ keystore ของเครื่องนี้ ไม่ใช่แอป จึงไม่รับ --env ไม่ว่าจะรันจากที่ใด คำสั่งจะหาแอปจากชื่อที่ erpc รู้จักแอปนั้น ส่วน secret put, secret rm, key import, firewall allow และ firewall deny ระบุแอปด้วย --dir เท่านั้นการเรียกเก็บเงินรายชั่วโมงทำงานอย่างไร
- การเริ่มทุกครั้งจะแสดงราคาก่อน ในเทอร์มินัล การเริ่มจะเกิดขึ้นหลังจากตอบ yes เท่านั้น ส่วนเมื่อใช้
--yesบรรทัดคำสั่งที่ระบุสิ่งที่จะเริ่มถือเป็นการตอบ yes - บริการรายชั่วโมงชำระจาก ERPC Credit ซึ่งซื้อไว้ล่วงหน้า และการเริ่มที่ credit ไม่พอครอบคลุมจะถูกปฏิเสธ ดูราคาได้ที่ ราคา และ ERPC Web Dashboard
- VPS ใหม่จะอยู่ในบันทึกทันทีที่ได้รับชื่อ ก่อนที่จะพร้อมใช้งาน การ deploy ครั้งถัดไปจะรับ VPS นั้นมาใช้แทนการซื้อเครื่องใหม่
- สำหรับ
deployการเริ่มที่ไม่ได้รับคำตอบจะถูกส่งซ้ำ และไม่ถูกส่งเป็นการเริ่มใหม่เลย request key ของการเริ่มนั้นจะอยู่ในบันทึก ([env.<name>.starting]) การรันคำสั่งเดิมอีกครั้งจึงส่งคำขอเดิม หลังได้รับคำตอบบางแบบ request key จะคงอยู่จนกว่าคุณจะลบด้วยตนเอง (การซื้อที่ erpc บันทึกไว้ไม่ได้)erpc worker runไม่เก็บบันทึก การรันครั้งถัดไปจึงสร้างคำขอใหม่ - โปรด deploy ทีละสภาพแวดล้อม การ deploy สภาพแวดล้อมเดียวกันสองครั้งที่เริ่มพร้อมกันอาจซื้อเป็นสองรายการ และไม่รองรับกรณีนี้
- สายข้อมูลยังคงอยู่หรือไม่ ตัดสินจากสิ่งที่บัญชีถูกเรียกเก็บเงิน erpc จะไม่ยุติสายข้อมูลที่ไม่ได้เรียกเก็บเงินรายชั่วโมงเลย โปรดยุติสายข้อมูลนั้นในแดชบอร์ด
ลบแอป
erpc worker delete จะลบ worker ส่วน erpc worker delete --release-server จะยุติสายข้อมูลของ worker ด้วย แล้วจึงยุติเซิร์ฟเวอร์รายชั่วโมง สิ่งที่ยุติไม่ได้จะยังคงอยู่ในบันทึก และสายข้อมูลที่ไม่ได้เรียกเก็บเงินรายชั่วโมงจะถูกระบุชื่อไว้ เพื่อให้คุณยุติในแดชบอร์ด- การ delete แบบธรรมดาจะปฏิเสธ VPS ที่ซื้อแล้วแต่ไม่เคยเชื่อมต่อถึงได้ เพราะจะทำให้ลืม VPS นั้นไปทั้งที่ยังถูกเรียกเก็บเงินอยู่ ส่วนการ delete แบบธรรมดาของ VPS รายชั่วโมงที่เชื่อมต่อถึงแล้ว จะนำ VPS นั้นออกจากบันทึกทั้งที่ยังถูกเรียกเก็บเงินอยู่ และจะเตือนเรื่องนี้
--forgetจะปล่อยเซิร์ฟเวอร์ที่เชื่อมต่อถึงไม่ได้อีกต่อไปไว้โดยไม่เชื่อมต่อถึง และ--forget-line <id>จะนำสายข้อมูลที่ถูกยุตินอก erpc ออกจากบันทึก
วัดเวลาแฝงของ RPC จากเซิร์ฟเวอร์
erpc worker bench จับเวลาการเรียก RPC จากเซิร์ฟเวอร์ของสภาพแวดล้อม โดยเทียบ shared RPC ของ ERPC, Unlimited RPC ของ ERPC และ RPC อื่นใดก็ได้แบบเคียงข้างกัน เอเจนต์บนเซิร์ฟเวอร์เป็นผู้จับเวลาการเรียกแต่ละครั้ง ตัวเลขจึงเป็นสิ่งที่แอปได้รับbash
--methodรับgetSlot,getBlockHeight,getLatestBlockhashหรือgetHealth--no-sharedจะไม่รวม shared RPC ค่าของ--urlอาจเป็น URL โดยตรง การอ้างอิงแบบop://…,keychain:…หรือkeystore:…(ชี้ไปยังตำแหน่งที่เก็บ URL ที่มีคีย์อยู่ข้างใน แต่ไม่ชี้ไปยังรายการของคีย์เทรดเด็ดขาด ซึ่งจะถูกปฏิเสธ) หรือ-(อ่านจาก standard input หรือถามให้พิมพ์แบบไม่แสดงบนจอ) การระบุ endpoint มากกว่าหกรายการจะถูกปฏิเสธ- bench จะแสดง p50, p90, p99, min และ max จำนวนครั้งที่ล้มเหลวพร้อมสาเหตุแรก และจำนวน slot ที่แต่ละคำตอบตามหลังคำตอบที่ใหม่ที่สุดในรอบเดียวกัน
- คีย์ส่งถึงเซิร์ฟเวอร์ผ่าน standard input เท่านั้น และตารางจะแสดง scheme, โฮสต์ และพอร์ต
สำรองข้อมูล state ของแอป
erpc worker backup on จะสำรองข้อมูล state ของแอปทุกวันไปยัง ERPC Global Storage โดยเข้ารหัสด้วย restic ที่เวลา --at ตามเวลาของเซิร์ฟเวอร์ และภายใน 30 นาทีหลังจากนั้น ต้องมีแพ็กเกจพื้นที่จัดเก็บ (erpc storage buy 5)- สิ่งที่ถูกสำรองข้อมูล คือ state ของแอป
/var/lib/private/erpc-worker-<id>ส่วน release ไม่ถูกสำรองข้อมูล เพราะการ deploy จะนำกลับมาให้ ข้อมูลของ Redis และ PostgreSQL ไม่ได้รวมอยู่ด้วย - เซิร์ฟเวอร์ลบ snapshot ไม่ได้ เซิร์ฟเวอร์ไม่ถือเซสชันของ erpc, admin key ของบัญชี หรือรหัสผ่านหลักของบัญชีไว้เลย
- เซิร์ฟเวอร์ที่ถูกยึดการควบคุมสามารถอ่าน snapshot ของทุกเครื่องในบัญชีได้ รวมถึงของเครื่องนี้ เก็บคีย์ของ repository ซึ่ง restic ไม่เปลี่ยนเลย ไว้ได้หลัง
offเพิ่ม snapshot ภายใต้ชื่อของเครื่องอื่นได้ (หลังเกิดเหตุเช่นนั้น โปรดตรวจสอบว่าrestore latestเลือก snapshot ใด) และใช้พื้นที่จัดเก็บของบัญชีจนเต็มได้ ซึ่งจะทำให้การสำรองข้อมูลของทุกเครื่องหยุดลงerpc worker backup offจะเพิกถอน access key ของเซิร์ฟเวอร์ก่อน ไม่ว่าเซิร์ฟเวอร์จะตอบหรือไม่ - restic คัดลอกไฟล์ตามสภาพที่เป็นอยู่ขณะที่ worker ทำงาน ฐานข้อมูลจึงอาจต้องมี dump ของตัวเองเพื่อให้เรียกคืนได้อย่างสอดคล้องกัน การรันที่พลาดไประหว่างที่เซิร์ฟเวอร์ปิดอยู่จะรันเมื่อเซิร์ฟเวอร์กลับมา
erpc worker backup off,statusและnowใช้หยุด รายงาน และรันการสำรองข้อมูล snapshot จะยังคงอยู่หลังoffและerpc backup prune --hostจะลดจำนวน snapshot เก่าลง
เรียกคืนจากเครื่องนี้ หลังจากรัน
erpc backup init บนเครื่องนี้แล้ว:bash
หลายสภาพแวดล้อมและหลายเครื่อง
- worker หลายตัวบนเซิร์ฟเวอร์เดียวกันจะรันเป็น unit ของตัวเองแยกกัน ใช้ตารางไฟร์วอลล์ของเซิร์ฟเวอร์ร่วมกัน และแต่ละตัวเปิดเฉพาะพอร์ตของตัวเอง
- แอปหนึ่งแอปมีได้หลายสภาพแวดล้อม (
[env.staging],[env.prod]) แต่ละสภาพแวดล้อมมีเซิร์ฟเวอร์และสายข้อมูลของตัวเอง - สภาพแวดล้อมสามารถเก็บข้อมูลของเซิร์ฟเวอร์ไว้ใน 1Password แทน
erpc.tomlได้ ในกรณีนั้น เครื่องใดก็ตามที่ลงชื่อเข้าใช้ vault นั้นและมี repository ของแอป จะรันได้ทุกคำสั่ง ส่วนการอ้างอิงkeychain:และkeystore:ในแอปเช่นนี้จะถูกเตือน เพราะเครื่องอื่นอ่านไม่ได้ สภาพแวดล้อมใหม่จะเก็บข้อมูลไว้ใน 1Password เมื่อerpc loginเก็บเซสชันไว้ที่นั่นdeploy --vault <vault-id>ใช้ระบุ vault อื่น และdeploy --inlineจะเก็บข้อมูลไว้ในerpc.toml






