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 マネジメントコンソール、AWS CLI、または AWS CloudFormation や Terraform などの Infrastructure as Code (IaC) ツールを介して実行できます。
Lambda 関数を作成する:
関数 URL を作成:
関数の URL を保護:
関数 URL によってトリガーされる Lambda 関数は、単一関数内で複数の HTTP メソッド (GET、POST、PUT、DELETE) を処理できます。これを実装する方法の簡単な例を次に示します:
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