Esempi
L'esempio seguente mostra una funzione Python Lambda in grado di gestire sia i tipi di intercettori REQUEST che RESPONSE. L'intercettore REQUEST registra il metodo MCP e trasmette la richiesta senza modifiche, mentre l'intercettore RESPONSE trasmette la risposta invariata.
Pass-through intercettore
Questo esempio dimostra un semplice intercettore che registra il metodo MCP per gli intercettori REQUEST e trasmette tutte le richieste e le risposte invariate:
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
Questa funzione Lambda può essere configurata sia come intercettore REQUEST che RESPONSE. Se configurata come intercettore REQUEST, registrerà il metodo MCP dalla richiesta in entrata. Se configurato come intercettore RESPONSE, passerà semplicemente la risposta invariata. Entrambi i tipi di intercettore restituiscono i dati originali senza modifiche, il che lo rende un intercettore «pass-through».