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://<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 中国語 Web サイトの他の関連記事を参照してください。