View a markdown version of this page

Configuración - Amazon Bedrock AgentCore

Configuración

Los interceptores se pueden configurar con un parámetro de entrada llamado passRequestHeaders

Configuración de entrada del interceptor

Al configurar los interceptores, puede especificar si los encabezados de las solicitudes deben pasarse a la función interceptora mediante el campo: passRequestHeaders

pasar RequestHeaders

Un valor booleano que determina si los encabezados de las solicitudes se incluyen en la carga útil de entrada del interceptor. Si se establece entrue, todos los encabezados de solicitud se pasarán a la función Lambda del interceptor. Si se establece en false (predeterminado), los encabezados no se incluyen.

aviso

Tenga cuidado al configurarlo, true ya que los encabezados de las solicitudes pueden contener información confidencial, como credenciales y credenciales de autenticación.

Filtro de carga útil

Para los objetivos HTTP (AgentCore tiempo de ejecución y acceso directo) y los objetivos de inferencia, que comparten la forma de carga útil del http interceptor, un filtro opcional que excluye los campos de la carga útil de entrada del interceptor. La invocación sincrónica de Lambda tiene un límite de 6 MB para la solicitud y la respuesta combinadas, por lo que la exclusión de un cuerpo de respuesta grande mantiene la carga útil dentro de ese límite. Para excluir el cuerpo de la respuesta, configúrelo en una lista payloadFilter.exclude que contenga el campo: RESPONSE_BODY

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

passRequestHeaderses obligatorio eninputConfiguration. Inclúyalo (por ejemplo,"passRequestHeaders": false) al ladopayloadFilter.

Si se excluye el cuerpo de la respuesta, el body campo de la carga útil de entrada del interceptor de respuesta lo es. null La función aún puede inspeccionar las letrasstatusCode, y contentTypeheaders, y puede inyectar encabezados o anular el código de estado. Si la función vuelve a aparecerbody: null, la puerta de enlace utilizará el cuerpo de la respuesta original.

Configuración de los interceptores durante la creación de la puerta de enlace

Los siguientes ejemplos muestran cómo crear una puerta de enlace con interceptores passRequestHeaders configurados en: true

ejemplo
AgentCore CLI
  1. Con la AgentCore CLI, primero cree e implemente la puerta de enlace y, a continuación, configure los interceptores mediante la AWS CLI o el SDK de AWS Python (Boto3).

    Cree la puerta de enlace:

    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

    Tras la implementación, configure los interceptores en la puerta de enlace mediante el update-gateway comando AWS CLI o el SDK de AWS Python (Boto3), como se muestra en las demás pestañas.

AWS CLI
  1. Utilice el siguiente comando AWS CLI para crear una puerta de enlace con interceptores configurados para pasar los encabezados de las solicitudes:

    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. Usa el siguiente código de Python con el SDK de AWS Python (Boto3) para crear una puerta de enlace con interceptores configurados para pasar los encabezados de las solicitudes:

    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']}")

Actualización de las configuraciones de los interceptores

Puede actualizar las configuraciones de los interceptores de puerta de enlace existentes para modificar la passRequestHeaders configuración u otros parámetros mediante las operaciones de la API de actualización de la puerta de enlace.