Memudahkan Akses API dengan URL Fungsi AWS Lambda: Mengendalikan GET, POST, PUT dan DELETE dengan Keselamatan Terbina dalam

WBOY
Lepaskan: 2024-08-11 12:51:31
asal
894 orang telah melayarinya

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

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.

Apakah URL Fungsi Lambda?

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.

Menyediakan URL Fungsi Lambda

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.

  1. Buat Fungsi Lambda:

    • Pergi ke konsol AWS Lambda.
    • Klik pada "Buat fungsi."
    • Pilih pilihan "Pengarang dari awal".
    • Tentukan nama fungsi, masa jalan dan peranan pelaksanaan anda.
    • Tulis kod fungsi anda atau muat naik pakej penggunaan.
  2. Buat URL Fungsi:

    • Di bawah konfigurasi fungsi anda, pilih tab "URL Fungsi".
    • Klik pada "Buat URL Fungsi."
    • Pilih jenis kebenaran (cth., AWS_IAM untuk akses yang disahkan atau TIADA untuk akses awam).
    • Klik "Buat URL Fungsi."
  3. Lindungi URL Fungsi Anda:

    • Anda boleh menggunakan AWS IAM untuk pengesahan dengan memilih AWS_IAM sebagai jenis kebenaran.
    • Buat peranan atau dasar IAM untuk mengawal pengguna atau perkhidmatan yang boleh menggunakan fungsi tersebut melalui URL.
    • Secara pilihan, anda boleh melaksanakan logik kebenaran tersuai dalam fungsi itu sendiri untuk mengehadkan lagi akses.

Mengendalikan Kaedah HTTP Berbeza

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'})
    }
Salin selepas log masuk

Contoh Melindungi URL Fungsi dengan Pengesahan IAM

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:

  1. Buat Pengguna/Peranan IAM dengan kebenaran yang sesuai untuk menggunakan fungsi Lambda.
  2. Tandatangani Permintaan: Gunakan AWS SDK, CLI atau alatan seperti Postman (dengan pengesahan AWS IAM) untuk menandatangani permintaan HTTP.
  3. Panggil URL Fungsi: Pastikan permintaan yang ditandatangani mengandungi bukti kelayakan yang sah; jika tidak, permintaan akan ditolak.

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>
Salin selepas log masuk

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!