Jenis tindakan untuk aturan pendengar - Elastic Load Balancing

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

Jenis tindakan untuk aturan pendengar

Tindakan menentukan cara penyeimbang beban menangani permintaan saat kondisi untuk aturan pendengar terpenuhi. Setiap aturan harus memiliki setidaknya satu tindakan yang menentukan cara menangani permintaan yang cocok. Setiap tindakan aturan memiliki jenis dan informasi konfigurasi. Application Load Balancers mendukung jenis tindakan berikut untuk aturan listener.

Jenis tindakan
authenticate-cognito

[Listener HTTPS] Gunakan Amazon Cognito untuk mengautentikasi pengguna. Untuk informasi selengkapnya, lihat Mengonfigurasi autentikasi pengguna.

authenticate-oidc

[Listener HTTPS] Gunakan penyedia identitas yang sesuai dengan OpenID Connect (OIDC) untuk mengautentikasi pengguna. Untuk informasi selengkapnya, lihat Mengonfigurasi autentikasi pengguna.

fixed-response

Kembalikan respons HTTP khusus. Untuk informasi selengkapnya, lihat Tindakan respons tetap.

forward

Meneruskan permintaan ke kelompok target yang ditentukan. Untuk informasi selengkapnya, lihat Tindakan ke depan.

redirect

Mengalihkan permintaan dari satu URL ke URL lainnya. Untuk informasi selengkapnya, lihat Tindakan pengalihan.

Dasar-dasar tindakan
  • Setiap aturan harus menyertakan salah satu tindakan routing berikut:forward,redirect, ataufixed-response, dan itu harus menjadi tindakan terakhir yang harus dilakukan.

  • Pendengar HTTPS dapat memiliki aturan dengan tindakan otentikasi pengguna dan tindakan perutean.

  • Ketika ada beberapa tindakan, tindakan dengan prioritas terendah dilakukan terlebih dahulu.

  • Jika versi protokol adalah gRPC atau HTTP/2, satu-satunya tindakan yang didukung adalah tindakan. forward

Tindakan respons tetap

fixed-responseTindakan menjatuhkan permintaan klien dan mengembalikan respons HTTP kustom. Anda dapat menggunakan tindakan ini untuk mengembalikan kode respons 2XX, 4XX, atau 5XX dan pesan opsional.

Saat tindakan fixed-response diambil, tindakan dan URL dari target pengalihan dicatat dalam log akses. Untuk informasi selengkapnya, lihat Entri log akses. Hitungan tindakan fixed-response yang berhasil dilaporkan dalam metrik HTTP_Fixed_Response_Count. Untuk informasi selengkapnya, lihat Metrik Application Load Balancer.

contoh Contoh tindakan respons tetap untuk AWS CLI

Anda dapat menentukan tindakan ketika Anda membuat atau memodifikasi peraturan. Untuk informasi lebih lanjut, lihat perintah buat-peraturan dan modifikasi-peraturan. Tindakan berikut mengirimkan respons tetap dengan kode status dan tubuh pesan yang ditentukan.

[ { "Type": "fixed-response", "FixedResponseConfig": { "StatusCode": "200", "ContentType": "text/plain", "MessageBody": "Hello world" } } ]

Tindakan ke depan

Tindakan forward mengarahkan permintaan ke grup targetnya. Sebelum Anda menambahkan tindakan forward, buat kelompok target dan tambahkan target untuk kelompok itu. Untuk informasi selengkapnya, lihat Buat grup target untuk Application Load Balancer.

Jika Anda menentukan beberapa kelompok target untuk tindakan forward, Anda harus menentukan bobot untuk setiap grup target. Bobot setiap grup target adalah nilai dari 0 hingga 999. Permintaan yang sesuai dengan peraturan listener dengan kelompok target tertimbang didistribusikan ke grup target ini berdasarkan bobot mereka. Misalnya, jika Anda menentukan dua grup target, masing-masing dengan bobot 10, setiap grup target menerima setengah dari permintaan. Jika Anda menentukan dua grup target, satu dengan bobot 10 dan lainnya dengan bobot 20, grup target dengan bobot 20 menerima permintaan dua kali lebih banyak dari grup target lainnya.

Jika Anda mengonfigurasi aturan untuk mendistribusikan lalu lintas antara grup target tertimbang dan salah satu grup target kosong atau hanya memiliki target yang tidak sehat, penyeimbang beban tidak secara otomatis gagal ke grup target dengan target yang sehat.

Secara default, mengonfigurasi aturan untuk mendistribusikan lalu lintas di antara grup target berbobot tidak menjamin bahwa sesi lekat akan dipenuhi. Untuk memastikan bahwa sesi lekat dipatuhi, aktifkan kelekatan grup target untuk peraturan. Saat penyeimbang beban pertama kali merutekan permintaan ke grup target tertimbang, ia menghasilkan cookie bernama AWSALBTG yang mengkodekan informasi tentang grup target yang dipilih, mengenkripsi cookie, dan menyertakan cookie dalam respons terhadap klien. Klien harus menyertakan cookie yang diterimanya dalam permintaan berikutnya ke penyeimbang beban. Saat penyeimbang beban menerima permintaan yang cocok dengan peraturan dengan kelengketan grup target yang diaktifkan dan berisi cookie, permintaan akan diarahkan ke grup target yang ditentukan dalam cookie.

Application Load Balancer tidak mendukung nilai cookie yang dienkode URL.

