> 백엔드 개발 > 파이썬 튜토리얼 > AWS Lambda 함수 URL을 사용하여 API 액세스 단순화: 내장된 보안으로 GET, POST, PUT 및 DELETE 처리

AWS Lambda 함수 URL을 사용하여 API 액세스 단순화: 내장된 보안으로 GET, POST, PUT 및 DELETE 처리

WBOY
풀어 주다: 2024-08-11 12:51:31
원래의
944명이 탐색했습니다.

Simplifying API Access with AWS Lambda Function URLs: Handling GET, POST, PUT, and DELETE with Built-in Security

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 함수 URL은 Lambda 함수에 대한 전용 HTTP(S) 엔드포인트를 제공합니다. 이 기능은 단일 기능 마이크로서비스, 경량 API 또는 최소한의 설정으로 Lambda 함수를 대중에게 공개해야 하는 경우에 특히 유용합니다.

Lambda 함수 URL 설정

먼저 Lambda 함수를 생성하고 해당 URL을 구성해 보겠습니다. AWS Management Console, AWS CLI 또는 AWS CloudFormation이나 Terraform과 같은 IaC(Infrastructure as Code) 도구를 통해 이 작업을 수행할 수 있습니다.

  1. Lambda 함수 생성:

    • AWS Lambda 콘솔로 이동합니다.
    • '기능 만들기'를 클릭하세요.
    • '처음부터 작성' 옵션을 선택하세요.
    • 함수 이름, 런타임, 실행 역할을 정의하세요.
    • 함수 코드를 작성하거나 배포 패키지를 업로드하세요.
  2. 함수 URL 만들기:

    • 함수 구성에서 '함수 URL' 탭을 선택하세요.
    • '함수 URL 만들기'를 클릭하세요.
    • 인증 유형을 선택합니다(예: 인증된 액세스의 경우 AWS_IAM, 공개 액세스의 경우 NONE).
    • '함수 URL 생성'을 클릭하세요.
  3. 함수 URL을 보호하세요:

    • 인증 유형으로 AWS_IAM을 선택하면 인증에 AWS IAM을 사용할 수 있습니다.
    • IAM 역할 또는 정책을 생성하여 URL을 통해 기능을 호출할 수 있는 사용자 또는 서비스를 제어하세요.
    • 선택적으로 함수 자체 내에 맞춤 인증 논리를 구현하여 액세스를 더욱 제한할 수 있습니다.

다양한 HTTP 메소드 처리

함수 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'})
    }
로그인 후 복사

IAM 인증을 통한 함수 URL 확보 예시

함수 URL 보안을 위해 AWS_IAM을 사용하기로 선택한 경우 클라이언트는 AWS SigV4(서명 버전 4)를 사용하여 요청에 서명해야 합니다. 인증된 요청을 수행하는 방법에 대한 간략한 개요는 다음과 같습니다.

  1. IAM 사용자/역할을 생성하여 Lambda 함수를 호출할 수 있는 적절한 권한을 부여합니다.
  2. 요청에 서명: AWS SDK, CLI 또는 Postman과 같은 도구(AWS IAM 인증 사용)를 사용하여 HTTP 요청에 서명합니다.
  3. 함수 URL 호출: 서명된 요청에 유효한 자격 증명이 포함되어 있는지 확인하세요. 그렇지 않으면 요청이 거부됩니다.

예를 들어 AWS CLI의 경우:

aws lambda invoke-url https://<your-function-url-id>.lambda-url.<region>.on.aws/<your-path> \
--http-method POST \
--body '{ "key": "value" }' \
--region <region> \
--profile <aws-profile>
로그인 후 복사

결론

AWS Lambda 함수 URL은 API 게이트웨이 없이도 HTTP를 통해 Lambda 함수를 노출하는 간소화된 방법을 제공합니다. Lambda 함수 내에서 다양한 HTTP 메서드(GET, POST, PUT, DELETE)를 처리하고 AWS IAM으로 액세스를 보호함으로써 가볍고 안전한 API를 빠르게 구축할 수 있습니다. 간단한 마이크로서비스를 개발하든 더 복잡한 애플리케이션을 개발하든 상관없이 Lambda 함수 URL은 AWS 도구 키트에 강력한 추가 기능입니다.

위 내용은 AWS Lambda 함수 URL을 사용하여 API 액세스 단순화: 내장된 보안으로 GET, POST, PUT 및 DELETE 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