設定
インターセプターは、 という名前の入力パラメータで設定できます。 passRequestHeaders
インターセプターを設定するときは、 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、ゲートウェイは元のレスポンス本文を使用します。
ゲートウェイ作成時のインターセプターの設定
次の例は、 が true passRequestHeadersに設定されているインターセプターを使用してゲートウェイを作成する方法を示しています。
例
- AgentCore CLI
-
-
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 を使用してゲートウェイでインターセプターを設定します。
- AWS CLI
-
-
次の 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
}
}]'
- AWS Python SDK (Boto3)
-
-
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']}")
インターセプター設定の更新
既存のゲートウェイインターセプター設定を更新して、ゲートウェイ API の更新オペレーションを使用してpassRequestHeaders設定やその他のパラメータを変更できます。