Rute - AWS App Mesh

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

Rute

penting

Pemberitahuan akhir dukungan: Pada 30 September 2026, AWS akan menghentikan dukungan untuk. AWS App Mesh Setelah 30 September 2026, Anda tidak akan lagi dapat mengakses AWS App Mesh konsol atau AWS App Mesh sumber daya. Untuk informasi lebih lanjut, kunjungi posting blog ini Migrasi dari AWS App Mesh ke Amazon ECS Service Connect.

Rute dikaitkan dengan router virtual. Rute ini digunakan untuk mencocokkan permintaan untuk router virtual dan untuk mendistribusikan lalu lintas ke node virtual yang terkait. Jika rute cocok dengan permintaan, itu dapat mendistribusikan lalu lintas ke satu atau beberapa node virtual target. Anda dapat menentukan bobot relatif untuk setiap node virtual. Topik ini membantu Anda bekerja dengan rute di mesh layanan.

Membuat rute

AWS Management Console
Untuk membuat rute menggunakan AWS Management Console
  1. Buka konsol App Mesh di https://console.aws.amazon.com/appmesh/.

  2. Pilih mesh yang ingin Anda buat rute. Semua jerat yang Anda miliki dan yang telah dibagikan dengan Anda terdaftar.

  3. Pilih Router virtual di navigasi kiri.

  4. Pilih router virtual yang ingin Anda kaitkan dengan rute baru. Jika tidak ada yang terdaftar, maka Anda perlu membuat router virtual terlebih dahulu.

  5. Dalam tabel Rute, pilih Buat rute. Untuk membuat rute, ID akun Anda harus terdaftar sebagai pemilik sumber daya rute.

  6. Untuk nama Rute, tentukan nama yang akan digunakan untuk rute Anda.

  7. Untuk jenis Rute, pilih protokol yang ingin Anda rutekan. Protokol yang Anda pilih harus sesuai dengan protokol listener yang Anda pilih untuk router virtual Anda dan node virtual yang Anda rutekan lalu lintas.

  8. (Opsional) Untuk prioritas Rute, tentukan prioritas dari 0-1000 yang akan digunakan untuk rute Anda. Rute dicocokkan berdasarkan nilai yang ditentukan, di mana 0 adalah prioritas tertinggi.

  9. (Opsional) Pilih Konfigurasi tambahan. Dari protokol di bawah, pilih protokol yang Anda pilih untuk Jenis rute dan tentukan pengaturan di konsol sesuai keinginan.

  10. Untuk konfigurasi Target, pilih node virtual App Mesh yang ada untuk merutekan lalu lintas ke dan menentukan Berat. Anda dapat memilih Tambahkan target untuk menambahkan target tambahan. Persentase untuk semua target harus bertambah hingga 100. Jika tidak ada node virtual yang terdaftar, maka Anda harus membuatnya terlebih dahulu. Jika node virtual yang dipilih memiliki beberapa pendengar, port Target diperlukan.

  11. Untuk konfigurasi Match, tentukan:

    Konfigurasi kecocokan tidak tersedia untuk tcp

    • Jika http/http2 adalah jenis yang dipilih:

      • (Opsional) Metode - menentukan header metode yang akan dicocokkan dalam permintaan http/ http2 masuk.

      • (Opsional) Pencocokan port - Cocokkan port untuk lalu lintas masuk. Pencocokan port diperlukan jika router virtual ini memiliki banyak pendengar.

      • (Opsional) Jalur awalan/Exact/Regex - metode pencocokan jalur. URL

        • Pencocokan awalan - permintaan yang cocok oleh rute gateway ditulis ulang ke nama layanan virtual target dan awalan yang cocok ditulis ulang, secara default. / Bergantung pada bagaimana Anda mengkonfigurasi layanan virtual Anda, itu bisa menggunakan router virtual untuk merutekan permintaan ke node virtual yang berbeda, berdasarkan awalan atau header tertentu.

          catatan

          Jika Anda mengaktifkan pencocokan berbasis Path/ Prefix, App Mesh mengaktifkan normalisasi jalur (normalize_path dan merge_slashes) untuk meminimalkan kemungkinan kerentanan kebingungan jalur.

          Kerentanan kebingungan jalur terjadi ketika pihak yang berpartisipasi dalam permintaan menggunakan representasi jalur yang berbeda.

        • Pencocokan persis - param yang tepat menonaktifkan pencocokan sebagian untuk rute dan memastikan bahwa itu hanya mengembalikan rute jika jalurnya EXACT cocok dengan url saat ini.

        • Pencocokan Regex - digunakan untuk menggambarkan pola di mana beberapa URLs mungkin benar-benar mengidentifikasi satu halaman di situs web.

      • (Opsional) Parameter kueri - bidang ini memungkinkan Anda untuk mencocokkan pada parameter kueri.

      • (Opsional) Header - menentukan header untuk http dan http2. Itu harus sesuai dengan permintaan yang masuk untuk merutekan ke layanan virtual target..

    • Jika grpc adalah tipe yang dipilih:

      • Nama layanan - layanan tujuan yang sesuai dengan permintaan.

      • Nama metode - metode tujuan untuk mencocokkan permintaan.

      • (Opsional) Metadata - menentukan Match berdasarkan keberadaan metadata. Semua harus sesuai untuk permintaan yang akan diproses.

  12. Pilih Buat rute.

