Pengantar pengujian dengan sam local start-lambda - AWS Serverless Application Model

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

Pengantar pengujian dengan sam local start-lambda

Gunakan Antarmuka Baris AWS Serverless Application Model Perintah (AWS SAM CLI) sam local start-lambda subperintah untuk memanggil AWS Lambda fungsi Anda melalui AWS Command Line Interface (AWS CLI) atau. SDKs Perintah ini memulai titik akhir lokal yang mengemulasi AWS Lambda.

Untuk menggunakansam local start-lambda, instal AWS SAM CLI dengan menyelesaikan hal-hal berikut:

Sebelum menggunakansam local start-lambda, kami merekomendasikan pemahaman dasar tentang hal-hal berikut:

Menggunakan sam local start-lambda

Ketika Anda berlarisam local start-lambda, AWS SAM CLI mengasumsikan bahwa direktori kerja Anda saat ini adalah direktori root proyek Anda. The AWS SAM CLI pertama-tama akan mencari template.[yaml|yml] file dalam .aws-sam subfolder. Jika tidak ditemukan, AWS SAM CLI akan mencari template.[yaml|yml] file dalam direktori kerja Anda saat ini.

Untuk menggunakan sam local start-lambda
  1. Dari direktori root proyek Anda, jalankan yang berikut ini:

    $ sam local start-lambda <options>
  2. The AWS SAM CLI membangun fungsi Lambda Anda di lokal Docker kontainer. Kemudian menampilkan alamat lokal ke titik akhir HTTP server Anda. Berikut adalah contohnya:

    $ sam local start-lambda Initializing the lambda functions containers. Local image is up-to-date Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64. Mounting /Users/.../sam-app/hello_world as /var/task:ro,delegated, inside runtime container Containers Initialization is done. Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint. 2023-04-13 07:25:43 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:3001 2023-04-13 07:25:43 Press CTRL+C to quit
  3. Gunakan AWS CLI atau SDKs untuk menjalankan fungsi Lambda Anda secara lokal.

    Berikut ini adalah contoh menggunakan AWS CLI:

    $ aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt StatusCode: 200 (END)

    Berikut ini adalah contoh menggunakan AWS SDK untuk Python:

    import boto3 from botocore.config import Config from botocore import UNSIGNED lambda_client = boto3.client('lambda', endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=Config(signature_version=UNSIGNED, read_timeout=1, retries={'max_attempts': 0} ) ) lambda_client.invoke(FunctionName="HelloWorldFunction")

Opsi

Tentukan templat

Untuk menentukan template untuk AWS SAM CLI untuk referensi, gunakan --template opsi. The AWS SAM CLI akan memuat hanya AWS SAM template itu dan sumber daya yang ditunjukkannya. Berikut adalah contohnya:

$ sam local start-lambda --template myTemplate.yaml

Praktik terbaik

Jika aplikasi Anda memiliki .aws-sam direktori dari berjalansam build, pastikan untuk menjalankan sam build setiap kali Anda memperbarui kode fungsi Anda. Kemudian, jalankan sam local start-lambda untuk menguji kode fungsi Anda yang diperbarui secara lokal.

Pengujian lokal adalah solusi hebat untuk pengembangan dan pengujian cepat sebelum menerapkan ke cloud. Namun, pengujian lokal tidak memvalidasi semuanya, seperti izin antar sumber daya Anda di cloud. Sebisa mungkin, uji aplikasi Anda di cloud. Sebaiknya gunakan sam sync untuk mempercepat alur kerja pengujian cloud Anda.

Pelajari selengkapnya

Untuk daftar semua sam local start-lambda opsi, lihatsam local start-lambda.