Railway
連接
從終端機連接Railway。傳入--help可查看Railway接受的旗標,在無瀏覽器環境中再加上--no-browser。
polylane cloud connect --provider railwayOAuth授權。
Railway透過OAuth連接:點擊Continue to Railway、在Railway上授權讀取存取,你就會被重新導向回來,同步已經開始。權杖在儲存前會先加密,代理永遠看不到它們。
Polylane會探索你的專案、環境、服務、部署、磁碟區、網域與TCP代理。服務指標驅動圖表與異常偵測。變數名稱會同步以供跨雲端連結;變數的值永遠不會被讀取。臨時(pull request)環境會被跳過。
部署與警示webhook
Railway透過通知規則推送部署狀態變更與用量警示。把一條規則指向Polylane,就會在部署失敗或崩潰時發出警示、在下一次成功部署時解決該警示,並排程一次重新同步:
- 從Polylane中該雲端帳戶的Settings頁面複製webhook URL(它以你的Railway工作區ID結尾)。
- 在Railway中開啟你工作區的Notifications設定,加入一條指向該URL的webhook規則。
- 選擇你關心的Deployment事件:
Deployment.deployed、Deployment.failed、Deployment.crashed與Deployment.oom_killed涵蓋警示流程(Railway的成功事件是Deployment.deployed;沒有Deployment.success)。 - 加入VolumeAlert與Monitor事件,包括
VolumeAlert.resolved與Monitor.resolved,讓磁碟區與監控器警示在Polylane中自動開啟與關閉。
疑難排解
授權失敗或被取消
- 確認你以能存取該工作區的帳戶登入Railway。
- 從Continue to Railway重試;授權連結只在幾分鐘內有效。
缺少資源
- Railway可能需要幾分鐘才能同步完所有內容。
- 臨時(pull request)環境不會同步。
- 從帳戶標頭觸發手動Sync以重新整理。
中斷連接
在Polylane中斷該帳戶的連接,然後在你的Railway帳戶設定中撤銷OAuth授權,如果你建立了通知規則,也一併移除。
從CI工作或任何其他沒有瀏覽器的環境連接Railway。
連接Railway不需要瀏覽器:主控台呼叫的同一個端點可以放進CI工作。一次經過驗證的POST建立連接並開始第一次同步。
先決條件
- 一把具有
cloud_accounts:write與cloud_accounts:read範圍的Polylane API金鑰。請見API金鑰與OAuth。 - 你的工作區ID,以
ws_開頭。用同一把金鑰從GET /v1/workspaces讀取它。 - 一個來自你工作區設定的Railway工作區權杖。主控台的OAuth流程需要瀏覽器;工作區權杖不需要。
建立連接
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "railway",
"workspaceId": "ws_0abc123",
"token": "<railway-workspace-token>"
}'
一次呼叫會連接該權杖能觸及的每個Railway工作區;傳入可選的railwayWorkspaceId可只連接一個。
回應列出已連接的內容,第一次同步已在執行。精簡為流程其餘部分會讀取的兩個欄位:
{
"success": true,
"result": {
"provider": "railway",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
已經連接的帳戶會落在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"
然後如下方中斷連接一節所述,在供應商端撤銷Railway憑證。
中斷連接
中斷連接會停止所有同步與檢查,並刪除Polylane持有的憑證。 Polylane會移除Railway的API允許它移除的東西。以下項目會留下,直到你自行移除:
- OAuth grant
polylane cloud disconnect <id>工具
4代理可以在對話串中執行的操作。
支援的資源
8會出現在你基礎設施圖中的資源類型。