API Gateway 动态路由

0

【以下的问题经过翻译处理】 我的客户有一个多租户应用程序,希望将所有租户的流量路由到单个端点。根据请求标头中的内容,请求将被路由到适当的租户端点,类似于Lambda授权方的工作方式,但是要改变路由。租户ID/路由映射可能会随时间变化,因此需要在诸如DynamoDB之类的存储中进行查找。实现这一目标的最佳方法是什么?

profile picture
专家
已提问 5 个月前23 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以使用Lambda@Edge结合CloudFront来实现这一目标。Lambda函数可以在其中使用Route 53主机名,以增强其弹性并便于修改不同数据中心的权重和主机名。

另外,如果传入请求没有特定的标头,您可以让Lambda@Edge根据routing_logic进行路由。一旦请求被映射到后端,您可能希望在浏览器中设置一个Cookie(会话/持久性),其中包含该Origin值。

当后续请求到达CloudFront时,您的逻辑可能如下所示:

{
   IF: 
      Request Header: A
   THEN:
      Go to, Origin = A
}
{
   IF: 
      Request Header: B
   THEN:
      Go to, Origin = B
}

即使对于我分享的上述片段,我的建议也是不要在Lambda函数中硬编码A和B的Origin主机名,而是仍然创建Route 53故障转移属性,并在其中使用它们。优势在于,如果A出现故障,故障转移属性将自动将请求发送到故障转移目标。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则