Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Pase encabezados personalizados a Amazon Bedrock Runtime AgentCore
Los encabezados personalizados te permiten pasar la información contextual de tu aplicación directamente al código de tu agente sin saturar la carga útil principal de la solicitud. Puedes pasar cualquier encabezado HTTP válido que no esté en la lista de encabezados restringidos, incluidas las firmas de webhooks, las claves de APIX-Custom-Signature, el contexto de seguimiento o los identificadores de X-Api-Key sesión. También puedes pasar el Authorization encabezado para la JWT-based autenticación si tu agente está configurado con un autorizador de JWT personalizado. Se X-Amzn-Bedrock-AgentCore-Runtime-Custom- siguen admitiendo los encabezados con el prefijo «con» por motivos de compatibilidad con versiones anteriores. Se pueden configurar hasta 20 encabezados por tiempo de ejecución, y cada valor de encabezado está limitado a 4 KB.
Amazon Bedrock AgentCore Runtime le permite pasar los encabezados de una solicitud a su código de agente, siempre que los encabezados cumplan los siguientes criterios:
-
El nombre del encabezado es un encabezado HTTP válido (caracteres alfanuméricos, guiones y guiones bajos) y no figura en la lista de encabezados restringidos. Encabezados restringidos
-
No se permiten los encabezados que comiencen por (
x-amz-están reservados para la firma de SigV4). AWS -
No
x-amzn-se permiten los encabezados que comiencen por, excepto los encabezados con el prefijo.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
El
Authorizationencabezado requiere que el tiempo de ejecución del agente esté configurado con un acceso entrantecustomJWTAuthorizer. OAuth-based -
El valor del encabezado no supera los 4 KB.
-
Se pueden configurar hasta 20 encabezados por tiempo de ejecución.
-
Los nombres de los encabezados no distinguen mayúsculas de minúsculas y no se permiten duplicados (comparándolos sin distinción entre mayúsculas y minúsculas).
Encabezados restringidos
Para mantener la seguridad y evitar la exposición de información confidencial, los siguientes encabezados están restringidos y no se pueden configurar para que se propaguen:
| Categoría | Encabezados |
|---|---|
|
Autenticación y autorización |
Proxy-Authorization, WWW-Authenticate |
|
Negociación de contenido |
Acepte Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Content-Length, Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Almacenamiento en caché |
Cache-Control, eTag, Caduca, If-Match,, If-Modified-Since, If-None-Match,, If-Range If-Unmodified-Since, Pragma Last-Modified, Vary |
|
Administración de conexiones |
Conexión,, Keep-Alive, Actualización Proxy-Connection |
|
Contexto de la solicitud |
Anfitrión User-Agent, Referente, De |
|
Alcance/transferencia |
Alcance Accept-Ranges, TE Transfer-Encoding, Remolque |
|
Información del servidor |
Servidor, fecha, ubicación, Retry-After |
|
Cookies |
Set-Cookie, Cookie |
|
Seguridad |
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, Origen |
|
Consejos para el cliente |
Accept-CH Accept-CH-Lifetime, DPR, ancho, enlace descendente Viewport-Width, ECT, TT, Save-Data |
|
Experimental/Propuesto |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proxy |
Vía, reenviado X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP, X-Requested-With, X-CSRF-Token |
|
Suplantación de IP/manipulación de 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 Pseudoencabezados |
:método, :ruta, :esquema, :autoridad, :estado |
|
Servidor Push |
Link |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Además de los encabezados restringidos enumerados anteriormente:
-
Todos los encabezados que comienzan con
x-amz-están restringidos (por ejemplo,,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Están reservados para la firma de AWS solicitudes. -
Todos los encabezados que comienzan con
x-amzn-están restringidos, excepto los encabezados con el prefijo.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Paso 1: Crea tu agente
Crea un AgentCore proyecto vacío y, a continuación, agrega un agente con la lista de permitidos en el encabezado de la solicitud:
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
Actualiza el archivo de puntos de entrada de tu agente para acceder a los encabezados personalizados desde el contexto de la solicitud:
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()
Paso 2: Configure e implemente su agente con encabezados personalizados
Configure la lista de encabezados de solicitud permitidos en el tiempo de ejecución de su agente para que los encabezados personalizados se envíen al código de su agente en el momento de la invocación.
ejemplo
Paso 3: Invoca a tu agente con encabezados personalizados
Pase encabezados personalizados al invocar a su agente para que su código de agente pueda acceder a ellos a través del contexto de la solicitud.
ejemplo
Paso 4: (opcional) Configurar la autenticación JWT entrante
Para transferir el token de JWT utilizado para el acceso OAuth-based entrante a tu agente, configúralo authorizerType y authorizerConfiguration en la configuración de tu agente.