簡體   English   中英

如何根據 AWS API Gateway 中的請求標頭動態設置集成端點?

[英]How to set integration endpoint dynamically based on request header in AWS API Gateway?

我想根據請求中收到的請求標頭將傳入請求代理到不同的端點。

在 AWS API 網關中,我可以將不同的端點設置為單獨的階段變量,但是在集成 >> 端點 URL 設置中,我想根據請求標頭值的值來選擇階段變量。

例如:

如果標頭值為brand-id:abc 那么請求應該被代理到abc.test.com

如果標頭值為brand-id: pqr 那么請求應該被代理到pqr.test.com

我期待“端點 URL”值中的類似內容: http://${stageVariables.${method.request.header.brand-id}}/

任何幫助實現這一目標將不勝感激。

AFAIK 這在 API 網關級別是不可能的。 選項是在 lambda 集成級別上進行映射。

您可以使用 Lambda 代理集成來實現類似的行為:

  • 創建所需的 API 集。
  • 創建一個代理端點,將所有內容傳遞給 Lambda 函數。
  • 在 Lambda 函數內部,根據標頭決定調用相應的端點並從您獲得的有效負載中傳遞所需的數據。
  • 返回來自您調用的 API 的響應。

您可以使用 python 的適配器模式或字符串參數格式來避免 if 和 else 條件的混亂。 您也可以考慮通過RequestResponse調用直接從您的代理 Lambda 調用 Lambda,這可能會為您節省一些時間,因為 API 網關的額外層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM