AWS에서 서버리스 애플리케이션을 구축할 때 AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고 코드를 실행하기 위한 솔루션인 경우가 많습니다. 전통적으로 AWS API Gateway는 Lambda 함수를 RESTful API로 노출하는 데 사용되었습니다. 그러나 AWS는 API 게이트웨이를 구성하는 오버헤드 없이 HTTPS를 통해 Lambda 함수를 호출하는 더 간단한 방법인 Lambda 함수 URL을 도입했습니다. 이 게시물에서는 보안 인증을 통합하면서 Lambda 함수 URL을 사용하여 다양한 HTTP 메서드(GET, POST, PUT, DELETE)를 처리하는 방법을 살펴보겠습니다.
Lambda 함수 URL은 Lambda 함수에 대한 전용 HTTP(S) 엔드포인트를 제공합니다. 이 기능은 단일 기능 마이크로서비스, 경량 API 또는 최소한의 설정으로 Lambda 함수를 대중에게 공개해야 하는 경우에 특히 유용합니다.
먼저 Lambda 함수를 생성하고 해당 URL을 구성해 보겠습니다. AWS Management Console, AWS CLI 또는 AWS CloudFormation이나 Terraform과 같은 IaC(Infrastructure as Code) 도구를 통해 이 작업을 수행할 수 있습니다.
Lambda 함수 생성:
함수 URL 생성:
함수 URL 보호:
함수 URL에 의해 트리거되는 Lambda 함수는 단일 함수 내에서 GET, POST, PUT, DELETE 등 여러 HTTP 메서드를 처리할 수 있습니다. 이를 구현하는 방법에 대한 간단한 예는 다음과 같습니다.
import json def lambda_handler(event, context): # Determine the HTTP method http_method = event['httpMethod'] if http_method == 'GET': return handle_get(event) elif http_method == 'POST': return handle_post(event) elif http_method == 'PUT': return handle_put(event) elif http_method == 'DELETE': return handle_delete(event) else: return { 'statusCode': 405, 'body': json.dumps({'message': 'Method Not Allowed'}) } def handle_get(event): # Handle GET request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'GET request received'}) } def handle_post(event): # Handle POST request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'POST request received'}) } def handle_put(event): # Handle PUT request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'PUT request received'}) } def handle_delete(event): # Handle DELETE request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'DELETE request received'}) }
함수 URL 보안을 위해 AWS_IAM을 사용하기로 선택한 경우 클라이언트는 AWS SigV4(서명 버전 4)를 사용하여 요청에 서명해야 합니다. 인증된 요청을 수행하는 방법에 대한 간략한 개요는 다음과 같습니다.
예를 들어 AWS CLI의 경우:
aws lambda invoke-url https://.lambda-url. .on.aws/ \ --http-method POST \ --body '{ "key": "value" }' \ --region \ --profile
AWS Lambda 함수 URL은 API 게이트웨이 없이도 HTTP를 통해 Lambda 함수를 노출하는 간소화된 방법을 제공합니다. Lambda 함수 내에서 다양한 HTTP 메서드(GET, POST, PUT, DELETE)를 처리하고 AWS IAM으로 액세스를 보호함으로써 가볍고 안전한 API를 빠르게 구축할 수 있습니다. 간단한 마이크로서비스를 개발하든 더 복잡한 애플리케이션을 개발하든 상관없이 Lambda 함수 URL은 AWS 도구 키트에 강력한 추가 기능입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3