Lambda 지속성 함수를 사용하여 주문 처리 시스템 생성 - AWS Lambda

Lambda 지속성 함수를 사용하여 주문 처리 시스템 생성

참고

필요: API Gateway, 지속성 함수 워크플로 및 지원 서비스(DynamoDB, EventBridge)를 보여주는 아키텍처 다이어그램 추가

사전 조건

  • AWS CLI 설치 및 구성

  • 필요: 특정 지속성 함수 요구 사항

소스 코드 파일 생성

프로젝트 디렉터리에 다음 파일을 생성합니다.

  • lambda_function.py - 함수 코드

  • requirements.txt - 종속성 매니페스트

함수 코드

# NEED: Verify correct imports import boto3 import json def lambda_handler(event, context): # NEED: Verify DurableContext syntax durable = context.durable try: # Validate and store order order = await durable.step('validate', async () => { return validate_order(event['order']) }) # Process payment # NEED: Verify wait syntax await durable.wait(/* wait configuration */) # Additional steps # NEED: Complete implementation except Exception as e: # NEED: Error handling patterns raise e def validate_order(order_data): # NEED: Implementation pass

요구 사항 파일

# NEED: List of required packages

앱 배포

주문에 대한 DynamoDB 테이블 생성

  1. https://console.aws.amazon.com/dynamodb/에서 DynamoDB 콘솔을 엽니다.

  2. 테이블 생성 선택

  3. 테이블 이름Orders 입력

  4. 파티션 키orderId 입력

  5. 다른 설정은 기본값 유지

  6. 테이블 생성 선택

Lambda 함수 생성

  1. https://console.aws.amazon.com/lambda/에서 Lambda 콘솔 열기

  2. 함수 생성 선택

  3. 새로 작성 선택

  4. 함수 이름ProcessOrder을 입력합니다.

  5. 런타임에서 원하는 런타임 선택

  6. 필요: 지속성 함수별 구성 추가

  7. 함수 생성 선택

API Gateway 엔드포인트 생성

  1. https://console.aws.amazon.com/apigateway/에서 API Gateway 콘솔 열기

  2. API 생성 선택

  3. HTTP API 선택

  4. 빌드 선택

  5. Lambda 함수와의 통합 추가

  6. 주문 처리 경로 구성

  7. API 배포

앱 테스트

테스트 주문을 제출합니다.

{ "orderId": "12345", "items": [ { "productId": "ABC123", "quantity": 1 } ] }

필요: 지속성 함수에 대한 특정 모니터링 지침 추가

다음 단계

비즈니스 로직 추가

재고 관리를 구현합니다.

async def check_inventory(order): # Add inventory check logic pass

가격 계산을 추가합니다.

async def calculate_total(order): # Add pricing logic pass

오류 처리 개선

보정 로직을 추가합니다.

async def reverse_payment(order): # Add payment reversal logic pass

주문 취소를 처리합니다.

async def cancel_order(order): # Add cancellation logic pass

외부 시스템 통합

async def notify_shipping_provider(order): # Add shipping integration pass async def send_customer_notification(order): # Add notification logic pass

모니터링 개선

  • CloudWatch 대시보드 생성

  • 주문 처리 시간 관련 지표 설정

  • 지연된 주문에 대한 알림 구성