Trigger.dev
連接
從終端機連接Trigger.dev。傳入--help可查看Trigger.dev接受的旗標,在無瀏覽器環境中再加上--no-browser。
polylane cloud connect --provider triggerdev在環境的 API Keys 頁面用 "No restrictions" 預設建立的環境密鑰。
- 在 Trigger.dev 中開啟該環境的 API Keys 頁面,用 "No restrictions" 預設建立一個密鑰。
- 將密鑰貼到 Polylane 並按 Connect。密鑰自己說明其專案和環境,因此無需再輸入任何內容。
Polylane 會對應該環境及其部署、任務、排程和佇列。在執行中出現但不在目前版本中的任務會保留在地圖上並被標記。密鑰已加密,代理永遠不會看到它們。
部署與警示 Webhook
Trigger.dev 的 Webhook 警示在執行失敗時開啟問題,並在下一次成功時解決部署警示。每個環境一個警示:
- 在該環境的 Alerts 頁面新增一個 Webhook 警示,使用帳戶 Settings 的 Webhooks 中的 URL,並選擇 "Task run failure"、"Deployment failure" 和 "Deployment success" 事件。
- 將 Trigger.dev 僅顯示一次的簽署密鑰貼到同一個 Webhooks 卡片。
疑難排解
"Polylane needs a key created with the 'No restrictions' preset"
- Trigger only、Observer、Deploy only、Task operator 和 Variables only 密鑰無法使用:Polylane 透過只有 "No restrictions" 密鑰才能呼叫的端點讀取專案的身分。在該環境的 API Keys 頁面建立一個 "No restrictions" 密鑰並連接它。
"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 頁面刪除密鑰。
從CI工作或任何其他沒有瀏覽器的環境連接Trigger.dev。
連接Trigger.dev不需要瀏覽器:主控台呼叫的同一個端點可以放進CI工作。一次經過驗證的POST建立連接並開始第一次同步。
先決條件
- 一把具有
cloud_accounts:write與cloud_accounts:read範圍的Polylane API金鑰。請見API金鑰與OAuth。 - 你的工作區ID,以
ws_開頭。用同一把金鑰從GET /v1/workspaces讀取它。 - 一個來自專案prod或staging環境API Keys下的Trigger.dev環境密鑰(
tr_prod_sk_…或tr_stg_sk_…)。用No restrictions預設建立它:Polylane透過只有"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>"
}'
密鑰自己說明其專案和環境,且一個密鑰恰好屬於一個環境,所以一次呼叫連接一個環境:prod密鑰連接正式環境,staging密鑰連接staging,各自作為獨立帳戶。為已連接的環境提交密鑰會取代該帳戶的密鑰。沒有需要設定的環境開關。連接一個環境就是選擇監控它。
回應列出已連接的內容,第一次同步已在執行。精簡為流程其餘部分會讀取的兩個欄位:
{
"success": true,
"result": {
"provider": "triggerdev",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
被API拒絕的密鑰會落在failures而不是accounts中,訊息會說明原因,所以重複呼叫永遠不會重複建立連接。
等待第一次同步
依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
給這個迴圈一個期限,讓失敗的連接讓工作失敗,而不是掛住它。帳戶為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密鑰。
中斷連接
中斷連接會停止所有同步與檢查,並刪除Polylane持有的憑證。 Polylane會移除Trigger.dev的API允許它移除的東西。以下項目會留下,直到你自行移除:
- Trigger.dev webhook alert
polylane cloud disconnect <id>工具
5代理可以在對話串中執行的操作。
支援的資源
5會出現在你基礎設施圖中的資源類型。