

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

# Mengaktifkan dan mengelola Lambda SnapStart
<a name="snapstart-activate"></a>

Untuk menggunakan SnapStart, aktifkan SnapStart pada fungsi Lambda baru atau yang sudah ada. Kemudian, publikasikan dan panggil versi fungsi.

**Topics**
+ [Mengaktifkan SnapStart (konsol)](#snapshot-console)
+ [Mengaktifkan SnapStart (AWS CLI)](#snapshot-cli)
+ [Mengaktifkan SnapStart (API)](#snapshot-api)
+ [Lambda SnapStart dan keadaan fungsi](#snapstart-function-states)
+ [Memperbarui snapshot](#update-snapshot)
+ [Menggunakan SnapStart dengan AWS SDK](#snapstart-credentials)
+ [Menggunakan SnapStart dengan CloudFormation, AWS SAM, dan AWS CDK](#snapstart-cfn-sam)
+ [Menghapus snapshot](#snapshot-delete)

## Mengaktifkan SnapStart (konsol)
<a name="snapshot-console"></a>

**Untuk mengaktifkan SnapStart untuk suatu fungsi**

1. Buka [Halaman fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih nama sebuah fungsi.

1. Pilih ** Konfigur ** asi, lalu pilih Konfigur ** asi umum**.

1. Pada ** panel konfigurasi ** umum, pilih ** Edit**.

1. Pada ** halaman ** Edit pengaturan dasar, untuk ** SnapStart**, pilih Versi ** yang diterbitkan**.

1. Pilih **Simpan**.

1. [Publikasikan versi fungsi](configuration-versions.md#configuration-versions-config). Lambda menginisialisasi kode Anda, membuat snapshot dari lingkungan eksekusi yang diinisialisasi, dan kemudian menyimpan snapshot untuk akses latensi rendah.

1. [Memanggil versi ](configuration-versions.md#versioning-versions-using) fungsi.

## Mengaktifkan SnapStart (AWS CLI)
<a name="snapshot-cli"></a>

**SnapStart Untuk mengaktifkan fungsi yang ada**

1. Perbarui konfigurasi fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) update-function-configuration dengan opsi. **--snap-start**

   ```
   aws lambda update-function-configuration \
     --function-name my-function \
     --snap-start ApplyOn=PublishedVersions
   ```

1. Publikasikan versi fungsi dengan perintah [ publish-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/publish-version.html).

   ```
   aws lambda publish-version \
     --function-name my-function
   ```

1. Konfirmas SnapStart ikan bahwa diaktifkan untuk versi fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/get-function-configuration.html) get-function-configuration dan menentukan nomor versi. Contoh berikut menentukan versi 1.

   ```
   aws lambda get-function-configuration \
     --function-name my-function:{{1}}
   ```

   Jika respons menunjukkan bahwa [ OptimizationStatus ](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html) adalah `On` dan [ State ](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) is`Active`, maka SnapStart diaktifkan dan snapshot tersedia untuk versi fungsi yang ditentukan.

   ```
   "SnapStart": { 
       "ApplyOn": "PublishedVersions",
       "OptimizationStatus": "On"
    },
    "State": "Active",
   ```

1. Memanggil versi fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/invoke.html) invoke dan menentukan versi. Contoh berikut memanggil versi 1.

   ```
   aws lambda invoke \
     --cli-binary-format raw-in-base64-out \
     --function-name my-function:{{1}} \
     --payload '{ "name": "Bob" }' \
     response.json
   ```

   **cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat opsi baris perintah global yang [AWS CLI didukung ](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di Panduan *AWS Command Line Interface Pengguna untuk Versi 2*.

**Untuk mengaktifkan SnapStart saat Anda membuat fungsi baru**

1. Buat fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) create-function dengan opsi. **--snap-start** Untuk**--role**, tentukan Nama Sumber Daya Amazon (ARN) dari peran [ eksekusi Anda](lambda-intro-execution-role.md).
**catatan**  
Jika Anda menggunakan SnapStart dengan OCI-based fungsi yang menggunakan gambar dasar selain gambar dasar Lambda untuk Java (versi 11\+), Python (versi 3.12\+), dan .NET (versi 8\+), ikuti instruksi di [Mener SnapStart apkan kait untuk gambar kontainer](snapstart-runtime-hooks-custom.md) untuk membuat gambar Anda kompatibel dengan. AWS SnapStart

   ```
   aws lambda create-function \
     --function-name {{my-function}} \
     --runtime "{{java25}}" \
     --zip-file fileb://my-function.zip \
     --handler my-function.handler \
     --role {{arn:aws:iam::111122223333:role/lambda-ex}} \
     --snap-start ApplyOn=PublishedVersions
   ```

1. Buat versi dengan perintah [ publish-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/publish-version.html).

   ```
   aws lambda publish-version \
     --function-name {{my-function}}
   ```

1. Konfirmas SnapStart ikan bahwa diaktifkan untuk versi fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/get-function-configuration.html) get-function-configuration dan menentukan nomor versi. Contoh berikut menentukan versi 1.

   ```
   aws lambda get-function-configuration \
     --function-name my-function:{{1}}
   ```

   Jika respons menunjukkan bahwa [ OptimizationStatus ](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html) adalah `On` dan [ State ](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) is`Active`, maka SnapStart diaktifkan dan snapshot tersedia untuk versi fungsi yang ditentukan.

   ```
   "SnapStart": { 
        "ApplyOn": "PublishedVersions",
        "OptimizationStatus": "On"
     },
     "State": "Active",
   ```

1. Memanggil versi fungsi dengan menjalankan [ perintah ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/invoke.html) invoke dan menentukan versi. Contoh berikut memanggil versi 1.

   ```
   aws lambda invoke \
     --cli-binary-format raw-in-base64-out \
     --function-name my-function:{{1}} \
     --payload '{ "name": "Bob" }' \
     response.json
   ```

   **cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat opsi baris perintah global yang [AWS CLI didukung ](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di Panduan *AWS Command Line Interface Pengguna untuk Versi 2*.

## Mengaktifkan SnapStart (API)
<a name="snapshot-api"></a>

**Untuk mengaktifkan SnapStart**

1. Lakukan salah satu tindakan berikut:
   + Buat fungsi baru dengan SnapStart diaktifkan dengan menggunakan tindakan [ CreateFunction ](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html) API dengan [ SnapStart ](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStart.html) parameter.
   + Akti SnapStart fkan untuk fungsi yang ada dengan menggunakan [ UpdateFunctionConfiguration ](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) tindakan dengan [ SnapStart ](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStart.html) parameter.

1. Publikasikan versi fungsi dengan [ PublishVersion ](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html) tindakan. Lambda menginisialisasi kode Anda, membuat snapshot dari lingkungan eksekusi yang diinisialisasi, dan kemudian menyimpan snapshot untuk akses latensi rendah.

1. Konfirmasikan bahwa SnapStart diaktifkan untuk versi fungsi dengan menggunakan [ GetFunctionConfiguration ](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html) tindakan. Tentukan nomor versi untuk mengonfirmasi bahwa SnapStart diaktifkan untuk versi tersebut. Jika respons menunjukkan bahwa [ OptimizationStatus ](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html) adalah `On` dan [ State ](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) is`Active`, maka SnapStart diaktifkan dan snapshot tersedia untuk versi fungsi yang ditentukan.

   ```
   "SnapStart": { 
           "ApplyOn": "PublishedVersions",
           "OptimizationStatus": "On"
        },
        "State": "Active",
   ```

1. Memanggil versi fungsi dengan tindakan [ Invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html).

## Lambda SnapStart dan keadaan fungsi
<a name="snapstart-function-states"></a>

Status fungsi berikut dapat terjadi saat Anda menggunakan SnapStart.

**Tertunda**  
Lambda menginisialisasi kode Anda dan mengambil snapshot dari lingkungan eksekusi yang diinisialisasi. Setiap pemanggilan atau tindakan API lainnya yang beroperasi pada versi fungsi gagal.

**Aktif**  
Pembuatan snapshot selesai dan Anda dapat memanggil fungsi. Untuk menggunakan SnapStart, Anda harus memanggil versi fungsi yang diterbitkan, bukan versi yang tidak dipublikasikan ($LATEST).

**Tidak aktif**  
`Inactive`Status dapat terjadi ketika Lambda secara berkala meregenerasi snapshot fungsi untuk menerapkan pembaruan perangkat lunak. Dalam hal ini, jika fungsi Anda gagal diinisialisasi, fungsi dapat memasuki `Inactive` status.  
Untuk fungsi yang menggunakan runtime Java, Lambda menghapus snapshot setelah 14 hari tanpa pemanggilan. Jika Anda memanggil versi fungsi setelah 14 hari, Lambda mengembalikan `SnapStartNotReadyException` respons dan mulai menginisialisasi snapshot baru. Tunggu sampai versi fungsi mencapai `Active` status, lalu panggil lagi.

**Gagal**  
Lambda mengalami kesalahan saat menjalankan kode inisialisasi atau membuat snapshot.

## Memperbarui snapshot
<a name="update-snapshot"></a>

Lambda membuat snapshot untuk setiap versi fungsi yang diterbitkan. Untuk memperbarui snapshot, publikasikan versi fungsi baru.

## Menggunakan SnapStart dengan AWS SDK
<a name="snapstart-credentials"></a>

Untuk membuat panggilan AWS SDK dari fungsi Anda, Lambda menghasilkan kumpulan kredenSIAL sementara dengan mengambil peran eksekusi fungsi Anda. KredenSIAL ini tersedia sebagai variabel lingkungan selama pemanggilan fungsi Anda. Anda tidak perlu memberikan kredenSIAL untuk SDK secara langsung dalam kode. Secara default, rantai penyedia kredensi secara berurutan memeriksa setiap tempat di mana Anda dapat mengatur kredenSIAL dan memilih yang pertama tersedia—biasanya variabel lingkungan (`AWS_ACCESS_KEY_ID`,, dan). `AWS_SECRET_ACCESS_KEY` `AWS_SESSION_TOKEN`

**catatan**  
Ketika SnapStart diaktifkan, runtime Lambda secara otomatis menggunakan kredenSIAL kontainer (`AWS_CONTAINER_CREDENTIALS_FULL_URI`dan`AWS_CONTAINER_AUTHORIZATION_TOKEN`) alih-alih variabel lingkungan kunci akses. Ini mencegah kredenSIAL kedaluwarsa sebelum fungsi dipulihkan.

## Menggunakan SnapStart dengan CloudFormation, AWS SAM, dan AWS CDK
<a name="snapstart-cfn-sam"></a>
+ **AWS CloudFormation: ** Deklarasikan [ SnapStart ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html) entitas dalam template Anda.
+ **AWS Serverless Application Model (AWS SAM): ** Deklarasikan [ SnapStart ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-snapstart) properti di template Anda.
+ **AWS Cloud Development Kit (AWS CDK): ** Gunakan jen [ SnapStartProperty ](https://docs.aws.amazon.com/cdk/api/v2/java/software/amazon/awscdk/services/lambda/CfnFunction.SnapStartProperty.html) isnya.

## Menghapus snapshot
<a name="snapshot-delete"></a>

Lambda menghapus snapshot saat:
+ Anda menghapus fungsi atau versi fungsi.
+ **Hanya runtime Java ** — Anda tidak memanggil versi fungsi selama 14 hari. Setelah 14 hari tanpa pemanggilan, versi fungsi beralih ke status Tidak [ aktif](#snapstart-function-states). Jika Anda memanggil versi fungsi setelah 14 hari, Lambda mengembalikan `SnapStartNotReadyException` respons dan mulai menginisialisasi snapshot baru. Tunggu sampai versi fungsi mencapai [Lambda SnapStart dan keadaan fungsi](#snapstart-function-states) status Aktif, lalu panggil lagi.

Lambda menghapus semua sumber daya yang terkait dengan snapshot yang dihapus sesuai dengan Peraturan Perlindungan Data Umum (GDPR).