AWS CLI

Untuk membuat rute menggunakan AWS CLI.

Buat RPC rute g menggunakan perintah dan input berikut JSON (ganti red nilai dengan milik Anda sendiri):

  1. aws appmesh create-route \ --cli-input-json file://create-route-grpc.json
  2. Isi contoh create-route-grpc .json

    { "meshName" : "meshName", "routeName" : "routeName", "spec" : { "grpcRoute" : { "action" : { "weightedTargets" : [ { "virtualNode" : "nodeName", "weight" : 100 } ] }, "match" : { "metadata" : [ { "invert" : false, "match" : { "prefix" : "123" }, "name" : "myMetadata" } ], "methodName" : "nameOfmethod", "serviceName" : "serviceA.svc.cluster.local" }, "retryPolicy" : { "grpcRetryEvents" : [ "deadline-exceeded" ], "httpRetryEvents" : [ "server-error", "gateway-error" ], "maxRetries" : 3, "perRetryTimeout" : { "unit" : "s", "value" : 15 }, "tcpRetryEvents" : [ "connection-error" ] } }, "priority" : 100 }, "virtualRouterName" : "routerName" }
  3. Contoh output:

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:48:20.749000-05:00", "lastUpdatedAt": "2022-04-06T13:48:20.749000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "nameOfMehod", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "ACTIVE" }, "virtualRouterName": "routerName" } }

Untuk informasi selengkapnya tentang membuat rute dengan App Mesh AWS CLI for, lihat perintah create-route dalam referensi. AWS CLI

(Opsional) Pertandingan

  • (Opsional) Masukkan nama Layanan dari layanan tujuan agar sesuai dengan permintaan. Jika Anda tidak menentukan nama, permintaan ke layanan apa pun akan dicocokkan.

  • (Opsional) Masukkan nama Metode metode tujuan untuk mencocokkan permintaan. Jika Anda tidak menentukan nama, permintaan ke metode apa pun akan dicocokkan. Jika Anda menentukan nama metode, Anda harus menentukan nama layanan.

(Opsional) Metadata

Pilih Tambah Metadata.

  • (Opsional) Masukkan nama Metadata yang ingin Anda rute berdasarkan, pilih jenis Match, dan masukkan nilai Match. Memilih Invert akan cocok dengan yang sebaliknya. Misalnya, jika Anda menentukan nama Metadata darimyMetadata, jenis Pencocokan Exact, nilai Match dari123, dan pilih Invert, maka rute dicocokkan untuk setiap permintaan yang memiliki nama metadata yang dimulai dengan apa pun selain. 123

  • (Opsional) Pilih Tambahkan metadata untuk menambahkan hingga sepuluh item metadata.

(Opsional) Kebijakan coba lagi

Kebijakan coba lagi memungkinkan klien untuk melindungi diri dari kegagalan jaringan intermiten atau kegagalan sisi server intermiten. Kebijakan coba lagi bersifat opsional, tetapi disarankan. Nilai batas waktu coba lagi menentukan batas waktu per percobaan ulang (termasuk upaya awal). Jika Anda tidak menentukan kebijakan coba lagi, App Mesh dapat secara otomatis membuat kebijakan default untuk setiap rute Anda. Untuk informasi selengkapnya, lihat Kebijakan coba lagi rute default.

  • Untuk Timeout Coba lagi, masukkan jumlah unit untuk durasi batas waktu. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun.

  • Untuk unit batas waktu Coba lagi, pilih unit. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun.

  • Untuk percobaan ulang Max, masukkan jumlah maksimum percobaan ulang saat permintaan gagal. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun. Kami merekomendasikan nilai setidaknya dua.

  • Pilih satu atau lebih acara HTTP coba lagi. Sebaiknya pilih setidaknya stream-error dan gateway-error.

  • Pilih acara TCP coba lagi.

  • Pilih satu atau beberapa acara RPC coba lagi g. Kami menyarankan untuk memilih setidaknya dibatalkan dan tidak tersedia.

(Opsional) Timeout

  • Defaultnya adalah 15 detik. Jika Anda menetapkan kebijakan Coba Ulang, maka durasi yang Anda tentukan di sini harus selalu lebih besar dari atau sama dengan durasi percobaan ulang dikalikan dengan percobaan ulang Maks yang Anda tetapkan dalam kebijakan Coba Ulang sehingga kebijakan coba ulang Anda dapat selesai. Jika Anda menentukan durasi lebih dari 15 detik, maka pastikan batas waktu yang ditentukan untuk pendengar Target node virtual mana pun juga lebih besar dari 15 detik. Untuk informasi selengkapnya, lihat Virtual Nodes.

  • Nilai 0 menonaktifkan batas waktu.

  • Jumlah maksimum waktu rute dapat menganggur.

