View a markdown version of this page

Configuração - Amazon Bedrock AgentCore

Configuração

Os interceptores podem ser configurados com um parâmetro de entrada chamado passRequestHeaders

Configuração de entrada do interceptor

Ao configurar interceptores, você pode especificar se os cabeçalhos da solicitação devem ser passados para a função interceptora usando o campo: passRequestHeaders

passar RequestHeaders

Um valor booleano que determina se os cabeçalhos da solicitação estão incluídos na carga de entrada do interceptor. Quando definido comotrue, todos os cabeçalhos de solicitação serão passados para a função Lambda do interceptor. Quando definido como false (padrão), os cabeçalhos não são incluídos.

Atenção

Tenha cuidado ao definir isso, true pois os cabeçalhos de solicitação podem conter informações confidenciais, como tokens de autenticação e credenciais.

Filtro de carga útil

Para destinos HTTP (AgentCore tempo de execução e passagem) e destinos de inferência, que compartilham a forma de carga útil do http interceptor, um filtro opcional que exclui campos da carga de entrada do interceptor. A invocação síncrona do Lambda tem um limite de 6 MB para a solicitação e a resposta combinadas, portanto, excluir um corpo de resposta grande mantém a carga dentro desse limite. Para excluir o corpo da resposta, payloadFilter.exclude defina uma lista contendo o RESPONSE_BODY campo:

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

passRequestHeadersé exigido eminputConfiguration. Inclua-o (por exemplo,"passRequestHeaders": false) ao ladopayloadFilter.

Quando o corpo da resposta é excluído, o body campo na carga útil de entrada do interceptor de resposta é. null Sua função ainda pode inspecionar ostatusCode,, e contentTypeheaders, e pode injetar cabeçalhos ou substituir o código de status. Se sua função retornarbody: null, o gateway usará o corpo da resposta original.

Configurando interceptores durante a criação do gateway

Os exemplos a seguir mostram como criar um gateway com interceptores passRequestHeaders definidos como: true

exemplo
AgentCore CLI
  1. Com a AgentCore CLI, primeiro crie e implante o gateway e, em seguida, configure os interceptores usando a CLI AWS ou o SDK do Python AWS (Boto3).

    Crie o 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

    Após a implantação, configure os interceptores no gateway usando o comando AWS update-gateway CLI ou o SDK do AWS Python (Boto3), conforme mostrado nas outras guias.

AWS CLI
  1. Use o seguinte comando da AWS CLI para criar um gateway com interceptores configurados para passar cabeçalhos de solicitação:

    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. Use o código Python a seguir com o SDK do AWS Python (Boto3) para criar um gateway com interceptores configurados para transmitir cabeçalhos de solicitação:

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

Atualizando as configurações do interceptor

Você pode atualizar as configurações existentes do interceptor de gateway para modificar a passRequestHeaders configuração ou outros parâmetros usando as operações da API do gateway de atualização.