refactor: split serverless handlers into dedicated GitHub and GitLab Lambda entrypoints

This commit is contained in:
yoohya
2025-06-20 04:18:42 +09:00
parent 1963b80b46
commit ab7e0d9141
3 changed files with 38 additions and 15 deletions

View File

@ -10,9 +10,9 @@ RUN pip install --no-cache-dir mangum==0.17.0
COPY pr_agent/ ${LAMBDA_TASK_ROOT}/pr_agent/ COPY pr_agent/ ${LAMBDA_TASK_ROOT}/pr_agent/
FROM base AS github_lambda FROM base AS github_lambda
CMD ["pr_agent.servers.serverless.serverless_github"] CMD ["pr_agent.servers.github_lambda_webhook.lambda_handler"]
FROM base AS gitlab_lambda FROM base AS gitlab_lambda
CMD ["pr_agent.servers.serverless.serverless_gitlab"] CMD ["pr_agent.servers.gitlab_lambda_webhook.lambda_handler"]
FROM github_lambda FROM github_lambda

View File

@ -3,6 +3,8 @@ from mangum import Mangum
from starlette.middleware import Middleware from starlette.middleware import Middleware
from starlette_context.middleware import RawContextMiddleware from starlette_context.middleware import RawContextMiddleware
from pr_agent.servers.github_app import router
try: try:
from pr_agent.config_loader import apply_secrets_manager_config from pr_agent.config_loader import apply_secrets_manager_config
apply_secrets_manager_config() apply_secrets_manager_config()
@ -14,18 +16,12 @@ except Exception as e:
# Fail completely silently if log module is not available # Fail completely silently if log module is not available
pass pass
def _create_handler(router): middleware = [Middleware(RawContextMiddleware)]
middleware = [Middleware(RawContextMiddleware)] app = FastAPI(middleware=middleware)
app = FastAPI(middleware=middleware) app.include_router(router)
app.include_router(router)
return Mangum(app, lifespan="off")
def serverless_github(event, context): handler = Mangum(app, lifespan="off")
from pr_agent.servers.github_app import router
handler = _create_handler(router)
return handler(event, context)
def serverless_gitlab(event, context):
from pr_agent.servers.gitlab_webhook import router def lambda_handler(event, context):
handler = _create_handler(router) return handler(event, context)
return handler(event, context)

View File

@ -0,0 +1,27 @@
from fastapi import FastAPI
from mangum import Mangum
from starlette.middleware import Middleware
from starlette_context.middleware import RawContextMiddleware
from pr_agent.servers.gitlab_webhook import router
try:
from pr_agent.config_loader import apply_secrets_manager_config
apply_secrets_manager_config()
except Exception as e:
try:
from pr_agent.log import get_logger
get_logger().debug(f"AWS Secrets Manager initialization failed, falling back to environment variables: {e}")
except:
# Fail completely silently if log module is not available
pass
middleware = [Middleware(RawContextMiddleware)]
app = FastAPI(middleware=middleware)
app.include_router(router)
handler = Mangum(app, lifespan="off")
def lambda_handler(event, context):
return handler(event, context)