View a markdown version of this page

Configurazione - Amazon Bedrock AgentCore

Configurazione

Gli intercettori possono essere configurati con un parametro di input chiamato passRequestHeaders

Configurazione dell'ingresso dell'intercettore

Quando si configurano gli intercettori, è possibile specificare se le intestazioni della richiesta devono essere passate alla funzione di intercettazione utilizzando il campo: passRequestHeaders

passare RequestHeaders

Un valore booleano che determina se le intestazioni di richiesta sono incluse nel payload di input dell'intercettore. Se impostato sutrue, tutte le intestazioni delle richieste verranno passate alla funzione Lambda dell'intercettore. Se impostato su false (impostazione predefinita), le intestazioni non sono incluse.

avvertimento

Fai attenzione quando lo imposti su, true poiché le intestazioni delle richieste possono contenere informazioni sensibili come token di autenticazione e credenziali.

Filtro Payload

Per i target HTTP (AgentCore Runtime e passthrough) e i target di inferenza, che condividono la forma del payload dell'httpintercettore, un filtro opzionale che esclude i campi dal payload di input dell'interceptor. La chiamata sincrona Lambda ha un limite di 6 MB per la richiesta e la risposta combinate, quindi l'esclusione di un corpo di risposta di grandi dimensioni mantiene il payload entro tale limite. Per escludere il corpo della risposta, impostate un elenco contenente payloadFilter.exclude il campo: RESPONSE_BODY

{ "inputConfiguration": { "passRequestHeaders": false, "payloadFilter": { "exclude": [{ "field": "RESPONSE_BODY" }] } } }
Nota

passRequestHeadersè obbligatorio ininputConfiguration. Includilo (ad esempio,"passRequestHeaders": false) accantopayloadFilter.

Quando il corpo della risposta è escluso, il body campo nel payload di input dell'intercettore di risposta è. null La funzione può comunque ispezionare statusCode contentTypeheaders, e inserire intestazioni o sovrascrivere il codice di stato. Se la funzione viene ripristinatabody: null, il gateway utilizza il corpo della risposta originale.

Configurazione degli intercettori durante la creazione del gateway

Gli esempi seguenti mostrano come creare un gateway con intercettori impostati su: passRequestHeaders true

Esempio
AgentCore CLI
  1. Con la AgentCore CLI, prima crea e distribuisci il gateway, quindi configura gli intercettori utilizzando la AWS CLI o Python SDK (Boto3). AWS

    Crea il 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

    Dopo la distribuzione, configura gli intercettori sul gateway utilizzando il AWS comando CLI update-gateway o AWS Python SDK (Boto3) come mostrato nelle altre schede.

AWS CLI
  1. Utilizza il seguente comando AWS CLI per creare un gateway con intercettori configurati per passare le intestazioni delle richieste:

    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)
  1. Usa il seguente codice Python con AWS Python SDK (Boto3) per creare un gateway con intercettori configurati per passare le intestazioni delle richieste:

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

Aggiornamento delle configurazioni degli interceptor

È possibile aggiornare le configurazioni esistenti degli intercettori del gateway per modificare l'passRequestHeadersimpostazione o altri parametri utilizzando le operazioni dell'API di aggiornamento del gateway.