AWS负载均衡器路径基础路由不转发路径的解决方法是通过使用Lambda函数来实现。Lambda函数将被触发,并根据不同的路径返回不同的响应。以下是示例代码:
import json
def handler(event, context):
path = event['path']
if path == '/path1':
return {
'statusCode': 200,
'body': json.dumps('Hello from Path 1!')
}
elif path == '/path2':
return {
'statusCode': 200,
'body': json.dumps('Hello from Path 2!')
}
else:
return {
'statusCode': 404,
'body': json.dumps('Page not found')
}
将负载均衡器的监听规则更改为使用Lambda函数作为目标,以便Lambda函数可以处理路径路由请求。以下是一个示例监听规则:
{
"Type": "AWS::ElasticLoadBalancingV2::ListenerRule",
"Properties": {
"Actions": [
{
"Type": "forward",
"TargetGroupArn": ""
},
{
"Type": "aws",
"TargetGroupArn": "",
"LambdaInvokeConfig": {
"Qualifier": ""
}
}
],
"Conditions": [
{
"Field": "path-pattern",
"Values": ["/path1*", "/path2*"]
}
],
"ListenerArn": "",
"Priority": 1
}
}
如上所述,该规则将请求的路径路由到Lambda函数,该函数将根据路径返回响应。现在,您可以使用Lambda函数来处理路径路由请求,而无需将其直接发送到目标组后端。