

# 設定
<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 同期呼び出しには、リクエストとレスポンスの組み合わせに 6 MB の制限があるため、大きなレスポンス本文を除外すると、ペイロードはその制限内に保持されます。レスポンス本文を除外するには、 `payloadFilter.exclude` を `RESPONSE_BODY`フィールドを含むリストに設定します。  

```
{
  "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 または Python SDK (Boto3) AWS を使用してインターセプターを設定します。

   ゲートウェイを作成します。

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

   デプロイ後、他のタブに示すように、CLI `update-gateway` コマンドまたは AWS Python SDK (Boto3) AWS を使用してゲートウェイでインターセプターを設定します。

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`設定やその他のパラメータを変更できます。