API Gateway 动态路由

0

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

profile picture
EXPERTE
gefragt vor 5 Monaten25 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen