

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

# Menambahkan aturan listener untuk Application Load Balancer
<a name="add-rule"></a>

Anda menentukan aturan default saat membuat listener. Anda dapat menentukan aturan tambahan kapan saja. Setiap aturan harus menentukan tindakan dan kondisi, dan secara opsional dapat menentukan transformasi. Untuk informasi selengkapnya, lihat berikut ini:
+ [Jenis tindakan](rule-action-types.md)
+ [Jenis kondisi](rule-condition-types.md)
+ [Mengubah](rule-transforms.md)

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

**Untuk menambahkan aturan**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Listeners and rules**, pilih teks di kolom **Protocol:Port** untuk membuka halaman detail bagi listener.

1. Pada tab **Aturan**, pilih **Tambahkan aturan**.

1. (Opsional) Untuk menentukan nama untuk aturan Anda, perluas **Nama dan tag** dan masukkan nama. Untuk menambahkan tag tambahan, pilih **Tambahkan tag tambahan** dan masukkan kunci tag dan nilai tag.

1. Untuk setiap kondisi, pilih **Tambahkan kondisi**, pilih jenis kondisi, dan berikan nilai kondisi yang diperlukan:
   + **Header Host** - Pilih jenis pola kecocokan dan masukkan header host.

     **Pencocokan nilai** - Maksimum 128 karakter. Tidak peka terhadap huruf besar-kecil. Karakter yang diizinkan adalah a-z, A-Z, 0-9; karakter khusus berikut: -\_.; dan wildcard (\* dan?). Anda harus menyertakan setidaknya satu karakter ".". Anda hanya dapat memasukkan karakter alfabet setelah akhir karakter ".".

     **Pencocokan Regex** - Maksimum 128 karakter.
   + **Path** - Pilih jenis pola kecocokan dan masukkan jalur.

     **Pencocokan nilai** - Maksimum 128 karakter. Peka huruf besar/case. Karakter yang diizinkan adalah a-z, A-Z, 0-9; karakter khusus berikut: \_-.$/\~"'@: \+; &; dan wildcard (\* dan?).

     **Pencocokan Regex** - Maksimum 128 karakter.
   + **String kueri** - Masukkan pasangan kunci:nilai, atau nilai tanpa kunci.

     Maksimal 128 karakter. Tidak peka terhadap huruf besar-kecil. Karakter yang diizinkan adalah a-z, A-Z, 0-9; karakter khusus berikut: \_-. $/\~"'@: \+& ()\! ,; =; dan wildcard (\* dan?).
   + **Metode permintaan HTTP** - Masukkan metode permintaan HTTP.

     Maksimal 40 karakter. Peka huruf besar/case. Karakter yang diizinkan adalah A-Z, dan karakter khusus berikut: -\_. Wildcard tidak didukung.
   + **Header HTTP** - Pilih jenis pola kecocokan dan masukkan nama header dan string perbandingan.
     + **Nama header HTTP** - Aturan akan menilai permintaan yang berisi header ini untuk mengonfirmasi nilai yang cocok.

       **Pencocokan nilai** - Maksimum 40 karakter. Tidak peka terhadap huruf besar-kecil. Karakter yang diizinkan adalah a-z, A-Z, 0-9, dan karakter khusus berikut: \*? -\! \#$%&'\+.^\_`\|\~. Wildcard tidak didukung.

       **Pencocokan Regex** - Maksimum 128 karakter.
     + **Nilai header HTTP** - Masukkan string untuk dibandingkan dengan nilai header HTTP.

       **Pencocokan nilai** Maksimum 128 karakter. Tidak peka terhadap huruf besar-kecil. Karakter yang diizinkan adalah a-z, A-Z, 0-9; spasi; karakter khusus berikut:\! \#$%&' () \+,. /:; <=>@ [] ^\_` {\|} \~-; dan wildcard (\* dan?).

       **Pencocokan Regex** - Maksimum 128 karakter.
   + **Sumber IP** - Tentukan alamat IP sumber dalam format CIDR. Keduanya IPv4 dan IPv6 CIDRs diizinkan. Wildcard tidak didukung.

1. (Opsional) Untuk menambahkan transformasi, pilih **Tambahkan transformasi**, pilih jenis transformasi, dan masukkan ekspresi reguler untuk mencocokkan dan string pengganti.

1. (Opsional, hanya pendengar HTTPS) Untuk tindakan **Pra-perutean, pilih salah satu tindakan** berikut:
   + **Otentikasi pengguna** — Pilih penyedia identitas dan berikan informasi yang diperlukan. Untuk informasi selengkapnya, lihat [Mengautentikasi pengguna menggunakan Application Load Balancer](listener-authenticate-users.md).
   + **Validasi token** — Masukkan titik akhir JWKS, masalah, dan klaim tambahan apa pun. Untuk informasi selengkapnya, lihat [Verifikasi JWTs menggunakan Application Load Balancer](listener-verify-jwt.md).

