View a markdown version of this page

Dimensi batas tarif - Batu Dasar Amazon AgentCore

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

Dimensi batas tarif

Kunci dimensi menentukan bagaimana gateway mengelompokkan lalu lintas ke dalam bucket batas tarif. Setiap kunci dimensi mereferensikan nilai dari konteks permintaan. Gateway menyelesaikan nilai-nilai ini saat runtime untuk menemukan entri batas tarif yang cocok.

Dimensi yang didukung

Kunci dimensi Deskripsi Nilai contoh

targetName

Nama target yang dipanggil. Diselesaikan dari jalur permintaan.

my-llm-target

toolName

Nama lengkap alat yang dipanggil, dalam format. targetName___toolName Tersedia untuk permintaan penggunaan alat MCP.

my-mcp-target___get_weather

qualifiedModelId

Pengidentifikasi model yang sepenuhnya memenuhi syarat untuk target inferensi.

anthropic.claude-3-sonnet-20240229-v1:0

$.context.jwt.<claim>

Klaim yang diambil dari token JWT penelepon. Ganti <claim> dengan nama klaim (misalnya,$.context.jwt.sub,$.context.jwt.team).

user-123

$.context.iam.principal

ARN utama IAM dari penelepon.

arn:aws:iam::123456789012:role/MyRole

$.context.iam.sourceIdentity

Identitas sumber yang ditetapkan oleh pemanggil saat mengambil peran.

developer@example.com

Nilai default (*)

Entri batas tarif mendukung nilai khusus * sebagai default catch-all untuk dimensi.

  • Entri dengan * dimensi berarti “terapkan tarif ini ke semua nilai dimensi ini.”

  • Jika entri yang lebih spesifik ada untuk nilai aktual, entri tertentu diutamakan (kemenangan pertandingan paling spesifik).

  • *membuat bucket per-entitas independen — setiap nilai berbeda yang cocok mendapatkan bucket tarifnya sendiri pada tarif yang dikonfigurasi.

Trailing-only kendala untuk batas tarif multi-dimensi:

Ketika batas tarif memiliki beberapa kunci dimensi, hanya dapat muncul di posisi terbelakang. Jika Anda menggunakan di posisi N, semua posisi berikutnya juga harus*.

Misalnya, dengandimensionKeys: ["targetName", "toolName", "$.context.jwt.sub"]:

Dimensi entri Berlaku Mengapa

["target1", "readData", "alice"]

Ya

Semua posisi adalah nilai spesifik.

["target1", "readData", "*"]

Ya

Hanya posisi terakhir*.

["target1", "*", "*"]

Ya

Posisi tertinggal adalah*.

["*", "*", "*"]

Ya

Semua posisi adalah * (default untuk kombinasi apa pun).

["*", "readData", "alice"]

Tidak

*pada posisi 1 diikuti oleh nilai-nilai tertentu.

["*", "*", "alice"]

Tidak

*pada posisi 1-2 diikuti oleh nilai tertentu.

["target1", "*", "alice"]

Tidak

*pada posisi 2 diikuti oleh nilai spesifik pada posisi 3.

Cara kerja pencocokan:

Ketika permintaan tiba, gateway menyelesaikan nilai dimensi aktual dan mencari entri pencocokan yang paling spesifik. Misalnya, jika nilai yang diselesaikan adalah["target1", "readData", "alice"], gateway memeriksa entri dalam urutan ini:

  1. ["target1", "readData", "alice"]— kecocokan tepat (paling spesifik)

  2. ["target1", "readData", "*"]— dimensi terakhir menggunakan default

  3. ["target1", "*", "*"]— dua dimensi terakhir menggunakan default

  4. ["*", "*", "*"]— sepenuhnya default (paling tidak spesifik)

Pertandingan pertama menang.

Tip

Gunakan entri tertentu untuk entitas bernilai tinggi atau terbatas yang diketahui, dan * entri sebagai tingkatan tarif default untuk yang lainnya.

Perilaku resolusi dimensi

Ketika gateway mengevaluasi batas tarif, itu menyelesaikan setiap kunci dimensi dari konteks permintaan:

  • Jika kunci dimensi tidak dapat diselesaikan dari permintaan (misalnya, toolName pada permintaan non-alat, atau klaim JWT yang tidak ada), gateway melewatkan batas tarif itu sepenuhnya. Permintaan tidak dibatasi oleh batas tarif itu.

  • Hanya konteks yang divalidasi yang digunakan untuk resolusi. Klaim JWT diekstraksi dari token yang telah divalidasi oleh konfigurasi otentikasi gateway. Konteks IAM hanya tersedia untuk SigV4-authenticated permintaan.

Batas bersama vs individu

Kombinasi kunci dimensi dan nilai entri menentukan apakah lalu lintas berbagi bucket tarif tunggal atau setiap entitas mendapatkan bucket independennya sendiri.

Tombol Dimensi Dimensi entri Perilaku

["targetName"]

{"targetName": "my-target"}

Semua lalu lintas untuk my-target berbagi satu bucket (batas bersama untuk target itu).

["targetName"]

{"targetName": "*"}

Setiap target mendapatkan bucket independennya sendiri pada tingkat ini (per entitas).

["$.context.jwt.sub"]

{"$.context.jwt.sub": "*"}

Setiap penelepon unik mendapatkan bucket mereka sendiri (batas individu per penelepon).

["targetName", "$.context.jwt.sub"]

{"targetName": "my-target", "$.context.jwt.sub": "*"}

Setiap penelepon mendapatkan bucket mereka sendiri, dengan cakupan. my-target

["targetName", "$.context.jwt.sub"]

{"targetName": "*", "$.context.jwt.sub": "*"}

Setiap kombinasi target dan penelepon yang unik mendapatkan bucket sendiri.

Awas

Hindari menggunakan klaim JWT dengan kardinalitas tinggi atau tidak terbatas sebagai kunci dimensi (misalnya,, $.context.jwt.jti$.context.jwt.nonce, atau ID permintaan). Ini menciptakan jumlah bucket tarif yang tidak terbatas, yang mungkin mengurangi efektivitas pembatasan tarif. Gunakan pengidentifikasi yang stabil dan terbatas sepertisub,team, atau sebagai tier gantinya.