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
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.
Pilih Nama domain khusus dari panel navigasi utama.
-
Pilih nama domain khusus.
-
Pada tab Routing details, pilih Add routing rule.
-
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.
Untuk Action, gunakan dropdown untuk memilih API target dan tahap target Anda.
-
Pilih Berikutnya.
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.
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
-
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.
Pilih Nama domain khusus dari panel navigasi utama.
-
Pilih nama domain khusus.
-
Pada tab Routing details, pilih aturan routing Anda, lalu pilih Edit.
-
Pilih Berikutnya.
-
Untuk prioritas, masukkan prioritas baru.
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"
}