

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
<a name="using-sam-cli-local-start-lambda"></a>

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.
+ Untuk pengantar AWS SAMCLI, lihat [Apa itu AWS SAMCLI?](what-is-sam-overview.md#what-is-sam-cli)
+ Untuk daftar opsi `sam local start-lambda` perintah, lihat[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

**catatan**  
`sam local start-lambda`mendukung fungsi tahan lama dengan kemampuan checkpointing dan replay otomatis. Fungsi tahan lama bekerja dengan mulus dengan titik akhir Lambda lokal.

## Prasyarat
<a name="using-sam-cli-local-start-api-prerequisites"></a>

Untuk menggunakan`sam local start-lambda`, instal AWS SAMCLI dengan menyelesaikan yang berikut ini:
+ [AWS SAM prasyarat](prerequisites.md).
+ [Instal AWS SAMCLI](install-sam-cli.md).

Sebelum menggunakan`sam local start-lambda`, kami merekomendasikan pemahaman dasar tentang hal-hal berikut:
+ [Mengkonfigurasi AWS SAMCLI](using-sam-cli-configure.md).
+ [Buat aplikasi Anda di AWS SAM](using-sam-cli-init.md).
+ [Pengantar bangunan dengan AWS SAM](using-sam-cli-build.md).
+ [Pengantar penerapan dengan AWS SAM](using-sam-cli-deploy.md).

## Menggunakan sam local start-lambda
<a name="using-sam-cli-local-start-lambda-use"></a>

Ketika Anda menjalankan`sam 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>
   ```

1.  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
   ```

1. 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
<a name="using-sam-cli-local-start-lambda-options"></a>

### Tentukan templat
<a name="using-sam-cli-local-start-lambda-options-template"></a>

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, lihat[AWS SAM template anatomi](sam-specification-template-anatomy.md).

## Praktik terbaik
<a name="using-sam-cli-local-start-lambda-best"></a>

Jika aplikasi Anda memiliki `.aws-sam` direktori dari berjalan`sam 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`](using-sam-cli-sync.md) untuk mempercepat alur kerja pengujian cloud Anda.

## Pelajari selengkapnya
<a name="using-sam-cli-local-start-lambda-learn"></a>

Untuk daftar semua `sam local start-lambda` opsi, lihat[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).