แก้ไขเมื่อ erpc worker ทำงานล้มเหลว

หาส่วนต้นของข้อความที่ erpc worker แสดง แล้วทำตามที่แถวของข้อความนั้นระบุ
หน้านี้อธิบาย ERPC CLI v0.1.0-rc.4 ซึ่งเป็นเวอร์ชัน pre-release

ข้อความ error และสิ่งที่ต้องทำ

ความล้มเหลวของ worker ใช้รหัสและ exit status ของ erpc: ดู error และ exit code
ข้อความ (ส่วนต้น)สาเหตุสิ่งที่ต้องทำ
<app> cannot start without <SETTING>run.requires ระบุการตั้งค่าที่ไม่มีสิ่งใดกำหนดค่าไว้erpc worker secret put <SETTING> หรือกำหนดค่าใน [vars] หรือ deploy พร้อมสายข้อมูลที่กำหนดค่านั้น (--grpc, --unlimited)
your key was added but does not get inSSH agent ไม่ได้ลงนาม: 1Password ถูกล็อกอยู่ หรือคำขอนั้นไม่ได้รับอนุญาตปลดล็อก 1Password อนุญาตคำขอ แล้วรันคำสั่งเดิมอีกครั้ง คำสั่งจะทำงานต่อจากเดิม
1Password could not …: authorization timeout1Password ขอการอนุมัติแต่ไม่มีใครตอบอนุญาตคำขอใน 1Password แล้วรันอีกครั้ง
<NAME> is empty; nothing was keptsecret put อ่าน standard input ที่ว่างเปล่า: shell ไม่ใช่เทอร์มินัลรันในเทอร์มินัล หรือส่งค่าเข้ามาผ่าน pipe
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>release ใหม่ไม่ผ่าน health checkดู erpc worker logs ส่วน release ก่อนหน้ายังคงทำงานอยู่
… is locked: the trading key has not been handed overเซิร์ฟเวอร์รีบูต เอเจนต์ล้มเหลวหรือถูก kill แล้ว systemd เริ่มเอเจนต์ใหม่ หรือมีการใช้ stop --lockerpc worker start
port <n> is taken: …worker อื่นที่ถูกตั้งให้ทำงานต่อเนื่องใช้พอร์ต health check เดียวกัน หรือมีโปรแกรมอื่นรอรับการเชื่อมต่อบนพอร์ตนั้นกำหนดพอร์ตเฉพาะของแอปใน erpc.toml แล้ว deploy อีกครั้ง
release <id> runs, and its WAF did not come up: …WAF ไม่เริ่มรอรับการเชื่อมต่อ ส่วนใหญ่เป็นเพราะมีโปรแกรมอื่นอยู่บน waf.porterpc worker logs --waf จากนั้นทำให้พอร์ตว่าง หรือเปลี่ยน waf.port แล้ว deploy อีกครั้ง ระหว่างนั้นแอปยังทำงานอยู่
waf.<key> … (จาก check, deploy)key ใน [waf] อยู่นอกขอบเขตที่กำหนด หรือ waf.port ต่ำกว่า 1024 หรือตรงกับพอร์ตของ run.port, SSH หรือ health checkแก้ไข 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สายข้อมูลยังอยู่ระหว่างการตั้งค่าdeploy อีกครั้งเพื่อรอต่อ
OUT_OF_STOCKไม่มีเซิร์ฟเวอร์ของแพ็กเกจนั้นว่างในภูมิภาคนั้นdeploy ด้วย --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เครื่องอื่นเขียน item ของ inventory ในระหว่างนั้นรันคำสั่งอีกครั้ง
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)คีย์ทุกอันของบัญชีถูกปฏิเสธจากเครื่องนี้: คีย์สิ้นสุดอายุแล้ว บัญชีไม่มีแพ็กเกจ shared RPC ที่ใช้งานอยู่ หรือคีย์ถูกจำกัดไว้กับที่อยู่อื่น เช่น ที่อยู่ของเซิร์ฟเวอร์ERPC Web Dashboard แสดงแพ็กเกจและวันสิ้นสุดของคีย์ และใช้สร้างคีย์ใหม่ สำหรับคีย์ที่ถูกจำกัดไว้กับที่อยู่ของเซิร์ฟเวอร์: erpc worker secret put ERPC_API_KEY โดยพิมพ์หรือ pipe ค่าเข้ามา
shared: … HTTP 401 (bench)shared RPC ปฏิเสธคีย์: ไม่มีแพ็กเกจ shared RPC ที่ใช้งานอยู่ หรือคีย์ไม่ถูกต้องตรวจสอบแพ็กเกจในแดชบอร์ด หรือตั้งค่า ERPC_API_KEY
shared: … HTTP 429 (bench)การจำกัดอัตราของแพ็กเกจใช้ --interval 150 ขึ้นไป

