Modal
เชื่อมต่อ
เชื่อมต่อ Modal จากเทอร์มินัล ส่ง --help เพื่อดูแฟล็กที่ Modal รับ รวมถึง --no-browser สำหรับสภาพแวดล้อมที่ไม่มีหน้าจอ
polylane cloud connect --provider modaltoken ID และ token secret จากการตั้งค่า Modal ของคุณ
Modal เชื่อมต่อด้วยโทเค็นที่สร้างในการตั้งค่า Modal ของคุณ โทเค็น Modal หนึ่งอันชี้ไปยัง workspace เดียวพอดี หนึ่งโทเค็นจึงเชื่อมต่อหนึ่ง workspace โทเค็นถูกเข้ารหัสก่อนจัดเก็บ และเอเจนต์ไม่มีทางเห็นมัน
- เปิด Modal ไปที่ Settings → Tokens
- คลิก New token และคัดลอกทั้ง token ID (เริ่มด้วย
ak-) และ token secret (เริ่มด้วยas-) - วางทั้งสองค่าใน Polylane
- Polylane ตรวจสอบคู่ค่านี้และเริ่มซิงก์
Polylane ค้นหา environment ของคุณ และภายในแต่ละ environment แอป ฟังก์ชันรวมถึง web endpoint, sandbox ที่กำลังรัน volume, secret คิว และ dict ของคุณ secret ถูกแมปตามชื่อเท่านั้น: Modal ไม่มีทางเปิดเผยค่าของ secret
Modal ไม่มีตัวเลือกโทเค็นแบบอ่านอย่างเดียว โทเค็นจึงมีสิทธิ์ของบัญชีที่สร้างมัน Polylane อ่านจาก Modal ระหว่างซิงก์เท่านั้น
การแก้ปัญหา
ข้อผิดพลาด "Invalid token"
- ต้องมีทั้ง token ID และ token secret อย่างใดอย่างหนึ่งเพียงลำพังยืนยันตัวตนไม่ได้
- ตรวจว่าโทเค็นไม่ได้ถูกเพิกถอนในการตั้งค่าของ Modal
- ยืนยันว่าคุณคัดลอกค่าทั้งหมด รวมคำนำหน้า
ak-และas-
ทรัพยากรหายไป
- ฟังก์ชันถูกค้นพบผ่านแอปของมัน แอปที่ไม่เคย deploy จึงไม่มีฟังก์ชันให้แสดง
- sandbox ที่จบแล้วถูกข้าม: แสดงเฉพาะที่กำลังรัน
- สั่งซิงก์ด้วยตัวเองเพื่อรีเฟรชเร็วกว่ารอบถัดไปตามกำหนด
เมตริกและต้นทุน
- แอปมีสองแผนภูมิ: จำนวนบรรทัด log ของ stderr ต่อ bucket และค่าใช้จ่ายที่วัดได้ต่อชั่วโมง Modal รายงานเพียง gauge ณ ขณะนั้นสำหรับสิ่งอื่นทั้งหมด ฟังก์ชัน sandbox และ volume จึงไม่มีแผนภูมิของตัวเอง
- จำนวน stderr คือบรรทัด log ไม่ใช่ความล้มเหลว: traceback ของ Python หนึ่งครั้งคือหลายบรรทัด
- Modal เก็บ log ไว้ 24 ชั่วโมง แผนภูมิจึงไม่มีทางย้อนกลับไปไกลกว่านั้น
- ค่าใช้จ่ายถูกระบุต่อแอป และ Modal สรุปชั่วโมงหนึ่งเมื่อชั่วโมงนั้นจบลงแล้วเท่านั้น ชั่วโมงล่าสุดจึงอ่านได้ต่ำจนกว่าจะนิ่ง
เชื่อมต่อ Modal จากงาน CI หรือสภาพแวดล้อมอื่นใดที่ไม่มีเบราว์เซอร์
การเชื่อมต่อ Modal ไม่ต้องใช้เบราว์เซอร์: endpoint เดียวกับที่คอนโซลเรียกอยู่ในงาน CI ได้ POST ที่ยืนยันตัวตนแล้วครั้งเดียวสร้างการเชื่อมต่อและเริ่มการซิงก์ครั้งแรก
สิ่งที่ต้องมีก่อน
- คีย์ API ของ Polylane ที่มีสโคป
cloud_accounts:writeและcloud_accounts:readดูคีย์ API และ OAuth - ID ของ workspace ของคุณ ซึ่งเริ่มด้วย
ws_อ่านจากGET /v1/workspacesด้วยคีย์เดียวกัน - คู่โทเค็นของ Modal จาก Settings → Tokens: token ID (เริ่มด้วย
ak-) และ token secret (เริ่มด้วยas-)
สร้างการเชื่อมต่อ
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "modal",
"workspaceId": "ws_0abc123",
"tokenId": "ak-...",
"tokenSecret": "as-..."
}'
โทเค็นชี้ไปยัง workspace ของ Modal เดียวพอดี การเรียกครั้งเดียวจึงเชื่อมต่อหนึ่ง workspace
การตอบกลับแสดงรายการสิ่งที่เชื่อมต่อแล้ว พร้อมการซิงก์ครั้งแรกที่รันอยู่ ตัดให้เหลือสองฟิลด์ที่ขั้นตอนที่เหลืออ่าน:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
บัญชีที่เชื่อมต่ออยู่แล้วจะไปอยู่ใน failures แทน accounts การเรียกซ้ำจึงไม่มีทางทำให้การเชื่อมต่อซ้ำ
รอการซิงก์ครั้งแรก
poll แต่ละบัญชีที่คืนมาด้วย id ของมันจนกว่า status จะถึง ready (new เมื่อลงทะเบียน syncing ขณะทรัพยากรไหลเข้า):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
ให้ loop มีเส้นตายเพื่อให้การเชื่อมต่อที่ล้มเหลวทำให้งานล้มเหลวแทนที่จะค้าง เมื่อบัญชี ready แล้ว ทรัพยากรของมันอยู่ในโทโพโลยีและ Polylane เริ่มการตรวจสอบครั้งแรกแล้ว
ยกเลิกการเชื่อมต่อจาก API
การลบการเชื่อมต่อหยุดทุกการซิงก์และการตรวจสอบ และลบข้อมูลรับรองที่ Polylane เก็บไว้ การเรียกต้องใช้สโคป cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
จากนั้นเพิกถอนข้อมูลรับรอง Modal ฝั่งผู้ให้บริการ ตามที่อธิบายใต้ Disconnect ด้านล่าง
ยกเลิกการเชื่อมต่อ
การยกเลิกการเชื่อมต่อหยุดทุกการซิงก์และการตรวจสอบ และลบข้อมูลรับรองที่ Polylane เก็บไว้ ทุกสิ่งที่ Polylane ตั้งค่าไว้ใน Modal ถูกลบด้วยเช่นกัน ไม่มีอะไรหลงเหลือ
polylane cloud disconnect <id>เครื่องมือ
5การดำเนินการที่เอเจนต์ทำได้ในเธรด
ทรัพยากรที่รองรับ
10ประเภททรัพยากรที่ปรากฏในกราฟโครงสร้างพื้นฐานของคุณ