Teruskan header khusus ke Amazon Bedrock AgentCore Runtime
Header khusus memungkinkan Anda meneruskan informasi kontekstual dari aplikasi Anda langsung ke kode agen Anda tanpa mengacaukan payload permintaan utama. Anda dapat meneruskan header HTTP yang valid yang tidak ada dalam daftar header terbatas, termasuk tanda tangan webhook seperti, kunci API sepertiX-Custom-Signature, konteks jejakX-Api-Key, atau pengidentifikasi sesi. Anda juga dapat meneruskan Authorization header untuk JWT-based otentikasi ketika agen Anda dikonfigurasi dengan otorisasi JWT kustom. Header diawali dengan X-Amzn-Bedrock-AgentCore-Runtime-Custom- terus didukung untuk kompatibilitas mundur. Hingga 20 header dapat dikonfigurasi per runtime, dan setiap nilai header dibatasi hingga 4KB.
Amazon Bedrock AgentCore Runtime memungkinkan Anda meneruskan header dalam permintaan ke kode agen Anda asalkan header memenuhi kriteria berikut:
-
Header yang dimulai dengan tidak
x-amz-diizinkan (ini dicadangkan untuk AWS penandatanganan SigV4). -
Header yang dimulai dengan tidak
x-amzn-diperbolehkan, kecuali untuk header yang diawali dengan.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
AuthorizationHeader mengharuskan runtime agen untuk dikonfigurasi dengan acustomJWTAuthorizerfor OAuth-based inbound access. -
Nilai header tidak lebih besar dari 4KB dalam ukuran.
-
Hingga 20 header dapat dikonfigurasi per runtime.
-
Nama header tidak peka huruf besar/kecil dan duplikat (dengan perbandingan case-insensitive) tidak diperbolehkan.
Header terbatas
Untuk menjaga keamanan dan mencegah paparan informasi sensitif, header berikut dibatasi dan tidak dapat dikonfigurasi untuk propagasi:
| Kategori | Header |
|---|---|
|
Otentikasi & Otorisasi |
Proxy-Authorization, WWW-Authenticate |
|
Negosiasi Konten |
Menerima Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Content-Length,, Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Pembuatan cache |
Cache-Control, ETag, Kedaluwarsa,,, If-Match, If-Modified-Since,, If-None-Match If-Range, Pragma If-Unmodified-Since Last-Modified, Bervariasi |
|
Manajemen Koneksi |
Koneksi, Keep-Alive, Proxy-Connection, Tingkatkan |
|
Permintaan Konteks |
Tuan rumah, User-Agent, Referer, Dari |
|
Jangkauan/Transfer |
Rentang, Accept-Ranges, Transfer-Encoding, TE, Trailer |
|
Informasi Server |
Server, Tanggal, Lokasi, Retry-After |
|
Cookie |
Set-Cookie, Cookie |
|
Keamanan |
Content-Security-Policy, Content-Security-Policy-Report-Only, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy, Cross-Origin-Embedder-Policy, Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy |
|
CORS |
Access-Control-Allow-Origin, Access-Control-Allow-Methods,, Access-Control-Allow-Headers, Access-Control-Allow-Credentials, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Request-Method, Access-Control-Request-Headers, Asal |
|
Petunjuk Klien |
Accept-CH, Accept-CH-Lifetime, DPR, Lebar, Viewport-Width, Downlink, DLL, RTT, Save-Data |
|
Eksperimental/Diusulkan |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proksi |
Melalui, Diteruskan,, X-Forwarded-For,, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP X-Requested-With X-CSRF-Token |
|
IP Spoofing /URL Manipulasi |
True-Client-IP, X-Client-IP, X-Cluster-Client-IP, X-Originating-IP, X-Source-IP, X-Original-URL, X-Original-Host, X-Rewrite-URL |
|
CDN/ Proksi |
CF-Ray, CF-Connecting-IP, X-Amz-Cf-Id, X-Cache, X-Served-By |
|
HTTP/2 Pseudo Header |
:metode, :path, :scheme, :authority, :status |
|
Dorong Server |
Tautan |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Selain header terbatas yang tercantum di atas:
-
Semua header yang dimulai dengan
x-amz-dibatasi (misalnya,,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Ini dicadangkan untuk penandatanganan AWS permintaan. -
Semua header yang dimulai dengan
x-amzn-dibatasi, kecuali untuk header yang diawali dengan.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Langkah 1: Buat agen Anda
Buat AgentCore proyek menggunakan AgentCore CLI:
agentcore create --name MyHeaderAgent cd MyHeaderAgent
Perbarui file entrypoint agen Anda untuk mengakses header kustom dari konteks permintaan:
import json from bedrock_agentcore import BedrockAgentCoreApp, RequestContext from strands import Agent app = BedrockAgentCoreApp() agent = Agent() @app.entrypoint def agent_invocation(payload, context: RequestContext): """Handler for agent invocation""" user_message = payload.get( "prompt", "No prompt found in input, please guide customer to create a json payload with prompt key" ) app.logger.info("invoking agent with user message: %s", payload) response = agent(user_message) # access request headers here request_headers = context.request_headers app.logger.info("Headers: %s", json.dumps(request_headers)) return response app.run()
Langkah 2: Konfigurasikan dan terapkan agen Anda dengan header khusus
Konfigurasikan daftar izin header permintaan pada runtime agen Anda sehingga header khusus diteruskan ke kode agen Anda pada waktu pemanggilan.
contoh
Langkah 3: Panggil agen Anda dengan header khusus
Lewati header khusus saat memanggil agen Anda sehingga kode agen Anda dapat mengaksesnya melalui konteks permintaan.
contoh
Langkah 4: (Opsional) Konfigurasikan otentikasi JWT masuk
Untuk meneruskan token JWT yang digunakan untuk akses OAuth-based masuk ke agen Anda, konfigurasikan authorizerType dan authorizerConfiguration dalam konfigurasi agen Anda.