การซื้อที่ erpc บันทึกไว้ไม่ได้

เมื่อเซิร์ฟเวอร์หรือสายข้อมูลอาจถูกเริ่มโดยคำขอก่อนหน้า ซึ่ง erpc บันทึกไว้ไม่ได้ ให้ดูเซิร์ฟเวอร์และสายข้อมูลของบัญชีคุณในแดชบอร์ด รับเซิร์ฟเวอร์มาใช้ด้วย erpc worker deploy --vps <ID> หรือยุติสิ่งที่ไม่ต้องการ จากนั้นลบรายการออกจาก [env.<name>.starting] ใน erpc.toml ด้วยตนเอง: erpc ไม่มี flag ที่ลบรายการนั้น และจนกว่าจะลบ คำสั่งเดิมจะส่งคำขอเดิม

หากเซิร์ฟเวอร์อาจถูกยึดการควบคุม

  1. รัน erpc worker backup off ก่อน เพื่อเพิกถอน access key สำหรับการสำรองข้อมูลของเซิร์ฟเวอร์ off ไม่ได้ย้อนกลับสิ่งที่เซิร์ฟเวอร์อ่านไปแล้ว
  2. ย้ายเงินออกจากคีย์เทรดของเซิร์ฟเวอร์ และเปลี่ยน secret ของเซิร์ฟเวอร์ใหม่
  3. Rebuild เซิร์ฟเวอร์จาก ERPC Web Dashboard แล้ว deploy อีกครั้ง
หากการ Rebuild เปลี่ยน SSH host key ของเซิร์ฟเวอร์ erpc จะปฏิเสธเซิร์ฟเวอร์นั้นจนกว่าคุณจะอัปเดตคีย์ที่ pin ไว้ การ deploy นำโค้ดกลับมา แต่ไม่ได้นำ state ของแอปกลับมา ซึ่งมีเพียงการสำรองข้อมูลเท่านั้นที่เรียกคืนได้ (สำรองข้อมูล state ของแอป)

สิ่งที่ erpc ไม่ทำเด็ดขาด

  • ใส่คีย์, secret หรือ URL ที่มีคีย์หรือ secret อยู่ ไว้ในบรรทัดคำสั่ง
  • เขียนคีย์เทรดหรือ secret ของแอปลงไฟล์ โดยมีข้อยกเว้นเดียว คือ keystore ของ erpc บนเครื่องของคุณ ซึ่งแต่ละรายการถูกเข้ารหัสด้วยวลีรหัสผ่านของคุณ บนเซิร์ฟเวอร์ erpc worker backup on จะเก็บคีย์สำหรับการสำรองข้อมูลของเซิร์ฟเวอร์เองไว้ในไฟล์ที่เฉพาะ root เข้าถึงได้
  • เริ่มสิ่งใดโดยไม่แสดงราคา
  • ปล่อยให้เซิร์ฟเวอร์เปิดอยู่: ไฟร์วอลล์มีผลก่อนที่แอปจะเริ่มทำงานครั้งแรก
  • เชื่อมต่อถึงเซิร์ฟเวอร์ที่ host key ไม่ตรงกับคีย์ที่ pin ไว้
คู่มือ worker แสดงรายการข้อความทั้งหมด รวมถึงข้อความของ WAF