

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

# Buat alias untuk fungsi Lambda
<a name="configuration-aliases"></a>

Anda dapat membuat alias untuk fungsi Lambda Anda. Alias Lambda adalah penunjuk ke versi fungsi yang dapat Anda perbarui. Pengguna fungsi dapat mengakses versi fungsi menggunakan alias Amazon Resource Name (ARN). Saat menerapkan versi baru, Anda dapat memperbarui alias untuk menggunakan versi baru, atau membagi lalu lintas di antara dua versi.

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

**Untuk membuat alias menggunakan konsol**

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 yang ingin Anda tunjuk.

   1. (Opsional) Untuk mengonfigurasikan routing pada alias, perluas **Alias tertimbang**. Untuk informasi selengkapnya, lihat [Menerapkan penerapan kenari Lambda menggunakan alias tertimbang](configuring-alias-routing.md).

   1. Pilih **Simpan**.

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

Untuk membuat alias menggunakan AWS Command Line Interface (AWS CLI), gunakan perintah [create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-alias.html).

```
aws lambda create-alias \
  --function-name my-function \
  --name alias-name \
  --function-version version-number \
  --description " "
```

Untuk mengubah alias untuk mengarahkan versi baru fungsi, gunakan perintah [update-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-alias.html).

```
aws lambda update-alias \
  --function-name my-function \
  --name alias-name \
  --function-version version-number
```

Untuk menghapus alias, gunakan perintah [delete-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/delete-alias.html).

```
aws lambda delete-alias \
  --function-name my-function \
  --name alias-name
```

 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)
+ [DeleteAlias](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteAlias.html)

------

# Menggunakan alias Lambda dalam sumber peristiwa dan kebijakan izin
<a name="using-aliases"></a>

Setiap alias memiliki ARN yang unik. Alias hanya dapat menunjuk ke versi fungsi, bukan ke alias lain. Anda dapat memperbarui alias untuk menunjuk ke versi baru fungsi ini.

Sumber event seperti Amazon Simple Storage Service (Amazon S3) menginvokasi fungsi Lambda Anda. Sumber-sumber event ini mempertahankan pemetaan yang mengidentifikasi fungsi untuk diinvokasi ketika event terjadi. Jika Anda menentukan alias fungsi Lambda dalam konfigurasi pemetaan, Anda tidak perlu memperbarui pemetaan saat versi fungsi berubah. Untuk informasi selengkapnya, lihat [Bagaimana Lambda memproses catatan dari sumber acara berbasis streaming dan antrian](invocation-eventsourcemapping.md).

Dalam kebijakan sumber daya, Anda dapat memberikan izin kepada sumber event untuk menggunakan fungsi Lambda Anda. Jika Anda menentukan ARN alias dalam kebijakan, Anda tidak perlu memperbarui kebijakan ketika versi fungsi berubah.

## Kebijakan sumber daya
<a name="versioning-permissions-alias"></a>

Anda dapat menggunakan [kebijakan berbasis sumber daya](access-control-resource-based.md) untuk memberikan layanan, sumber daya, atau akses akun ke fungsi Anda. Cakupan izin tersebut tergantung pada apakah Anda menerapkannya ke alias, versi, atau keseluruhan fungsi. Misalnya, jika Anda menggunakan nama alias (seperti `helloworld:PROD`), izin tersebut memungkinkan Anda untuk menginvokasi `helloworld` menggunakan ARN alias (`helloworld:PROD`).

Jika Anda mencoba memanggil fungsi tersebut tanpa alias atau versi tertentu, Anda mendapatkan kesalahan izin. Kesalahan izin ini masih terjadi meskipun Anda berupaya untuk memanggil secara langsung versi fungsi yang terkait dengan alias.

Misalnya, AWS CLI perintah berikut memberikan izin Amazon S3 untuk memanggil alias PROD dari fungsi tersebut `helloworld` saat Amazon S3 bertindak atas nama. `amzn-s3-demo-bucket`

```
aws lambda add-permission \
  --function-name helloworld \
  --qualifier PROD \
  --statement-id 1 \
  --principal s3.amazonaws.com \
  --action lambda:InvokeFunction \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012
```

Untuk informasi selengkapnya tentang menggunakan nama sumber daya dalam kebijakan, lihat [Menyesuaikan bagian Sumber Daya dan Ketentuan kebijakan](lambda-api-permissions-ref.md).

# 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)