AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) · Pelajaran

Pencetus dan Integrasi Lambda

Sambungkan fungsi Lambda kepada pelbagai perkhidmatan AWS seperti S3, DynamoDB dan API Gateway untuk mencipta aliran kerja dipacu peristiwa yang berkuasa.

Pelajaran 3 daripada 411 langkah

Pencetus dan Integrasi Lambda ialah pelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) merangkumi sejumlah 4 pelajaran.

Peristiwa Menghidupkan Lambda

Selamat datang ke nadi seni bina tanpa pelayan: Pencetus Lambda! Inilah peristiwa yang memberitahu fungsi Lambda anda bila perlu berjalan. Daripada menjalankan pelayan secara berterusan, fungsi anda hanya bertindak apabila diperlukan.

Anggaplah ia seperti loceng pintu untuk kod anda. Seseorang menekan butang (peristiwa berlaku), lalu fungsi anda memberikan tindak balas.

Cara Pencetus Berfungsi: Tolak berbanding Tarik

Pencetus Lambda terbahagi kepada dua jenis utama:

  • Berasaskan tolakan: Sumber peristiwa (seperti S3 atau SNS) memanggil fungsi Lambda anda secara terus apabila peristiwa berlaku. Lambda menerima peristiwa itu dan menjalankan kod anda.
  • Berasaskan tarikan: Lambda sendiri meninjau sumber peristiwa (seperti baris gilir SQS atau DynamoDB Streams) untuk mencari item baharu. Apabila data baharu ditemui, Lambda mendapatkannya dan memanggil fungsi anda.

Memahami perkara ini membantu anda mereka bentuk aliran kerja dipacu peristiwa yang cekap.

Pencetus Peristiwa S3: Bertindak Balas terhadap Storan

Salah satu pencetus yang paling biasa dan berkuasa ialah Amazon S3. Anda boleh mengkonfigurasi baldi S3 untuk memanggil fungsi Lambda secara automatik setiap kali peristiwa tertentu berlaku, seperti:

  • Objek baharu dicipta (contohnya, muat naik imej)
  • Objek dipadamkan
  • Objek dipulihkan

Ini amat sesuai untuk tugas seperti mengubah saiz imej, mengesahkan data atau menjana lakaran kecil sebaik sahaja fail dimuat naik.

Demo Pencetus S3: Merekod Muat Naik

Berikut ialah fungsi Lambda Python asas yang akan dicetuskan oleh peristiwa penciptaan objek S3. Fungsi ini hanya merekod baldi dan kunci objek daripada data peristiwa.

Cuba jalankan peristiwa simulasi:

import json

def lambda_handler(event, context):
    """
    Simulated Lambda handler for S3 events.
    Logs the details of the S3 event.
    """
    print("--- S3 Event Received ---")
    for record in event.get('Records', []):
        bucket_name = record['s3']['bucket']['name']
        object_key = record['s3']['object']['key']
        event_name = record['eventName']
        print(f"Bucket: {bucket_name}")
        print(f"Object: {object_key}")
        print(f"Event: {event_name}")
    print("-------------------------")
    return {
        'statusCode': 200,
        'body': json.dumps('S3 event logged!')
    }

if __name__ == "__main__":
    # Simulate an S3 PUT event
    mock_event = {
        "Records": [
            {
                "eventSource": "aws:s3",
                "eventName": "ObjectCreated:Put",
                "s3": {
                    "bucket": {"name": "my-cool-bucket"},
                    "object": {"key": "my-new-file.txt"}
                }
            }
        ]
    }
    lambda_handler(mock_event, None)

DynamoDB Streams: Perubahan Pangkalan Data

Amazon DynamoDB Streams menyediakan urutan pengubahsuaian peringkat item dalam jadual DynamoDB yang disusun mengikut masa. Apabila anda mendayakan aliran, setiap operasi penciptaan, kemas kini atau pemadaman akan direkodkan.

Lambda boleh dikonfigurasi untuk membaca aliran ini, membolehkan anda bertindak balas terhadap perubahan pangkalan data dalam masa nyata. Kes penggunaan termasuk:

  • Pereplikasi data merentas jadual
  • Pengauditan perubahan
  • Mencetuskan aliran kerja seterusnya

Demo DynamoDB Stream: Memproses Kemas Kini

Fungsi Lambda Python ini mensimulasikan pemprosesan peristiwa daripada DynamoDB Stream. Fungsi ini merekod jenis peristiwa (INSERT, MODIFY, REMOVE) serta kunci/imej baharu item yang terjejas.

Jalankannya untuk melihat rupa peristiwa perubahan pangkalan data:

import json

def lambda_handler(event, context):
    """
    Simulated Lambda handler for DynamoDB Stream events.
    Logs the details of the changed records.
    """
    print("--- DynamoDB Stream Event Received ---")
    for record in event.get('Records', []):
        event_name = record['eventName']
        keys = record['dynamodb']['Keys']
        new_image = record['dynamodb'].get('NewImage', {})
        print(f"Event: {event_name}")
        print(f"Keys: {json.dumps(keys)}")
        print(f"New Image: {json.dumps(new_image)}")
    print("------------------------------------")
    return {
        'statusCode': 200,
        'body': json.dumps('DynamoDB stream processed!')
    }