(Opsional) Pertandingan

  • Tentukan Awalan bahwa rute harus cocok. Misalnya, jika nama layanan virtual Anda service-b.local dan Anda menginginkan agar rute cocok dengan permintaan service-b.local/metrics, prefiks anda seharusnya /metrics. Menentukan / rute semua lalu lintas.

  • (Opsional) Pilih Metode.

  • (Opsional) Pilih Skema. Hanya berlaku untuk HTTP2 rute.

(Opsional) Header

  • (Opsional) Pilih Tambahkan header. Masukkan nama Header yang ingin Anda rute berdasarkan, pilih jenis Match, dan masukkan nilai Match. Memilih Invert akan cocok dengan yang sebaliknya. Misalnya, jika Anda menentukan header bernama clientRequestId dengan Awalan dari123, dan pilih Invert, maka rute dicocokkan untuk setiap permintaan yang memiliki header yang dimulai dengan apa pun selain. 123

  • (Opsional) Pilih Tambahkan header. Anda dapat menambahkan hingga sepuluh header.

(Opsional) Kebijakan coba lagi

Kebijakan coba lagi memungkinkan klien untuk melindungi diri dari kegagalan jaringan intermiten atau kegagalan sisi server intermiten. Kebijakan coba lagi bersifat opsional, tetapi disarankan. Nilai batas waktu coba lagi menentukan batas waktu per percobaan ulang (termasuk upaya awal). Jika Anda tidak menentukan kebijakan coba lagi, App Mesh dapat secara otomatis membuat kebijakan default untuk setiap rute Anda. Untuk informasi selengkapnya, lihat Kebijakan coba lagi rute default.

  • Untuk Timeout Coba lagi, masukkan jumlah unit untuk durasi batas waktu. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun.

  • Untuk unit batas waktu Coba lagi, pilih unit. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun.

  • Untuk percobaan ulang Max, masukkan jumlah maksimum percobaan ulang saat permintaan gagal. Nilai diperlukan jika Anda memilih acara coba ulang protokol apa pun. Kami merekomendasikan nilai setidaknya dua.

  • Pilih satu atau lebih acara HTTP coba lagi. Sebaiknya pilih setidaknya stream-error dan gateway-error.

  • Pilih acara TCP coba lagi.

(Opsional) Timeout

  • Permintaan batas waktu - Defaultnya adalah 15 detik. Jika Anda menetapkan kebijakan Coba Ulang, maka durasi yang Anda tentukan di sini harus selalu lebih besar dari atau sama dengan durasi percobaan ulang dikalikan dengan percobaan ulang Maks yang Anda tetapkan dalam kebijakan Coba Ulang sehingga kebijakan coba ulang Anda dapat selesai.

  • Durasi idle - Defaultnya adalah 300 detik.

  • Nilai 0 menonaktifkan batas waktu.

catatan

Jika Anda menentukan batas waktu yang lebih besar dari default, pastikan batas waktu yang ditentukan untuk pendengar untuk semua peserta node virtual juga lebih besar dari default. Namun, jika Anda mengurangi batas waktu ke nilai yang lebih rendah dari default, itu opsional untuk memperbarui batas waktu di node virtual. Untuk informasi selengkapnya, lihat Virtual Nodes.

(Opsional) Timeout

  • Durasi idle - Defaultnya adalah 300 detik.

  • Nilai 0 menonaktifkan batas waktu.

Menghapus rute

AWS Management Console
Untuk menghapus rute menggunakan AWS Management Console
  1. Buka konsol App Mesh di https://console.aws.amazon.com/appmesh/.

  2. Pilih mesh dari mana Anda ingin menghapus rute. Semua jerat yang Anda miliki dan yang telah dibagikan dengan Anda terdaftar.

  3. Pilih Router virtual di navigasi kiri.

  4. Pilih router dari mana Anda ingin menghapus rute.

  5. Dalam tabel Rute, pilih rute yang ingin Anda hapus dan pilih Hapus di sudut kanan atas.

  6. Di kotak konfirmasi, ketik delete dan kemudian klik Hapus.

AWS CLI
Untuk menghapus rute menggunakan AWS CLI
  1. Gunakan perintah berikut untuk menghapus rute Anda (ganti red nilai dengan milik Anda sendiri):

    aws appmesh delete-route \ --mesh-name meshName \ --virtual-router-name routerName \ --route-name routeName
  2. Contoh output:

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:46:54.750000-05:00", "lastUpdatedAt": "2022-04-07T10:43:57.152000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "methodName", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "DELETED" }, "virtualRouterName": "routerName" } }

Untuk informasi selengkapnya tentang menghapus rute dengan App Mesh AWS CLI for, lihat perintah delete-route dalam referensi. AWS CLI