我想使用 Amazon API Gateway 端點或自訂網域的主機標頭值。我想透過 API Gateway REST API 的私有整合轉送主機標頭。
簡短說明
Amazon API Gateway 會覆寫它在向整合端點發出的原始請求中收到的主機值。Amazon API Gateway 會根據整合請求端點網址指派主機值。
若要在後端使用 API Gateway 端點的主機標頭值,請使用自訂標頭。在包含請求主機標頭值的整合請求中使用自訂標頭。
解決方法
建立 API Gateway REST API
1. 開啟 API Gateway 主控台。
2. 選擇建立 API。
-或-
如果這是您第一次使用 API Gateway,則會顯示向您介紹此服務的頁面。在 REST API 中,選擇建置。當建立範例 API 快顯視窗出現時,選擇確定。
3. 對於選擇 API 類型,在 REST API 窗格中選擇建置。
4. 在建立新 API 中,選擇新增 API。
5. 在設定中,輸入下列值:
對於 API 名稱,請輸入描述 API 用途的名稱。例如: ForwardHostHeader。
(選用) 對於說明,請輸入 API 用途的簡短描述。例如,轉送私有整合的主機標頭。
對於端點類型,請選擇區域、邊緣最佳化或私有。
6. 選擇建立 API。
設定 API 的方法請求和整合請求
1. 開啟 API Gateway 主控台。
2. 遵循指示以使用 API Gateway 主控台建立具有私有整合的 API。
3. 在方法請求中,新增 HTTP 請求標頭作為主機。
4. 在整合請求中,展開 HTTP 標頭,然後選擇新增標頭。
5. 輸入自訂標頭的名稱。例如,my_host。
6. 在映射自中,輸入方法請求。例如,method.request.header.host。然後,選擇核取記號圖示。
將 API 部署至新階段
1. 開啟 API Gateway 主控台。
2. 遵循指示以將 REST API 部署至階段。如需詳細資訊,請參閱使用 API Gateway 主控台設定階段。
3. 在階段編輯器窗格中,將調用網址複製到剪貼簿。使用此網址來調用 API。
REST API 調用網址範例:
https://1a2bc3d456.execute-api.us-east-1.amazonaws.com/stage
4. 如果您在後端使用 Application Load Balancer,請新增規則以測試您的組態。選擇「http 標頭」作為條件,然後將 "my_host" 指定為與 API Gateway 主機值相同的標頭和值。
5. 將 API Gateway 網址貼到瀏覽器視窗中以調用 API。API Gateway 中的 "my_host" 標頭組態會將 API Gateway 主機值轉送至 Application Load Balancer。Application Load Balancer 會比對條件集,然後依設定傳回回應。
相關資訊
使用 API Gateway 主控台設定請求與回應資料映射
使用 API Gateway 主控台設定 API
Amazon API Gateway 重要注意事項
如何將 API Gateway REST API 與 Application Load Balancer 整合?