Transmettre des en-têtes personnalisés à Amazon Bedrock Runtime AgentCore
Les en-têtes personnalisés vous permettent de transmettre les informations contextuelles de votre application directement au code de votre agent sans encombrer la charge utile de la demande principale. Vous pouvez transmettre n'importe quel en-tête HTTP valide qui ne figure pas dans la liste des en-têtes restreints, y compris les signatures de webhookX-Custom-Signature, les clés d'API telles que X-Api-Key le contexte de trace ou les identifiants de session. Vous pouvez également transmettre l'Authorizationen-tête pour l' JWT-based authentification lorsque votre agent est configuré avec un autorisateur JWT personnalisé. Les en-têtes préfixés par « X-Amzn-Bedrock-AgentCore-Runtime-Custom- continuent d'être pris en charge pour des raisons de rétrocompatibilité ». Jusqu'à 20 en-têtes peuvent être configurés par exécution, et chaque valeur d'en-tête est limitée à 4 Ko.
Amazon Bedrock AgentCore Runtime vous permet de transmettre les en-têtes d'une demande au code de votre agent, à condition que les en-têtes répondent aux critères suivants :
-
Les en-têtes commençant par ne
x-amz-sont pas autorisés (ils sont réservés à la signature AWS SigV4). -
Les en-têtes commençant par ne
x-amzn-sont pas autorisés, à l'exception des en-têtes préfixés par.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
L'
Authorizationen-tête nécessite que le runtime de l'agent soit configuré avec uncustomJWTAuthorizerpour OAuth-based l'accès entrant. -
La valeur de l'en-tête n'est pas supérieure à 4 Ko.
-
Jusqu'à 20 en-têtes peuvent être configurés par exécution.
-
Les noms d'en-tête ne font pas la distinction majuscules/majuscules et les doublons (par comparaison entre majuscules et minuscules) ne sont pas autorisés.
En-têtes restreints
Pour garantir la sécurité et empêcher la divulgation d'informations sensibles, les en-têtes suivants sont restreints et ne peuvent pas être configurés pour la propagation :
| Catégorie | En-têtes |
|---|---|
|
Authentification et autorisation |
Proxy-Authorization, WWW-Authenticate |
|
Négociation de contenu |
Acceptez Accept-Charset, Accept-Encoding Accept-Language, Content-Type, Content-Length, Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Mise en cache |
Cache-Control, eTag, Expire,, If-Match,, If-Modified-Since, If-None-Match, If-Range If-Unmodified-Since, Pragma Last-Modified, Vary |
|
Gestion des connexions |
Connexion, Keep-Alive Proxy-Connection, Mise à niveau |
|
Contexte de la demande |
Hôte, Référent User-Agent, Expéditeur |
|
Gamme/Transfert |
Range Accept-Ranges, Transfer-Encoding, TE, remorque |
|
Informations sur le serveur |
Serveur, date, emplacement, Retry-After |
|
Cookies |
Set-Cookie, Biscuit |
|
Sécurité |
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, Origine |
|
Conseils aux clients |
Accept-CH Accept-CH-Lifetime, DPR, largeur, liaison descendante Viewport-Width, ECT, RTT, Save-Data |
|
Expérimental/Proposé |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proxy |
Via, Transféré X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP, X-Requested-With, X-CSRF-Token |
|
Usurpation d'adresse IP/manipulation d'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-en-têtes |
:method, :path, :scheme, :authority, :status |
|
Serveur Push |
Lien |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Outre les en-têtes restreints répertoriés ci-dessus :
-
Tous les en-têtes commençant par
x-amz-sont restreints (par exemple,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Ils sont réservés à la signature des AWS demandes. -
Tous les en-têtes commençant par
x-amzn-sont restreints, à l'exception des en-têtes préfixés par.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Étape 1 : Créez votre agent
Créez un AgentCore projet à l'aide de la AgentCore CLI :
agentcore create --name MyHeaderAgent cd MyHeaderAgent
Mettez à jour le fichier de point d'entrée de votre agent pour accéder aux en-têtes personnalisés depuis le contexte de la demande :
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()
Étape 2 : configurer et déployer votre agent avec des en-têtes personnalisés
Configurez la liste d'autorisation des en-têtes de demande sur le runtime de votre agent afin que les en-têtes personnalisés soient transférés vers le code de votre agent au moment de l'appel.
Exemple
Étape 3 : Invoquez votre agent avec des en-têtes personnalisés
Transmettez des en-têtes personnalisés lorsque vous appelez votre agent afin que votre code d'agent puisse y accéder via le contexte de la demande.
Exemple
Étape 4 : (Facultatif) Configurer l'authentification JWT entrante
Pour transmettre le jeton JWT utilisé pour l'accès OAuth-based entrant à votre agent, configurez authorizerType et authorizerConfiguration dans la configuration de votre agent.