Cara menggunakan aturan routing - Amazon API Gateway

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

Cara menggunakan aturan routing

Anda dapat membuat aturan perutean menggunakan AWS Management Console, AWS CLI, atau AWS SDK apa pun. Setelah Anda membuat aturan, Anda dapat mengubah prioritasnya.

Buat aturan perutean

Prosedur berikut menunjukkan cara membuat aturan routing untuk nama domain kustom dengan mode routing diatur ke salah satu atauROUTING_RULE_THEN_API_MAPPING. ROUTING_RULE_ONLY

AWS Management Console
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih Nama domain khusus dari panel navigasi utama.

  3. Pilih nama domain khusus.

  4. Pada tab Routing details, pilih Add routing rule.

  5. Pilih Tambahkan kondisi baru untuk menambahkan kondisi baru.

    Anda dapat menambahkan header atau kondisi jalur dasar. Untuk mencocokkan semua permintaan yang masuk dengan nama domain kustom Anda, jangan tambahkan kondisi.

  6. Untuk Action, gunakan dropdown untuk memilih API target dan tahap target Anda.

  7. Pilih Berikutnya.

  8. Di bidang prioritas, masukkan nomor untuk prioritas Anda.

    API Gateway mengevaluasi aturan dalam urutan prioritas, dari nilai terendah hingga nilai tertinggi.

    Jika Anda membuat aturan tanpa syarat, sebaiknya gunakan prioritas nilai tinggi.

  9. Pilih Buat aturan perutean.

AWS CLI

create-routing-rulePerintah berikut membuat aturan routing dengan prioritas 50. Dalam contoh ini, API Gateway merutekan permintaan masuk yang memiliki header Hello:World dan x-version:beta dan jalur dasar PetStoreShopper ke API target. a1b2c3

aws apigatewayv2 create-routing-rule \ --domain-name 'api.example.com' \ --priority 50 \ --conditions '[ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ]'\ --actions '[ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } } ]'

Outputnya akan terlihat seperti berikut ini.

{ "Actions": [ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod", "StripBasePath": false } } ], "Conditions": [ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ], "Priority": 50, "RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123", "RoutingRuleId": "abc123" }

Mengubah prioritas aturan routing

Anda dapat mengubah prioritas aturan routing. Ini segera berlaku dan mungkin memengaruhi cara konsumen API memanggil nama domain kustom Anda. Kami menyarankan bahwa ketika Anda menetapkan prioritas aturan routing Anda, Anda meninggalkan kesenjangan di antara aturan.

Misalnya, pertimbangkan dua aturan routing, aturan abc123 dengan prioritas 50 dan aturan zzz000 dengan prioritas 150. Untuk mengubah prioritas aturan agar API Gateway mengevaluasi aturan zzz000 terlebih dahulu, Anda dapat mengubah prioritas aturan zzz000 menjadi 30.

AWS Management Console
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih Nama domain khusus dari panel navigasi utama.

  3. Pilih nama domain khusus.

  4. Pada tab Routing details, pilih aturan routing Anda, lalu pilih Edit.

  5. Pilih Berikutnya.

  6. Untuk prioritas, masukkan prioritas baru.

  7. Pilih Simpan perubahan.

AWS CLI

put-routing-rulePerintah berikut mengubah prioritas aturan abc123 routing.

aws apigatewayv2 put-routing-rule \ --domain-name 'api.example.com' \ --priority 30 \ --routing-rule-id abc123 \ --conditions '[ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ]'\ --actions '[ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } } ]'

Outputnya akan terlihat seperti berikut:

{ "Actions": [ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod", "StripBasePath": false } } ], "Conditions": [ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ], "Priority": 38, "RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123", "RoutingRuleId": "abc123" }