配置
拦截器可以使用名为的输入参数进行配置 passRequestHeaders
配置拦截器时,您可以使用以下字段指定是否应将请求标头传递给拦截器函数:passRequestHeaders
- 通过 RequestHeaders
-
一个布尔值,用于确定拦截器输入有效载荷中是否包含请求标头。设置为时true,所有请求标头都将传递给您的拦截器 Lambda 函数。如果设置为false(默认),则不包括标题。
将其设置为时请谨慎行事true,因为请求标头可能包含敏感信息,例如身份验证令牌和凭据。
- 有效载荷过滤器
-
对于共享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。您的函数仍然可以检查statusCodecontentType、和headers,并且可以注入标头或覆盖状态码。如果您的函数返回body: null,则网关将使用原始响应正文。
在创建网关期间配置拦截器
以下示例说明如何使用passRequestHeaders设置为的拦截器创建网关:true
例
- AgentCore CLI
-
-
使用 AgentCore CLI,首先创建和部署网关,然后使用 CL AWS I 或 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) 在网关上配置拦截器,如其他选项卡所示。
- 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 代码与 AWS Python 软件开发工具包 (Boto3) 一起使用配置为传递请求标头的拦截器创建网关:
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设置或其他参数。