

# 구성
<a name="gateway-interceptors-configuration"></a>

라는 입력 파라미터로 인터셉터를 구성할 수 있습니다. `passRequestHeaders` 

## 인터셉터 입력 구성
<a name="gateway-interceptors-configuration-input"></a>

인터셉터를 구성할 때 `passRequestHeaders` 필드를 사용하여 요청 헤더를 인터셉터 함수로 전달할지 여부를 지정할 수 있습니다.

 **passRequestHeaders**   
요청 헤더가 인터셉터 입력 페이로드에 포함되는지 여부를 결정하는 부울 값입니다. 로 설정하면 `true` 모든 요청 헤더가 인터셉터 Lambda 함수로 전달됩니다. `false` (기본값)으로 설정하면 헤더가 포함되지 않습니다.  
요청 헤더에는 인증 토큰 및 자격 증명과 같은 민감한 정보가 포함될 수 `true` 있으므로 이를 로 설정할 때는 주의해야 합니다.

 **payloadFilter**   
`http` 인터셉터 페이로드 셰이프를 공유하는 HTTP 대상(AgentCore 런타임 및 패스스루) 및 추론 대상의 경우 인터셉터 입력 페이로드에서 필드를 제외하는 선택적 필터입니다. Lambda 동기 호출에는 요청과 응답을 합친 한도가 6MB이므로 큰 응답 본문을 제외하면 페이로드가 해당 한도 내에 유지됩니다. 응답 본문을 제외하려면를 `RESPONSE_BODY` 필드가 포함된 목록`payloadFilter.exclude`으로 설정합니다.  

```
{
  "inputConfiguration": {
    "passRequestHeaders": false,
    "payloadFilter": {
      "exclude": [{ "field": "RESPONSE_BODY" }]
    }
  }
}
```
 `passRequestHeaders`는에 필요합니다`inputConfiguration`. 와 함께 포함시킵니다(예: `"passRequestHeaders": false`). `payloadFilter` 
응답 본문이 제외되면 응답 인터셉터 입력 페이로드의 `body` 필드는 입니다`null`. 함수는 여전히 `statusCode`, `contentType`및를 검사할 수 `headers`있으며 헤더를 주입하거나 상태 코드를 재정의할 수 있습니다. 함수가 `body: null`를 반환하면 게이트웨이는 원래 응답 본문을 사용합니다.

## 게이트웨이 생성 중 인터셉터 구성
<a name="gateway-interceptors-configuration-creation"></a>

다음 예제에서는가 `true` 로 `passRequestHeaders` 설정된 인터셉터를 사용하여 게이트웨이를 생성하는 방법을 보여줍니다.

**Example**  

1. AgentCore CLI를 사용하여 먼저 게이트웨이를 생성 및 배포한 다음 AWS CLI 또는 AWS Python SDK(Boto3)를 사용하여 인터셉터를 구성합니다.

   게이트웨이를 생성합니다.

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

   배포 후 다른 탭과 같이 AWS CLI `update-gateway` 명령 또는 AWS Python SDK(Boto3)를 사용하여 게이트웨이에서 인터셉터를 구성합니다.

1. 다음 AWS CLI 명령을 사용하여 요청 헤더를 전달하도록 구성된 인터셉터가 있는 게이트웨이를 생성합니다.

   ```
   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. Python SDK(Boto3)와 함께 다음 AWS Python 코드를 사용하여 요청 헤더를 전달하도록 구성된 인터셉터가 있는 게이트웨이를 생성합니다.

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

## 인터셉터 구성 업데이트
<a name="gateway-interceptors-configuration-update"></a>

업데이트 게이트웨이 API 작업을 사용하여 기존 게이트웨이 인터셉터 구성을 업데이트하여 `passRequestHeaders` 설정 또는 기타 파라미터를 수정할 수 있습니다.