Railway
연결
터미널에서 Railway을 연결하세요. Railway이 받는 플래그는 --help로 확인할 수 있고, 헤드리스 환경에서는 --no-browser를 함께 사용하세요.
polylane cloud connect --provider railwayOAuth 인증입니다.
Railway는 OAuth로 연결합니다: Continue to Railway를 클릭하고, Railway에서 읽기 접근을 승인하면, 동기화가 이미 시작된 상태로 돌아옵니다. 토큰은 저장 전에 암호화되며 에이전트는 이를 절대 보지 못합니다.
Polylane은 프로젝트, 환경, 서비스, 배포, 볼륨, 도메인, TCP 프록시를 발견합니다. 서비스 메트릭은 차트와 이상 감지에 사용됩니다. 변수 이름은 클라우드 간 연결을 위해 동기화되며, 변수 값은 절대 읽지 않습니다. 임시(풀 리퀘스트) 환경은 건너뜁니다.
배포 및 경보 웹훅
Railway는 알림 규칙을 통해 배포 상태 변경과 사용량 경보를 푸시합니다. 규칙 하나를 Polylane으로 향하게 하면 실패하거나 크래시된 배포에 대해 경보를 발생시키고, 다음 성공한 배포에서 경보를 해결하고, 재동기화를 예약합니다:
- Polylane에서 클라우드 계정의 Settings 페이지에서 웹훅 URL을 복사합니다(Railway 워크스페이스 ID로 끝납니다).
- Railway에서 워크스페이스의 Notifications 설정을 열고 그 URL을 가리키는 웹훅 규칙을 추가합니다.
- 관심 있는 Deployment 이벤트를 선택합니다:
Deployment.deployed,Deployment.failed,Deployment.crashed,Deployment.oom_killed가 경보 흐름을 다룹니다(Railway의 성공 이벤트는Deployment.deployed입니다.Deployment.success는 없습니다). VolumeAlert.resolved와Monitor.resolved를 포함한 VolumeAlert와 Monitor 이벤트를 추가하여, 볼륨과 모니터 경보가 Polylane에서 자동으로 열리고 닫히게 합니다.
문제 해결
승인이 실패하거나 취소됨
- 워크스페이스에 접근할 수 있는 계정으로 Railway에 로그인했는지 확인하세요.
- Continue to Railway에서 다시 시도하세요. 승인 링크는 몇 분 동안만 유효합니다.
리소스 누락
- Railway가 모든 것을 동기화하는 데 몇 분이 걸릴 수 있습니다.
- 임시(풀 리퀘스트) 환경은 동기화되지 않습니다.
- 계정 헤더에서 수동 Sync를 실행해 새로 고치세요.
연결 해제
Polylane에서 계정의 연결을 해제한 뒤, Railway 계정 설정에서 OAuth 승인을 취소하고, 만들었다면 알림 규칙을 제거하세요.
CI 작업이나 브라우저가 없는 다른 환경에서 Railway을 연결하세요.
Railway 연결에는 브라우저가 필요하지 않습니다: 콘솔이 호출하는 것과 같은 엔드포인트를 CI 작업에 담을 수 있습니다. 인증된 POST 하나가 연결을 만들고 첫 동기화를 시작합니다.
사전 요구 사항
cloud_accounts:write와cloud_accounts:read스코프를 가진 Polylane API 키. API 키와 OAuth를 참고하세요.ws_로 시작하는 워크스페이스 ID. 같은 키로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": []
}
}
이미 연결된 계정은 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"
그 다음 아래 연결 해제에 설명된 대로 제공자 쪽에서 Railway 자격 증명을 취소하세요.
연결 해제
연결을 해제하면 모든 동기화와 검사가 중단되고 Polylane이 보관하던 자격 증명이 삭제됩니다. Polylane은 Railway의 API가 허용하는 범위에서 제거합니다. 다음은 직접 제거하기 전까지 남습니다:
- OAuth grant
polylane cloud disconnect <id>도구
4에이전트가 스레드에서 수행할 수 있는 작업입니다.
지원 리소스
8인프라 그래프에 표시되는 리소스 유형입니다.