Exemplos
O exemplo a seguir mostra uma função Python Lambda que pode lidar com os tipos de interceptores REQUEST e RESPONSE. O interceptor REQUEST registra o método MCP e passa a solicitação inalterada, enquanto o interceptor RESPONSE transmite a resposta inalterada.
Pass-through interceptor
Este exemplo demonstra um interceptor simples que registra o método MCP para interceptores REQUEST e passa todas as solicitações e respostas inalteradas:
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
Essa função Lambda pode ser configurada como interceptora de SOLICITAÇÃO e RESPOSTA. Quando configurado como um interceptor de SOLICITAÇÃO, ele registrará o método MCP a partir da solicitação recebida. Quando configurado como um interceptor de RESPOSTA, ele simplesmente passará a resposta inalterada. Ambos os tipos de interceptores retornam os dados originais sem modificação, tornando-o um interceptor de “passagem”.