Trigger.dev
เชื่อมต่อ
เชื่อมต่อ Trigger.dev จากเทอร์มินัล ส่ง --help เพื่อดูแฟล็กที่ Trigger.dev รับ รวมถึง --no-browser สำหรับสภาพแวดล้อมที่ไม่มีหน้าจอ
polylane cloud connect --provider triggerdevคีย์ลับของ environment ที่สร้างด้วยพรีเซ็ต "No restrictions" จากหน้า API Keys ของ environment
- ใน Trigger.dev เปิดหน้า API Keys ของ environment แล้วสร้างคีย์ด้วยพรีเซ็ต "No restrictions"
- วางคีย์ใน Polylane แล้วกด Connect คีย์ระบุโปรเจ็กต์และ environment ของตัวเองอยู่แล้ว จึงไม่ต้องกรอกอะไรเพิ่ม
Polylane จะแมป environment, การ deploy, task, schedule และคิว task ที่พบในการรันแต่ไม่มีในเวอร์ชันปัจจุบันจะยังอยู่บนแผนที่และถูกทำเครื่องหมายไว้ คีย์ถูกเข้ารหัสและเอเจนต์จะไม่เห็นคีย์เลย
Webhook สำหรับ deploy และการแจ้งเตือน
การแจ้งเตือนแบบ webhook ของ Trigger.dev จะเปิด issue เมื่อการรันล้มเหลวและปิดการแจ้งเตือนการ deploy เมื่อสำเร็จครั้งถัดไป การแจ้งเตือนหนึ่งรายการต่อ environment:
- ในหน้า Alerts ของ environment เพิ่มการแจ้งเตือนแบบ webhook ด้วย URL จาก Settings ของบัญชี ในส่วน Webhooks พร้อมอีเวนต์ "Task run failure", "Deployment failure" และ "Deployment success"
- วาง signing secret ที่ Trigger.dev แสดงเพียงครั้งเดียวลงในการ์ด Webhooks เดิม
การแก้ปัญหา
"Polylane needs a key created with the 'No restrictions' preset"
- คีย์แบบ Trigger only, Observer, Deploy only, Task operator และ Variables only ใช้ไม่ได้: Polylane อ่านข้อมูลระบุตัวตนของโปรเจ็กต์ผ่าน endpoint ที่มีเพียงคีย์ "No restrictions" เท่านั้นที่เรียกได้ สร้างคีย์ "No restrictions" ในหน้า API Keys ของ environment แล้วเชื่อมต่อ
"Trigger.dev did not recognize this key"
- ตรวจสอบว่าคัดลอกคีย์มาครบและคีย์ยังไม่ถูกเพิกถอน
"Dev keys only work while trigger dev runs" และ "Preview keys are per branch and not supported"
- ใช้คีย์ prod หรือ staging
ทรัพยากรหายไป
- "Sync" ที่ส่วนหัวของบัญชีจะรีเฟรชก่อนรอบถัดไปทุก 15 นาที
การยกเลิกการเชื่อมต่อ
ยกเลิกการเชื่อมต่อใน Polylane จากนั้นลบคีย์ในหน้า API Keys ของ environment
เชื่อมต่อ Trigger.dev จากงาน CI หรือสภาพแวดล้อมอื่นใดที่ไม่มีเบราว์เซอร์
การเชื่อมต่อ Trigger.dev ไม่ต้องใช้เบราว์เซอร์: endpoint เดียวกับที่คอนโซลเรียกอยู่ในงาน CI ได้ POST ที่ยืนยันตัวตนแล้วครั้งเดียวสร้างการเชื่อมต่อและเริ่มการซิงก์ครั้งแรก
สิ่งที่ต้องมีก่อน
- คีย์ API ของ Polylane ที่มีสโคป
cloud_accounts:writeและcloud_accounts:readดูคีย์ API และ OAuth - ID ของ workspace ของคุณ ซึ่งเริ่มด้วย
ws_อ่านจากGET /v1/workspacesด้วยคีย์เดียวกัน - คีย์ลับของ environment ของ Trigger.dev (
tr_prod_sk_…หรือtr_stg_sk_…) จาก environment prod หรือ staging ของโปรเจ็กต์ของคุณ ใต้ API Keys สร้างด้วยพรีเซ็ต No restrictions: Polylane อ่านข้อมูลระบุตัวตนของโปรเจ็กต์ผ่าน endpoint ที่มีเพียงคีย์ "No restrictions" เท่านั้นที่เรียกได้ คีย์แบบ Trigger only, Observer, Deploy only, Task operator และ Variables only จึงถูกปฏิเสธ เช่นเดียวกับคีย์ dev และ preview
สร้างการเชื่อมต่อ
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "triggerdev",
"workspaceId": "ws_0abc123",
"apiKey": "<environment-secret-key>"
}'
คีย์ระบุโปรเจ็กต์และ environment ของตัวเอง และคีย์หนึ่งตัวเป็นของ environment เดียวเท่านั้น การเรียกครั้งเดียวจึงเชื่อมต่อหนึ่ง environment: คีย์ prod เชื่อมต่อ production และคีย์ staging เชื่อมต่อ staging แต่ละอันเป็นบัญชีของตัวเอง การส่งคีย์ของ environment ที่เชื่อมต่ออยู่แล้วจะแทนที่คีย์ของบัญชี ไม่มีสวิตช์ environment ที่ต้องตั้งค่า การเชื่อมต่อ environment คือวิธีเลือกเฝ้าดูมัน
การตอบกลับแสดงรายการสิ่งที่เชื่อมต่อแล้ว พร้อมการซิงก์ครั้งแรกที่รันอยู่ ตัดให้เหลือสองฟิลด์ที่ขั้นตอนที่เหลืออ่าน:
{
"success": true,
"result": {
"provider": "triggerdev",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
คีย์ที่ API ปฏิเสธจะไปอยู่ใน 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"
จากนั้นเพิกถอนคีย์ Trigger.dev ฝั่งผู้ให้บริการ ตามที่อธิบายใต้ Disconnect ด้านล่าง
ยกเลิกการเชื่อมต่อ
การยกเลิกการเชื่อมต่อหยุดทุกการซิงก์และการตรวจสอบ และลบข้อมูลรับรองที่ Polylane เก็บไว้ Polylane ลบสิ่งที่ API ของ Trigger.dev อนุญาตให้ลบ สิ่งต่อไปนี้ยังคงอยู่จนกว่าคุณจะลบด้วยตัวเอง:
- Trigger.dev webhook alert
polylane cloud disconnect <id>เครื่องมือ
5การดำเนินการที่เอเจนต์ทำได้ในเธรด
ทรัพยากรที่รองรับ
5ประเภททรัพยากรที่ปรากฏในกราฟโครงสร้างพื้นฐานของคุณ