Dengan permintaan CORS (cross-origin resource sharing), beberapa peramban memerlukan SameSite=None; Secure untuk mengaktifkan kelekatan. Dalam hal ini, Elastic Load Balancing menghasilkan cookie kedua AWSALBTGCORS, yang mencakup informasi yang sama dengan cookie lengket asli ditambah atribut ini. SameSite Klien menerima kedua cookie.

contoh Contoh tindakan maju dengan satu grup target

Anda dapat menentukan tindakan ketika Anda membuat atau memodifikasi peraturan. Untuk informasi lebih lanjut, lihat perintah buat-peraturan dan modifikasi-peraturan. Tindakan berikut meneruskan permintaan ke grup target yang ditentukan.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" } ] } } ]
contoh Contoh tindakan maju dengan dua kelompok target tertimbang

Tindakan berikut meneruskan permintaan ke dua grup target yang ditentukan, berdasarkan berat masing-masing grup target.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59", "Weight": 20 } ] } } ]
contoh Contoh tindakan maju dengan kelengketan diaktifkan

Jika Anda memiliki tindakan maju dengan beberapa grup target dan satu grup target atau lebih memiliki sesi lekat yang diaktifkan, Anda harus mengaktifkan kelekatan grup target.

Tindakan berikut meneruskan permintaan ke dua grup target yang ditentukan, dengan kelengketan grup target diaktifkan. Permintaan yang tidak berisi cookie kelengketan dirutekan berdasarkan berat setiap grup target.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59", "Weight": 20 } ], "TargetGroupStickinessConfig": { "Enabled": true, "DurationSeconds": 1000 } } } ]

Tindakan pengalihan

redirectTindakan mengalihkan permintaan klien dari satu URL ke URL lainnya. Anda dapat mengonfigurasi pengalihan sebagai sementara (HTTP 302) atau permanen (HTTP 301) berdasarkan kebutuhan Anda.

URI terdiri dari komponen-komponen berikut:

protocol://hostname:port/path?query

Anda harus memodifikasi setidaknya satu dari komponen berikut untuk menghindari loop pengalihan: protokol, nama host, port, atau jalur. Setiap komponen yang tidak Anda ubah mempertahankan nilai aslinya.

protokol

Protokol (HTTP atau HTTPS). Anda dapat mengalihkan HTTP ke HTTP, HTTP ke HTTPS, dan HTTPS ke HTTPS. Anda tidak dapat mengalihkan HTTPS ke HTTP.

nama host

Nama host. Nama host tidak peka huruf besar/kecil, panjangnya dapat mencapai 128 karakter, dan terdiri dari karakter alfanumerik, karakter pengganti (* dan ?), dan tanda hubung (-).

port

Port (1 untuk 65535).

jalur

Jalur absolut, dimulai dengan awalan "/". Jalur peka huruf besar-kecil, panjangnya dapat mencapai 128 karakter, dan terdiri dari karakter alfanumerik, karakter pengganti (* dan ?), & (menggunakan &), dan karakter khusus berikut: _-.$/~ "'@:+.

kueri

Parameter kueri. Panjang maksimum adalah 128 karakter.

Anda dapat menggunakan kembali komponen URI dari URL asli di URL target menggunakan kata kunci cadangan berikut:

  • #{protocol} - Mempertahankan protokol. Gunakan dalam komponen protokol dan kueri.

  • #{host} - Mempertahankan domain. Gunakan di nama host, jalur, dan komponen kueri.

  • #{port} - Mempertahankan port. Gunakan di komponen port, jalur, dan kueri.

  • #{path} - Mempertahankan jalur. Gunakan di jalur dan komponen kueri.

  • #{query} - Mempertahankan parameter kueri. Gunakan dalam komponen kuery.

Saat tindakan redirect diambil, tindakan tersebut dicatat dalam log akses. Untuk informasi selengkapnya, lihat Entri log akses. Hitungan tindakan redirect yang berhasil dilaporkan dalam metrik HTTP_Redirect_Count. Untuk informasi selengkapnya, lihat Metrik Application Load Balancer.

contoh Contoh tindakan pengalihan menggunakan konsol

Aturan berikut menyiapkan pengalihan permanen ke URL yang menggunakan protokol HTTPS dan port tertentu (40443), tetapi mempertahankan nama host, jalur, dan parameter kueri asli. Layar ini setara dengan "https://#{host}:40443/#{path}?#{query}".

Aturan yang mengalihkan permintaan ke URL yang menggunakan protokol HTTPS dan port tertentu (40443), tetapi mempertahankan domain asli, jalur, dan parameter kueri dari URL asli.

Aturan berikut menyiapkan pengalihan permanen ke URL yang mempertahankan protokol asli, port, nama host, dan parameter kueri, dan menggunakan kata kunci #{path} untuk membuat jalur yang dimodifikasi. Layar ini setara dengan "#{protocol}://#{host}:#{port}/new/#{path}?#{query}".

Peraturan yang mengalihkan permintaan ke URL yang mempertahankan protokol asli, port, nama host, dan parameter kueri, serta menggunakan #{path} kata kunci untuk membuat jalur yang dimodifikasi.
contoh Contoh tindakan pengalihan untuk AWS CLI

Anda dapat menentukan tindakan ketika Anda membuat atau memodifikasi peraturan. Untuk informasi selengkapnya, lihat perintah buat-peraturan dan modifikasi-peraturan. Tindakan berikut mengalihkan permintaan HTTP ke permintaan HTTPS pada port 443, dengan nama host, jalur, dan string kueri yang sama dengan permintaan HTTP.

[ { "Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "Host": "#{host}", "Path": "/#{path}", "Query": "#{query}", "StatusCode": "HTTP_301" } } ]