Azure Functions Python v2 프로그래밍 모델을 위한 validation 및 serialization 라이브러리입니다.
이 패키지는 decorator 기반 FunctionApp HTTP 핸들러를 위한 typed request parsing과 response validation을 제공합니다.
Azure Functions Python v2 핸들러는 다음과 같은 문제가 반복되기 쉽습니다.
- 반복적인
req.get_json()호출과 수동 요청 파싱 - 일관되지 않은
400및422validation 응답 - 의도한 스키마와 조용히 어긋나는 response payload
azure-functions-validation은 Azure Functions 프로그래밍 모델에 가깝게 유지되는 decorator-first validation 레이어로 이런 문제를 해결합니다.
- Azure Functions Python v2 프로그래밍 모델
func.FunctionApp()에 등록된 HTTP 트리거 함수- Pydantic v2 기반 request 및 response validation
이 패키지는 기존 function.json 기반의 v1 프로그래밍 모델을 대상으로 하지 않습니다.
@validate_http를 통한 typed body, query, path, header validation{"detail": [...]}형식의 자동400/422응답- response model validation, 불일치 시
ResponseValidationError발생(HTTP 500) ErrorFormatter를 통한 핸들러별 custom error formatting
pip install azure-functions-validationAzure Functions 앱 의존성에는 다음도 포함되어야 합니다.
azure-functions
azure-functions-validation
로컬 개발용:
git clone https://github.com/yeongseon/azure-functions-validation.git
cd azure-functions-validation
pip install -e .[dev]import azure.functions as func
from pydantic import BaseModel
from azure_functions_validation import validate_http
class CreateUserRequest(BaseModel):
name: str
email: str
class CreateUserResponse(BaseModel):
message: str
status: str = "success"
app = func.FunctionApp()
@app.function_name(name="create_user")
@app.route(route="users", methods=["POST"], auth_level=func.AuthLevel.ANONYMOUS)
@validate_http(body=CreateUserRequest, response_model=CreateUserResponse)
def create_user(req: func.HttpRequest, body: CreateUserRequest) -> CreateUserResponse:
return CreateUserResponse(message=f"Hello {body.name}")- 프로젝트 문서:
docs/ - 스모크 테스트된 예제:
examples/ - 제품 요구사항:
PRD.md - 설계 원칙:
DESIGN.md
- azure-functions-langgraph — LangGraph 배포 어댑터
- azure-functions-openapi — OpenAPI 및 Swagger UI
- azure-functions-logging — 구조화된 로깅
- azure-functions-doctor — 진단 CLI
- azure-functions-scaffold — 프로젝트 스캐폴딩
- azure-functions-durable-graph — Durable Functions 기반 그래프 런타임
- azure-functions-python-cookbook — 레시피 및 예제
이 프로젝트는 독립적인 커뮤니티 프로젝트이며 Microsoft와 제휴되어 있지 않고, Microsoft의 후원이나 유지보수를 받지 않습니다.
Azure 및 Azure Functions는 Microsoft Corporation의 상표입니다.
MIT