사용자가 웹 UI에서 Python/JavaScript 등 코드를 작성하고 "실행" 버튼을 누름.
프론트엔드 → API Server 로 다음 데이터가 전달됨:
{
"code": "def handler(event): return 'hello'",
"language": "python",
"input": {"a": 10},
"userId": "tenant-123"
}
API 서버는 코드 본문을 S3에 저장하거나 직접 Redis Job 메시지에 포함함.
일주일 프로젝트라면:
/user-code/{tenantId}/{timestamp}.py 같은 경로로 업로드S3 없이 Redis에 Job Message로 코드 전체를 넣음
→ Worker는 메시지에서 코드만 꺼내 바로 실행
예시 메시지:
{
"jobId": "uuid-123",
"userId": "tenant-123",
"language": "python",
"code": "def handler(event): return event['a'] * 2",
"input": {"a": 10}
}
Worker는 사전에 준비된 Runtime Container.
예: