View a markdown version of this page

Configuration - Amazon Bedrock AgentCore

Configuration

Les intercepteurs peuvent être configurés avec un paramètre d'entrée appelé passRequestHeaders

Configuration de l'entrée de l'intercepteur

Lors de la configuration des intercepteurs, vous pouvez spécifier si les en-têtes de requête doivent être transmis à la fonction d'interception à l'aide du champ : passRequestHeaders

passe RequestHeaders

Valeur booléenne qui détermine si les en-têtes de requête sont inclus dans la charge utile d'entrée de l'intercepteur. Lorsqu'il est défini surtrue, tous les en-têtes de requête seront transmis à votre fonction Lambda d'interception. Lorsqu'il est défini sur false (par défaut), les en-têtes ne sont pas inclus.

Avertissement

Soyez prudent lorsque vous définissez ce paramètre sur, true car les en-têtes de demande peuvent contenir des informations sensibles telles que des jetons d'authentification et des informations d'identification.

Filtre de charge utile

Pour les cibles HTTP (AgentCore Runtime et passthrough) et les cibles d'inférence, qui partagent la forme de la charge utile de l'httpintercepteur, un filtre facultatif exclut les champs de la charge utile d'entrée de l'intercepteur. L'invocation synchrone Lambda a une limite de 6 Mo pour la demande et la réponse combinées, de sorte que l'exclusion d'un corps de réponse volumineux permet de maintenir la charge utile dans cette limite. Pour exclure le corps de la réponse, définissez payloadFilter.exclude une liste contenant le RESPONSE_BODY champ :

{ "inputConfiguration": { "passRequestHeaders": false, "payloadFilter": { "exclude": [{ "field": "RESPONSE_BODY" }] } } }
Note

passRequestHeadersest obligatoire dansinputConfiguration. Incluez-le (par exemple"passRequestHeaders": false) à côtépayloadFilter.

Lorsque le corps de la réponse est exclu, le body champ de la charge utile d'entrée de l'intercepteur de réponse est. null Votre fonction peut toujours inspecter lestatusCode, et contentTypeheaders, et peut injecter des en-têtes ou remplacer le code d'état. Si votre fonction revientbody: null, la passerelle utilise le corps de réponse d'origine.

Configuration des intercepteurs lors de la création de la passerelle

Les exemples suivants montrent comment créer une passerelle avec des intercepteurs passRequestHeaders définis sur : true

Exemple
AgentCore CLI
  1. Avec la AgentCore CLI, créez et déployez d'abord la passerelle, puis configurez les intercepteurs à l'aide de la AWS CLI ou du SDK AWS Python (Boto3).

    Créez la passerelle :

    agentcore add gateway \ --name my-gateway-with-headers \ --authorizer-type CUSTOM_JWT \ --discovery-url "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration" \ --allowed-audience "api.example.com" agentcore deploy

    Après le déploiement, configurez les intercepteurs sur la passerelle à l'aide de la update-gateway commande AWS CLI ou du SDK AWS Python (Boto3) comme indiqué dans les autres onglets.

AWS CLI
  1. Utilisez la commande AWS CLI suivante pour créer une passerelle avec des intercepteurs configurés pour transmettre des en-têtes de demande :

    aws bedrock-agentcore-control create-gateway \ --name my-gateway-with-headers \ --role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \ --protocol-type MCP \ --authorizer-type CUSTOM_JWT \ --authorizer-configuration '{ "customJWTAuthorizer": { "discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration", "allowedClients": ["clientId"] } }' \ --interceptor-configurations '[{ "interceptor": { "lambda": { "arn":"arn:aws:lambda:us-west-2:123456789012:function:my-interceptor-lambda" } }, "interceptionPoints": ["REQUEST", "RESPONSE"], "inputConfiguration": { "passRequestHeaders": true } }]'
AWS Python SDK (Boto3)
  1. Utilisez le code Python suivant avec le SDK AWS Python (Boto3) pour créer une passerelle avec des intercepteurs configurés pour transmettre des en-têtes de requête :

    import boto3 # Initialize the AgentCore client client = boto3.client('bedrock-agentcore-control') # Create a gateway gateway = client.create_gateway( name="my-gateway-with-headers", roleArn="arn:aws:iam::123456789012:role/my-gateway-service-role", protocolType="MCP", authorizerType="CUSTOM_JWT", authorizerConfiguration={ "customJWTAuthorizer": { "discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration", "allowedClients": ["clientId"] } }, interceptorConfigurations=[{ "interceptor": { "lambda": { "arn":"arn:aws:lambda:us-west-2:123456789012:function:my-interceptor-lambda" } }, "interceptionPoints": ["REQUEST", "RESPONSE"], "inputConfiguration": { "passRequestHeaders": True } }] ) print(f"MCP Endpoint: {gateway['gatewayUrl']}")

Mise à jour des configurations d'intercepteurs

Vous pouvez mettre à jour les configurations existantes de l'intercepteur de passerelle pour modifier le passRequestHeaders réglage ou d'autres paramètres à l'aide des opérations de l'API de mise à jour de la passerelle.