Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Passa intestazioni personalizzate ad Amazon AgentCore Bedrock Runtime
Le intestazioni personalizzate ti consentono di passare le informazioni contestuali dall'applicazione direttamente al codice dell'agente senza ingombrare il payload della richiesta principale. Puoi passare qualsiasi intestazione HTTP valida che non sia presente nell'elenco delle intestazioni soggette a restrizioni, comprese le firme dei webhook, le chiavi APIX-Custom-Signature, il contesto di traccia o gli identificatori di sessione. X-Api-Key Puoi anche passare l'Authorizationintestazione per l' JWT-based autenticazione quando il tuo agente è configurato con un autorizzatore JWT personalizzato. Le intestazioni precedute da X-Amzn-Bedrock-AgentCore-Runtime-Custom- continuano a essere supportate per la compatibilità con le versioni precedenti. È possibile configurare fino a 20 intestazioni per runtime e ogni valore di intestazione è limitato a 4 KB.
Amazon Bedrock AgentCore Runtime ti consente di passare le intestazioni di una richiesta al tuo codice agente, a condizione che le intestazioni soddisfino i seguenti criteri:
-
Il nome dell'intestazione è un'intestazione HTTP valida (caratteri alfanumerici, trattini e caratteri di sottolineatura) e non è presente nell'elenco delle intestazioni soggette a restrizioni. Intestazioni soggette a restrizioni
-
Le intestazioni che iniziano con non
x-amz-sono consentite (sono riservate alla firma Sigv4). AWS -
Le intestazioni che iniziano con non
x-amzn-sono consentite, ad eccezione delle intestazioni precedute da.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
L'
Authorizationintestazione richiede che il runtime dell'agente sia configurato con uncustomJWTAuthorizerper l'accesso in entrata. OAuth-based -
Il valore dell'intestazione non è superiore a 4 KB.
-
È possibile configurare fino a 20 intestazioni per runtime.
-
I nomi delle intestazioni non fanno distinzione tra maiuscole e minuscole e i duplicati (mediante confronto senza distinzione tra maiuscole e minuscole) non sono consentiti.
Intestazioni soggette a restrizioni
Per mantenere la sicurezza e prevenire l'esposizione di informazioni sensibili, le seguenti intestazioni sono limitate e non possono essere configurate per la propagazione:
| Categoria | Intestazioni |
|---|---|
|
Autenticazione e autorizzazione |
Proxy-Authorization, WWW-Authenticate |
|
Negoziazione di contenuto |
Accetta Accept-Charset, Accept-Encoding, Accept-Language,, Content-Type, Content-Length, Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Caching |
Cache-Control, ETag, Scade,,,, If-Match,, If-Modified-Since, If-None-Match If-Range, If-Unmodified-Since Pragma Last-Modified, Vary |
|
Gestione delle connessioni |
Connessione,,, Aggiornamento Keep-Alive Proxy-Connection |
|
Contesto della richiesta |
Host User-Agent, Referer, Da |
|
Intervallo/trasferimento |
Gamma, Accept-Ranges, TE Transfer-Encoding, rimorchio |
|
Informazioni sul server |
Server, data, posizione, Retry-After |
|
Cookie |
Set-Cookie, Biscotto |
|
Sicurezza |
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 |
|
CORDE |
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, Origine |
|
Suggerimenti per i clienti |
Accept-CH, Accept-CH-Lifetime, DPR, Larghezza, Downlink Viewport-Width, ECT, RTT, Save-Data |
|
Sperimentale/Proposta |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proxy |
Via, Inoltrato, X-Forwarded-For,, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP X-Requested-With X-CSRF-Token |
|
Spoofing IP/manipolazione degli URL |
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/Proxy |
CF-Ray, CF-Connecting-IP, X-Amz-Cf-Id, X-Cache, X-Served-By |
|
HTTP/2 Pseudo intestazioni |
:method, :path, :scheme, :authority, :status |
|
Push del server |
Link |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Oltre alle intestazioni limitate elencate sopra:
-
Tutte le intestazioni che iniziano con
x-amz-sono limitate (ad esempio,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Sono riservate alla firma delle AWS richieste. -
Tutte le intestazioni che iniziano con
x-amzn-sono limitate, ad eccezione delle intestazioni precedute da.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Fase 1: Crea il tuo agente
Crea un AgentCore progetto vuoto, quindi aggiungi un agente con l'intestazione della richiesta allowlist:
agentcore create --project-name MyHeaderProject --no-agent cd MyHeaderProject agentcore add agent \ --name MyHeaderAgent \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none \ --request-header-allowlist X-Custom-Signature,X-Api-Key,X-Amzn-Bedrock-AgentCore-Runtime-Custom-UserId
Aggiorna il file entrypoint del tuo agente per accedere alle intestazioni personalizzate dal contesto della richiesta:
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", "") if not isinstance(user_message, str) or not user_message.strip(): return {"error": "Invalid input: 'prompt' must be a non-empty string"} 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()
Passaggio 2: configura e implementa il tuo agente con intestazioni personalizzate
Configura l'header allowlist della richiesta nel runtime dell'agente in modo che le intestazioni personalizzate vengano inoltrate al codice dell'agente al momento della chiamata.
Esempio
Passaggio 3: richiama il tuo agente con intestazioni personalizzate
Passate le intestazioni personalizzate quando invocate il vostro agente in modo che il codice agente possa accedervi tramite il contesto della richiesta.
Esempio
Fase 4: (Facoltativo) Configurare l'autenticazione JWT in entrata
Per passare il token JWT utilizzato per l'accesso OAuth-based in entrata all'agente, configura authorizerType e authorizerConfiguration inserisci la configurazione dell'agente.