Apabila membina aplikasi tanpa pelayan pada AWS, AWS Lambda selalunya merupakan penyelesaian utama untuk menjalankan kod tanpa memperuntukkan atau mengurus pelayan. Secara tradisinya, AWS API Gateway telah digunakan untuk mendedahkan fungsi Lambda sebagai API RESTful. Walau bagaimanapun, AWS memperkenalkan URL Fungsi Lambda, cara yang lebih mudah untuk menggunakan fungsi Lambda melalui HTTPS tanpa overhed mengkonfigurasi Gateway API. Dalam siaran ini, kami akan meneroka cara menggunakan URL Fungsi Lambda untuk mengendalikan kaedah HTTP yang berbeza—GET, POST, PUT dan DELETE—sambil menggabungkan pengesahan keselamatan.
URL Fungsi Lambda menyediakan titik akhir HTTP(S) khusus untuk fungsi Lambda anda. Ciri ini amat berguna untuk perkhidmatan mikro satu fungsi, API ringan atau apabila anda perlu mendedahkan fungsi Lambda kepada umum dengan persediaan yang minimum.
Mula-mula, mari buat fungsi Lambda dan konfigurasikan URLnya. Anda boleh melakukan ini melalui AWS Management Console, AWS CLI atau alatan Infrastructure as Code (IaC) seperti AWS CloudFormation atau Terraform.
Buat Fungsi Lambda:
Buat URL Fungsi:
Lindungi URL Fungsi Anda:
Fungsi Lambda yang dicetuskan oleh URL Fungsi boleh mengendalikan berbilang kaedah HTTP—GET, POST, PUT dan DELETE—dalam satu fungsi. Berikut ialah contoh mudah cara melaksanakan perkara ini:
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'}) }
Jika anda memilih untuk menggunakan AWS_IAM untuk melindungi URL fungsi anda, pelanggan perlu menandatangani permintaan menggunakan AWS SigV4 (Signature Version 4). Berikut ialah gambaran ringkas tentang cara membuat permintaan yang disahkan:
Sebagai contoh, dengan 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>
URL Fungsi AWS Lambda menawarkan cara yang diperkemas untuk mendedahkan fungsi Lambda melalui HTTP tanpa memerlukan Gerbang API. Dengan mengendalikan kaedah HTTP yang berbeza (GET, POST, PUT, DELETE) dalam fungsi Lambda dan mendapatkan akses dengan AWS IAM, anda boleh membina API yang ringan dan selamat dengan cepat. Sama ada anda sedang membangunkan perkhidmatan mikro yang mudah atau aplikasi yang lebih kompleks, URL Fungsi Lambda ialah tambahan yang hebat pada kit alat AWS anda.
Atas ialah kandungan terperinci Memudahkan Akses API dengan URL Fungsi AWS Lambda: Mengendalikan GET, POST, PUT dan DELETE dengan Keselamatan Terbina dalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!