

# Configuração
<a name="gateway-interceptors-configuration"></a>

Os interceptores podem ser configurados com um parâmetro de entrada chamado `passRequestHeaders` 

## Configuração de entrada do interceptor
<a name="gateway-interceptors-configuration-input"></a>

Ao configurar interceptores, você pode especificar se os cabeçalhos da solicitação devem ser passados para a função interceptora usando o campo: `passRequestHeaders`

 **passar RequestHeaders**   
Um valor booleano que determina se os cabeçalhos da solicitação estão incluídos na carga de entrada do interceptor. Quando definido como`true`, todos os cabeçalhos de solicitação serão passados para a função Lambda do interceptor. Quando definido como `false` (padrão), os cabeçalhos não são incluídos.  
Tenha cuidado ao definir isso, `true` pois os cabeçalhos de solicitação podem conter informações confidenciais, como tokens de autenticação e credenciais.

 **Filtro de carga útil**   
Para destinos HTTP (AgentCore tempo de execução e passagem) e destinos de inferência, que compartilham a forma de carga útil do `http` interceptor, um filtro opcional que exclui campos da carga de entrada do interceptor. A invocação síncrona do Lambda tem um limite de 6 MB para a solicitação e a resposta combinadas, portanto, excluir um corpo de resposta grande mantém a carga dentro desse limite. Para excluir o corpo da resposta, `payloadFilter.exclude` defina uma lista contendo o `RESPONSE_BODY` campo:  

```
{
  "inputConfiguration": {
    "passRequestHeaders": false,
    "payloadFilter": {
      "exclude": [{ "field": "RESPONSE_BODY" }]
    }
  }
}
```
 `passRequestHeaders`é exigido em`inputConfiguration`. Inclua-o (por exemplo,`"passRequestHeaders": false`) ao lado`payloadFilter`.
Quando o corpo da resposta é excluído, o `body` campo na carga útil de entrada do interceptor de resposta é. `null` Sua função ainda pode inspecionar o`statusCode`,, e `contentType``headers`, e pode injetar cabeçalhos ou substituir o código de status. Se sua função retornar`body: null`, o gateway usará o corpo da resposta original.

## Configurando interceptores durante a criação do gateway
<a name="gateway-interceptors-configuration-creation"></a>

Os exemplos a seguir mostram como criar um gateway com interceptores `passRequestHeaders` definidos como: `true`

**Example**  

1. Com a AgentCore CLI, primeiro crie e implante o gateway e, em seguida, configure os interceptores usando a CLI AWS ou o SDK do Python AWS (Boto3).

   Crie o gateway:

   ```
   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
   ```

   Após a implantação, configure os interceptores no gateway usando o comando AWS `update-gateway` CLI ou o SDK do AWS Python (Boto3), conforme mostrado nas outras guias.

1. Use o seguinte comando da AWS CLI para criar um gateway com interceptores configurados para passar cabeçalhos de solicitação:

   ```
   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. Use o código Python a seguir com o SDK do AWS Python (Boto3) para criar um gateway com interceptores configurados para transmitir cabeçalhos de solicitação:

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

## Atualizando as configurações do interceptor
<a name="gateway-interceptors-configuration-update"></a>

Você pode atualizar as configurações existentes do interceptor de gateway para modificar a `passRequestHeaders` configuração ou outros parâmetros usando as operações da API do gateway de atualização.