

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

# Menerapkan penerapan kenari Lambda menggunakan alias tertimbang
<a name="configuring-alias-routing"></a>

Anda dapat menggunakan alias tertimbang untuk membagi lalu lintas antara dua [versi berbeda dari fungsi](configuration-versions.md) yang sama. Dengan pendekatan ini, Anda dapat menguji versi baru dari fungsi Anda dengan persentase lalu lintas yang kecil dan dengan cepat memutar kembali jika perlu. Ini dikenal sebagai [penyebaran kenari](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/canary-deployments.html). Penerapan Canary berbeda dari blue/green penerapan dengan mengekspos versi baru hanya pada sebagian permintaan daripada mengalihkan semua lalu lintas sekaligus.

Anda dapat mengarahkan alias ke maksimal dua versi fungsi Lambda. Versi harus memenuhi kriteria berikut:
+ Kedua versi harus memiliki [peran eksekusi](lambda-intro-execution-role.md) sama.
+ Kedua versi harus memiliki konfigurasi [antrean surat mati](invocation-async-retain-records.md#invocation-dlq) sama, atau tidak ada konfigurasi antrean surat mati.
+ Kedua versi tersebut harus dipublikasikan. Alias tidak dapat menunjuk ke `$LATEST`.

**catatan**  
Lambda menggunakan model probabilistik sederhana untuk mendistribusikan lalu lintas di antara dua versi fungsi. Pada tingkat lalu lintas rendah, Anda mungkin melihat varians tinggi di antara persentase lalu lintas yang dikonfigurasi dan aktual di setiap versi. Jika fungsi Anda menggunakan konkurensi terprovisi, Anda dapat menghindari [invokasi limpahan](monitoring-metrics-types.md#invocation-metrics) dengan mengonfigurasi jumlah yang lebih tinggi dari instans konkurensi terprovisi selama perutean alias aktif. 

## Buat alias tertimbang
<a name="create-weighted-alias"></a>

------
#### [ Console ]

**Untuk mengonfigurasi perutean pada alias menggunakan konsol**
**catatan**  
Verifikasi bahwa fungsi memiliki setidaknya dua versi yang dipublikasikan. Untuk membuat versi tambahan, ikuti petunjuk dalam [Membuat versi fungsi](configuration-versions.md#configuration-versions-config).

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

1. Pilih fungsi.

1. Pilih **Alias**, lalu pilih **Buat alias**.

1. Di halaman **Buat alias**, lakukan hal berikut:

   1. Masukkan **Nama** untuk alias.

   1. (Opsional) Masukkan **Deskripsi** untuk alias.

   1. Untuk **Versi**, pilih versi fungsi pertama yang ingin Anda tunjuk.

   1. Perluas **Alias tertimbang**.

   1. Untuk **Versi tambahan**, pilih versi fungsi kedua yang ingin Anda tunjuk.

   1. Untuk **Bobot (%)**, masukkan nilai bobot untuk fungsi. *Bobot* adalah persentase lalu lintas yang ditetapkan untuk versi tersebut ketika alias dipanggil. Versi pertama menerima bobot residual. Misalnya, jika Anda menentukan 10 persen ke **Versi tambahan**, versi pertama ditetapkan ke 90 persen secara otomatis.

   1. Pilih **Simpan**.

------
#### [ AWS CLI ]

Gunakan AWS CLI perintah [create-alias dan [update-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-alias.html)](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-alias.html) untuk mengonfigurasi bobot lalu lintas antara dua versi fungsi. Saat membuat atau memperbarui alias, Anda menentukan berat lalu lintas dalam parameter `routing-config`.

Contoh berikut membuat alias fungsi Lambda bernama **routing-alias** yang menunjuk ke versi 1 dari fungsi. Versi 2 fungsi menerima 3 persen lalu lintas. 97 persen lalu lintas yang tersisa diarahkan ke versi 1.

```
aws lambda create-alias \
  --name routing-alias \
  --function-name my-function \
  --function-version 1  \
  --routing-config AdditionalVersionWeights={"2"=0.03}
```

Gunakan perintah `update-alias` untuk meningkatkan persentase lalu lintas masuk ke versi 2. Dalam contoh berikut, Anda meningkatkan lalu lintas menjadi 5 persen.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function \
  --routing-config AdditionalVersionWeights={"2"=0.05}
```

Untuk mengirimkan semua lalu lintas ke versi 2, gunakan `update-alias` untuk mengubah properti `function-version` untuk menunjuk alias ke versi 2. Perintah juga mengatur ulang konfigurasi perutean.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function  \
  --function-version 2 \
  --routing-config AdditionalVersionWeights={}
```

 AWS CLI Perintah pada langkah sebelumnya sesuai dengan operasi API Lambda berikut:
+ [CreateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_CreateAlias.html)
+ [UpdateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateAlias.html)

------

## Menentukan versi mana yang dipanggil
<a name="determining-routing-version"></a>

Saat Anda mengonfigurasi bobot lalu lintas di antara dua versi fungsi, ada dua cara untuk menentukan versi fungsi Lambda yang sudah dipanggil:
+ **CloudWatch Log** — Lambda secara otomatis memancarkan entri `START` log yang berisi ID versi yang dipanggil untuk setiap pemanggilan fungsi. Contoh:

  `START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version: 2` 

  Untuk invokasi alias, Lambda menggunakan dimensi `ExecutedVersion` untuk memfilter data metrik dengan versi yang dipanggil. Untuk informasi selengkapnya, lihat [Melihat metrik untuk fungsi Lambda](monitoring-metrics-view.md).
+ **Muatan respons (invokasi tersinkron)** – Respons untuk invokasi fungsi tersinkron yang mencakup header `x-amz-executed-version` untuk menunjukkan versi fungsi mana yang telah dipanggil.

## Buat penerapan bergulir dengan alias tertimbang
<a name="lambda-rolling-deployments"></a>

Use AWS CodeDeploy and AWS Serverless Application Model (AWS SAM) untuk membuat penerapan bergulir yang secara otomatis mendeteksi perubahan pada kode fungsi Anda, menerapkan versi baru fungsi Anda, dan secara bertahap meningkatkan jumlah lalu lintas yang mengalir ke versi baru. Jumlah lalu lintas dan tingkat peningkatan adalah parameter yang dapat Anda konfigurasi.

Dalam penerapan bergulir, AWS SAM lakukan tugas-tugas ini:
+ Mengkonfigurasi fungsi Lambda Anda dan membuat alias. Konfigurasi routing alias tertimbang adalah kemampuan dasar yang mengimplementasikan penerapan bergulir.
+ Membuat grup CodeDeploy aplikasi dan penyebaran. Grup penyebaran mengelola penerapan bergulir dan rollback, jika diperlukan.
+ Mendeteksi saat Anda membuat versi baru fungsi Lambda Anda.
+ Pemicu CodeDeploy untuk memulai penyebaran versi baru.

### Contoh AWS SAM template
<a name="sam-template"></a>

Contoh berikut menunjukkan [templat AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html) untuk deployment bergulir sederhana. 

```
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A sample SAM template for deploying Lambda functions

Resources:
# Details about the myDateTimeFunction Lambda function
  myDateTimeFunction:
    Type: [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)
    Properties:
      Handler: myDateTimeFunction.handler
      Runtime: nodejs24.x
# Creates an alias named "live" for the function, and automatically publishes when you update the function.
      AutoPublishAlias: live
      DeploymentPreference:
# Specifies the deployment configuration
          Type: Linear10PercentEvery2Minutes
```

Templat ini menentukan fungsi Lambda bernama `myDateTimeFunction` dengan properti berikut. 

**AutoPublishAlias **  
Properti `AutoPublishAlias` membuat alias bernama `live`. Selain itu, kerangka kerja AWS SAM secara otomatis mendeteksi saat Anda menyimpan kode baru untuk fungsi tersebut. Kerangka kerja kemudian menerbitkan versi fungsi baru dan memperbarui alias `live` untuk mengarah ke versi baru.

**DeploymentPreference**  
`DeploymentPreference`Properti menentukan tingkat di mana CodeDeploy aplikasi menggeser lalu lintas dari versi asli fungsi Lambda ke versi baru. Nilai `Linear10PercentEvery2Minutes` menggeser sepuluh persen tambahan lalu lintas ke versi baru setiap dua menit.   
Untuk daftar konfigurasi deployment yang ditetapkan sebelumnya, lihat [Konfigurasi deployment](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html). 

Untuk informasi selengkapnya tentang cara membuat penerapan bergulir dengan CodeDeploy dan AWS SAM, lihat berikut ini:
+ [Tutorial: Menyebarkan fungsi CodeDeploy Lambda yang diperbarui dengan dan AWS Serverless Application Model](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-lambda-sam.html)
+ [Menerapkan aplikasi tanpa server secara bertahap dengan AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)