Trigger.dev
接続
ターミナルからTrigger.devを接続します。Trigger.devが受け付けるフラグは--helpで確認でき、ヘッドレス環境では--no-browserを追加します。
polylane cloud connect --provider triggerdev環境のAPI Keysページで"No restrictions"プリセットを使って作成した環境シークレットキーです。
- Trigger.devで環境のAPI Keysページを開き、"No restrictions"プリセットでキーを作成します。
- キーをPolylaneに貼り付けてConnectを押します。キーが自身のプロジェクトと環境を名乗るため、ほかに入力するものはありません。
Polylaneは環境、そのデプロイメント、タスク、スケジュール、キューをマッピングします。実行に現れるが現在のバージョンにないタスクはマップに残り、フラグが付きます。キーは暗号化され、エージェントが目にすることはありません。
デプロイとアラートのWebhook
Trigger.devのWebhookアラートは失敗した実行でIssueを開き、次の成功でデプロイのアラートを解決します。環境ごとに1つのアラートです。
- 環境のAlertsページで、アカウントのSettingsのWebhooksにあるURLと、"Task run failure"、"Deployment failure"、"Deployment success"のイベントを指定したWebhookアラートを追加します。
- 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を1回行うと、接続が作成され、最初の同期が始まります。
前提条件
cloud_accounts:writeとcloud_accounts:readスコープを持つPolylane APIキー。APIキーとOAuthを参照してください。ws_で始まるワークスペースID。同じキーで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>"
}'
キーが自身のプロジェクトと環境を名乗り、キーはちょうど1つの環境に属するため、1回の呼び出しが1つの環境を接続します。prodキーは本番を、stagingキーはstagingを、それぞれ独立したアカウントとして接続します。すでに接続済みの環境のキーを送信すると、アカウントのキーが置き換えられます。設定する環境の切り替えスイッチはありません。環境を接続することが、その環境を監視すると選ぶことです。
応答は接続されたものを一覧し、最初の同期はすでに実行中です。フローの残りが読む2つのフィールドに絞ると次のとおりです。
{
"success": true,
"result": {
"provider": "triggerdev",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
APIが拒否したキーはaccountsではなくfailuresに入り、メッセージが理由を伝えます。呼び出しを繰り返しても接続が重複することはありません。
最初の同期を待つ
返された各アカウントを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"
次に、下のDisconnectで説明されているとおり、プロバイダー側でTrigger.devのキーを取り消します。
接続解除
接続解除すると、すべての同期とチェックが停止し、Polylaneが保持していた認証情報が削除されます。 Polylaneは、Trigger.devのAPIが許す範囲のものを取り除きます。次のものは、自分で取り除くまで残ります。
- Trigger.dev webhook alert
polylane cloud disconnect <id>ツール
5エージェントがスレッドで実行できる操作です。
対応リソース
5インフラグラフに表示されるリソースの種類です。