View a markdown version of this page

Konfiguration - Amazon Grundgestein AgentCore

Konfiguration

Interzeptoren können mit einem Eingabeparameter namens konfiguriert werden passRequestHeaders

Konfiguration der Interceptor-Eingabe

Bei der Konfiguration von Interceptoren können Sie mithilfe des folgenden Felds angeben, ob Anforderungsheader an die Interceptor-Funktion übergeben werden sollen: passRequestHeaders

übergeben RequestHeaders

Ein boolescher Wert, der bestimmt, ob Anforderungsheader in der Interceptor-Eingabe-Payload enthalten sind. Wenn auf gesetzttrue, werden alle Anforderungsheader an Ihre Interceptor-Lambda-Funktion übergeben. Wenn auf false (Standard) gesetzt, sind Header nicht enthalten.

Warnung

Seien Sie vorsichtig, wenn Sie dies auf einstellen, true da Anforderungsheader vertrauliche Informationen wie Authentifizierungstoken und Anmeldeinformationen enthalten können.

PayloadFilter

Für HTTP-Ziele (AgentCore Runtime und Passthrough) und Inferenzziele, die die Form der Interceptor-Payload gemeinsam haben, ein optionaler Filter, der Felder aus der http Interceptor-Eingabe-Payload ausschließt. Der synchrone Lambda-Aufruf hat ein Limit von 6 MB für die kombinierte Anforderung und Antwort. Wenn also ein großer Antworttext ausgeschlossen wird, bleibt die Nutzlast innerhalb dieses Limits. Um den Antworttext auszuschließen, setzen Sie ihn auf eine Liste, payloadFilter.exclude die das folgende Feld enthält: RESPONSE_BODY

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

passRequestHeadersist erforderlich ininputConfiguration. Fügen Sie es (zum Beispiel"passRequestHeaders": false) zusammen mit einpayloadFilter.

Wenn der Antworttext ausgeschlossen ist, lautet das body Feld in der Eingabe-Payload des Response-Interceptors. null Ihre Funktion kann immer noch diestatusCode, und contentTypeheaders, überprüfen und Header einfügen oder den Statuscode überschreiben. Wenn Ihre Funktion zurückkehrtbody: null, verwendet das Gateway den ursprünglichen Antworttext.

Konfiguration von Interzeptoren während der Gateway-Erstellung

Die folgenden Beispiele zeigen, wie Sie ein Gateway mit Interzeptoren erstellen, die auf eingestellt sind: passRequestHeaders true

Beispiel
AgentCore CLI
  1. Erstellen und implementieren Sie mit der AgentCore CLI zuerst das Gateway und konfigurieren Sie dann Interceptors mithilfe der AWS CLI oder des AWS Python-SDK (Boto3).

    Erstellen Sie das 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

    Konfigurieren Sie nach der Bereitstellung Interceptors auf dem Gateway mit dem AWS update-gateway CLI-Befehl oder dem AWS Python-SDK (Boto3), wie auf den anderen Registerkarten gezeigt.

AWS CLI
  1. Verwenden Sie den folgenden AWS CLI-Befehl, um ein Gateway mit Interceptoren zu erstellen, die so konfiguriert sind, dass sie Anforderungsheader weiterleiten:

    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. Verwenden Sie den folgenden Python-Code mit dem AWS Python-SDK (Boto3), um ein Gateway mit Interceptoren zu erstellen, die so konfiguriert sind, dass sie Anforderungsheader übergeben:

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

Aktualisierung der Interceptor-Konfigurationen

Sie können bestehende Gateway-Interceptor-Konfigurationen aktualisieren, um die passRequestHeaders Einstellung oder andere Parameter mithilfe der Aktualisierungs-Gateway-API-Operationen zu ändern.