Beispiele
Das folgende Beispiel zeigt eine Python-Lambda-Funktion, die sowohl REQUEST- als auch RESPONSE-Interzeptortypen verarbeiten kann. Der REQUEST-Interzeptor protokolliert die MCP-Methode und leitet die Anfrage unverändert weiter, während der RESPONSE-Interzeptor die Antwort unverändert weiterleitet.
Pass-through Interzeptor
Dieses Beispiel zeigt einen einfachen Interceptor, der die MCP-Methode für REQUEST-Interzeptoren protokolliert und alle Anfragen und Antworten unverändert weiterleitet:
import json import logging # Configure logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): """ Lambda function that handles both REQUEST and RESPONSE interceptor types. For REQUEST interceptors: logs the MCP method and passes request through unchanged For RESPONSE interceptors: passes response through unchanged """ # Extract the MCP data from the event mcp_data = event.get('mcp', {}) # Check if this is a REQUEST or RESPONSE interceptor based on presence of gatewayResponse if 'gatewayResponse' in mcp_data and mcp_data['gatewayResponse'] != None: # This is a RESPONSE interceptor logger.info("Processing RESPONSE interceptor - passing through unchanged") # Pass through the original request and response unchanged response = { "interceptorOutputVersion": "1.0", "mcp": { "transformedGatewayResponse": { "body": mcp_data.get('gatewayResponse', {}).get('body', {}), "statusCode": mcp_data.get('gatewayResponse', {}).get('statusCode', 200) } } } else: # This is a REQUEST interceptor gateway_request = mcp_data.get('gatewayRequest', {}) request_body = gateway_request.get('body', {}) mcp_method = request_body.get('method', 'unknown') # Log the MCP method logger.info(f"Processing REQUEST interceptor - MCP method: {mcp_method}") # Pass through the original request unchanged response = { "interceptorOutputVersion": "1.0", "mcp": { "transformedGatewayRequest": { "body": request_body, } } } return response
Diese Lambda-Funktion kann sowohl als REQUEST- als auch als RESPONSE-Interzeptor konfiguriert werden. Wenn er als REQUEST-Interceptor konfiguriert ist, protokolliert er die MCP-Methode aus der eingehenden Anfrage. Wenn er als RESPONSE-Interzeptor konfiguriert ist, leitet er die Antwort einfach unverändert weiter. Beide Interzeptortypen geben die Originaldaten unverändert zurück, was diesen Interzeptor zu einem „Pass-Through“ -Interzeptor macht.