if __name__ == "__main__":
    # Simulate a DynamoDB INSERT event
    mock_event = {
        "Records": [
            {
                "eventID": "1",
                "eventName": "INSERT",
                "dynamodb": {
                    "Keys": {"id": {"S": "123"}},
                    "NewImage": {"id": {"S": "123"}, "name": {"S": "Alice"}},
                    "StreamViewType": "NEW_AND_OLD_IMAGES"
                }
            }
        ]
    }
    lambda_handler(mock_event, None)

API Gateway: Titik Akhir API Tanpa Pelayan

Amazon API Gateway bertindak sebagai 'pintu hadapan' untuk aplikasi mengakses perkhidmatan belakang, termasuk fungsi Lambda. Ia mengendalikan semua tugas yang diperlukan untuk menerima dan memproses sehingga ratusan ribu panggilan API serentak.

Dengan mengintegrasikan API Gateway dengan Lambda, anda boleh membina API RESTful yang berkuasa, boleh diskalakan dan selamat tanpa mengurus sebarang pelayan. Pengguna membuat permintaan HTTP, API Gateway menghalakannya kepada Lambda anda, lalu Lambda anda mengembalikan respons.

Demo API Gateway: API Tanpa Pelayan Anda

Fungsi Lambda ini menunjukkan cara memberikan respons kepada permintaan API Gateway. Fungsi ini menerima data peristiwa tentang permintaan HTTP dan mengembalikan respons JSON, yang kemudiannya dihantar oleh API Gateway kembali kepada klien.

Jalankan simulasi untuk melihat output yang dijangkakan:

import json

def lambda_handler(event, context):
    """
    Simulated Lambda handler for API Gateway events.
    Returns a simple JSON response.
    """
    print("--- API Gateway Event Received ---")
    print(f"HTTP Method: {event.get('httpMethod')}")
    print(f"Path: {event.get('path')}")
    print("----------------------------------")

    response_body = {
        "message": "Hello from your serverless API!",
        "input": event
    }
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json'
        },
        'body': json.dumps(response_body)
    }

if __name__ == "__main__":
    # Simulate an API Gateway GET request event
    mock_event = {
        "resource": "/",
        "path": "/",
        "httpMethod": "GET",
        "headers": {
            "Accept": "text/html"
        },
        "queryStringParameters": None,
        "pathParameters": None,
        "body": None,
        "isBase64Encoded": False
    }
    response = lambda_handler(mock_event, None)
    print("\n--- API Response ---")
    print(json.dumps(response, indent=2))

Integrasi yang Lebih Berkuasa

Lambda boleh diintegrasikan dengan banyak perkhidmatan AWS yang lain untuk membina seni bina yang sangat fleksibel:

  • Amazon SQS: Memproses mesej daripada baris gilir untuk tugas tak segerak.
  • Amazon SNS: Memberikan tindak balas kepada pemberitahuan (contohnya, menghantar e-mel atau SMS).
  • CloudWatch Events/EventBridge: Mencetuskan fungsi Lambda mengikut jadual atau sebagai tindak balas kepada peristiwa perkhidmatan AWS (contohnya, perubahan keadaan tika EC2).
  • Kinesis: Memproses data penstriman masa nyata.

Integrasi ini menjadi tulang belakang aplikasi moden yang dipacu peristiwa.

Semakan Pantas

Uji pengetahuan anda tentang pencetus Lambda!

Imbas Kembali: Nadi Aliran Kerja Tanpa Pelayan

Anda telah mempelajari bahawa fungsi Lambda memang berkuasa, tetapi memerlukan pencetus untuk mula berfungsi! Pencetus ini ialah peristiwa daripada perkhidmatan AWS yang lain, yang memanggil fungsi anda secara automatik.

Kita telah meneroka cara S3, DynamoDB Streams dan API Gateway boleh bertindak sebagai sumber peristiwa secara terus, membolehkan anda membina aplikasi responsif yang dipacu peristiwa tanpa mengurus pelayan. Memahami pencetus ialah kunci untuk memanfaatkan sepenuhnya potensi seni bina tanpa pelayan!

Percuma untuk bermula

Pelajari AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Pencetus dan Integrasi Lambda” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda), termasuk “Pencetus dan Integrasi Lambda”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pencetus dan Integrasi Lambda”?

Sambungkan fungsi Lambda kepada pelbagai perkhidmatan AWS seperti S3, DynamoDB dan API Gateway untuk mencipta aliran kerja dipacu peristiwa yang berkuasa. Anda berlatih AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda)?

Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Pencetus dan Integrasi Lambda” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) ini?

Ya. Setiap pelajaran AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda) menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Apakah AWS Lambda?
  2. Membina Fungsi Lambda Pertama Anda
  3. Pencetus dan Integrasi Lambda
  4. Memantau dan Menyahpepijat Fungsi Lambda
← Kembali ke AWS untuk Pembangun Backend (EC2, S3, RDS, Lambda)