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 AWS SAMCLI subperintah sam local start-lambda untuk menjalankan fungsi Lambda Anda melalui dan. AWS CLI SDKs Perintah ini memulai endpoint lokal yang mengemulasi Lambda.

catatan

sam local start-lambdamendukung fungsi tahan lama dengan kemampuan checkpointing dan replay otomatis. Fungsi tahan lama bekerja dengan mulus dengan titik akhir Lambda lokal.

Untuk menggunakansam local start-lambda, instal AWS SAMCLI dengan menyelesaikan yang berikut ini:

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

Menggunakan sam local start-lambda

Ketika Anda menjalankansam local start-lambda, AWS SAMCLI mengasumsikan bahwa direktori kerja Anda saat ini adalah direktori root proyek Anda. Yang pertama AWS SAMCLI akan mencari template.[yaml|yml] file dalam .aws-sam subfolder. Jika tidak ditemukan, AWS SAMCLI 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. AWS SAMCLIMembangun fungsi Lambda Anda dalam wadah Docker lokal. Kemudian output alamat lokal ke endpoint server HTTP Anda. Berikut ini 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 forPython:

    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 referensi AWS SAMCLI ke, gunakan --template opsi. AWS SAMCLIAkan memuat hanya AWS SAM template itu dan sumber daya yang ditunjukkannya. Berikut ini adalah contohnya:

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

Untuk informasi lebih lanjut tentang AWS SAM template, lihatAWS SAM template anatomi.

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.