Otomatiskan pengujian integrasi lokal dengan AWS SAM - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otomatiskan pengujian integrasi lokal dengan AWS SAM

Meskipun dapat digunakan Pengantar pengujian dengan sam local invoke untuk menguji kode secara manual, Anda AWS SAM juga dapat menguji kode menggunakan pengujian integrasi otomatis. Pengujian integrasi membantu Anda mendeteksi masalah di awal siklus pengembangan, meningkatkan kualitas kode Anda, dan menghemat waktu sekaligus mengurangi biaya.

Untuk membuat pengujian integrasi otomatis AWS SAM, pertama-tama Anda menjalankan pengujian terhadap fungsi Lambda lokal sebelum menerapkan ke Cloud. AWS Pengantar pengujian dengan sam local start-lambdaPerintah memulai titik akhir lokal yang mengemulasi titik akhir pemanggilan Lambda. Anda dapat memanggilnya dari uji otomatis Anda. Karena titik akhir ini mengemulasi titik akhir pemanggilan Lambda, Anda dapat menulis pengujian sekali, lalu menjalankannya (tanpa modifikasi apa pun) terhadap fungsi Lambda lokal, atau terhadap fungsi Lambda yang diterapkan. Anda juga dapat menjalankan tes yang sama terhadap tumpukan AWS SAM yang di-deploy dalam alur CI/CD Anda.

Beginilah cara kerjanya:

  1. Mulai titik akhir Lambda lokal.

    Mulai endpoint Lambda lokal dengan menjalankan perintah berikut di direktori yang berisi template Anda: AWS SAM

    sam local start-lambda

    Perintah ini memulai titik akhir lokal di http://127.0.0.1:3001 yang mengemulasi AWS Lambda. Anda dapat menjalankan tes otomatis Anda pada titik akhir Lambda lokal ini. Saat Anda memanggil titik akhir ini menggunakan AWS CLI atau SDK, itu secara lokal mengeksekusi fungsi Lambda yang ditentukan dalam permintaan, dan menampilkan respons.

  2. Jalankan uji integrasi terhadap titik akhir Lambda lokal.

    Dalam pengujian integrasi, Anda dapat menggunakan AWS SDK untuk menjalankan fungsi Lambda dengan data pengujian, menunggu respons, dan memverifikasi bahwa respons sesuai dengan yang Anda harapkan. Untuk menjalankan uji integrasi secara lokal, Anda harus mengonfigurasi SDK AWS untuk mengirim Lambda lalu memanggil panggilan API guna meminta titik akhir Lambda lokal yang telah Anda mulai pada langkah sebelumnya.

    Berikut ini adalah contoh Python ( AWS SDK untuk bahasa lain memiliki konfigurasi yang serupa):

    import boto3 import botocore # Set "running_locally" flag if you are running the integration test locally running_locally = True if running_locally: # Create Lambda SDK client to connect to appropriate Lambda endpoint lambda_client = boto3.client('lambda', region_name="us-west-2", endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=botocore.client.Config( signature_version=botocore.UNSIGNED, read_timeout=15, retries={'max_attempts': 0}, ) ) else: lambda_client = boto3.client('lambda') # Invoke your Lambda function as you normally usually do. The function will run # locally if it is configured to do so response = lambda_client.invoke(FunctionName="HelloWorldFunction") # Verify the response assert response == "Hello World"

    Anda dapat menggunakan kode ini untuk menguji fungsi Lambda yang di-deploy dengan mengatur running_locally ke False. Ini mengatur AWS SDK untuk terhubung AWS Lambda di AWS Cloud.