要在AWS API Gateway中的代理资源API返回所有URL的最后缓存的响应,您需要使用AWS API Gateway的缓存功能以及Lambda集成。
以下是一种解决方法的代码示例:
在AWS API Gateway中创建一个代理资源API,并启用缓存功能。
创建一个Lambda函数来处理API请求,并将其与API Gateway集成。
import boto3
import json
def lambda_handler(event, context):
# 获取请求的URL路径
path = event['path']
# 创建一个API Gateway缓存管理器
cache_manager = boto3.client('apigatewaymanagementapi')
# 获取API Gateway缓存的最后响应
response = cache_manager.get_integration_response(
restApiId='YOUR_REST_API_ID',
resourceId='YOUR_RESOURCE_ID',
httpMethod='ANY',
path=path
)
# 获取缓存的响应体
response_body = response['responseTemplates']['application/json']
# 创建一个JSON响应
json_response = {
'statusCode': 200,
'body': response_body
}
return json_response
在API Gateway中创建一个Lambda集成,将该Lambda函数与代理资源API的方法(GET、POST等)关联起来。
现在,当您发送请求到代理资源API的任何URL时,Lambda函数将从API Gateway缓存管理器中获取最后缓存的响应,并将其作为JSON响应返回。
请注意,上述代码示例中的YOUR_REST_API_ID和YOUR_RESOURCE_ID需要替换为您的实际值。