

# Configuración
<a name="gateway-interceptors-configuration"></a>

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

## Configuración de entrada del interceptor
<a name="gateway-interceptors-configuration-input"></a>

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 en`true`, 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.  
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" }]
    }
  }
}
```
 `passRequestHeaders`es obligatorio en`inputConfiguration`. Inclúyalo (por ejemplo,`"passRequestHeaders": false`) al lado`payloadFilter`.
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 letras`statusCode`, y `contentType``headers`, y puede inyectar encabezados o anular el código de estado. Si la función vuelve a aparecer`body: 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
<a name="gateway-interceptors-configuration-creation"></a>

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

**Example**  

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.

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
         }
     }]'
   ```

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
<a name="gateway-interceptors-configuration-update"></a>

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.