1. Untuk **tindakan Routing**, pilih salah satu tindakan berikut:
   + **Teruskan ke grup sasaran** - Pilih grup sasaran. Untuk menambahkan grup target lain, pilih **Tambahkan grup target**, pilih grup target, tinjau bobot relatif, dan perbarui bobot sesuai kebutuhan. Anda harus mengaktifkan kelengketan tingkat grup jika Anda mengaktifkan kekakuan pada salah satu grup target.
   + **Redirect ke URL** - Masukkan URL dengan memasukkan setiap bagian secara terpisah pada tab **bagian URI**, atau dengan memasukkan alamat lengkap pada tab **URL Lengkap**. Untuk **kode Status**, pilih sementara (HTTP 302) atau permanen (HTTP 301) berdasarkan kebutuhan Anda.
   + **Kembalikan respons tetap** - Masukkan **kode Respons** untuk mengembalikan permintaan klien yang dijatuhkan. Secara opsional, Anda dapat menentukan **jenis Konten** dan **badan Respons**.

1. Pilih **Berikutnya**.

1. Untuk **Prioritas**, masukkan nilai dari 1-50.000. Aturan dievaluasi dalam urutan prioritas dari nilai terendah ke nilai tertinggi.

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, pilih **Buat**.

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

**Untuk menambahkan aturan**  
Gunakan perintah [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html).

Contoh berikut membuat aturan dengan `forward` tindakan dan `host-header` kondisi.

```
aws elbv2 create-rule \
    --listener-arn {{listener-arn}} \
    --priority {{10}} \
    --conditions "Field=host-header,Values={{example.com}},{{www.example.com}}" \
    --actions "Type=forward,TargetGroupArn={{target-group-arn}}"
```

Untuk membuat tindakan maju yang mendistribusikan lalu lintas antara dua kelompok target, gunakan `--actions` opsi berikut sebagai gantinya.

```
    --actions '[{
        "Type":"forward",
        "ForwardConfig":{
          "TargetGroups":[
            {"TargetGroupArn":"{{target-group-1-arn}}","Weight":{{50}}},
            {"TargetGroupArn":"{{target-group-2-arn}}","Weight":{{50}}}
          ]
        }
    }]'
```

Contoh berikut membuat aturan dengan `fixed-response` tindakan dan `source-ip` kondisi.

```
aws elbv2 create-rule \
    --listener-arn {{listener-arn}} \
    --priority {{20}} \
    --conditions '[{"Field":"source-ip","SourceIpConfig":{"Values":["{{192.168.1.0/24}}","{{10.0.0.0/16}}"]}}]' \
    --actions "Type=fixed-response,FixedResponseConfig={StatusCode=403,ContentType=text/plain,MessageBody='{{Access denied}}'}"
```

Contoh berikut membuat aturan dengan `redirect` tindakan dan `http-header` kondisi.

```
aws elbv2 create-rule \
    --listener-arn {{listener-arn}} \
    --priority {{30}} \
    --conditions '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName":"User-Agent","Values":["*Mobile*","*Android*","*iPhone*"]}}]' \
    --actions "Type=redirect,RedirectConfig={Host={{m.example.com}},StatusCode=HTTP_302}"
```

------
#### [ CloudFormation ]

**Untuk menambahkan aturan**  
Tentukan sumber daya tipe [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html).

Contoh berikut membuat aturan dengan `forward` tindakan dan `host-header` kondisi. Aturan mengirimkan lalu lintas ke grup target yang ditentukan ketika kondisi terpenuhi.

```
Resources:
    myForwardListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: {{10}}
       Conditions:
         - Field: host-header
           Values:
             - {{example.com}}
             - {{www.example.com}}
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
```

Atau, untuk membuat tindakan maju yang mendistribusikan lalu lintas antara dua kelompok target ketika kondisi terpenuhi, tentukan `Actions` sebagai berikut.

```
       Actions:
         - Type: forward
           ForwardConfig:
             TargetGroups:
               - TargetGroupArn: !Ref TargetGroup1
                 Weight: {{50}}
               - TargetGroupArn: !Ref TargetGroup2
                 Weight: {{50}}
```

Contoh berikut membuat aturan dengan `fixed-response` tindakan dan `source-ip` kondisi.

```
Resources:
    myFixedResponseListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: {{20}}
       Conditions:
         - Field: source-ip
           SourceIpConfig:
             Values:
                - {{192.168.1.0/24}}
                - {{10.0.0.0/16}}
       Actions:
         - Type: fixed-response
           FixedResponseConfig:
             StatusCode: 403
             ContentType: text/plain
             MessageBody: "{{Access denied}}"
```

Contoh berikut membuat aturan dengan `redirect` tindakan dan `http-header` kondisi.

```
Resources:
    myRedirectListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: {{30}}
       Conditions:
         - Field: http-header
           HttpHeaderConfig:
             HttpHeaderName: User-Agent
             Values: 
               - "*Mobile*"
               - "*Android*"
               - "*iPhone*"
       Actions:
         - Type: redirect
           RedirectConfig:
             Host: {{m.example.com}}
             StatusCode: HTTP_302
```

------