個人域名串接 api gateway + lambda

0

我有一個申請好的域名(GoDaddy),目前已經確認開通且可以連線 現在我想把他的子域名拿來串接api gateway,而api gateway後面是lambda

設定架構大概是 API1下面有兩個route,分別是/test1 與 /test2,不同的route背後有各自的lambda(所以一共2個),內部測試都正常 但當我使用子域名做API mapping後,卻無法觸發各自的API,只有觸發/ 的API

舉例: API1 /test1 -> lambda_test_1 /test2 -> lambda_test_2

API mapping: api.example.com/test1 觸發lambda_1 api.example.com/test2 還是觸發lambda_1

想請問這樣的情況該如何修正,謝謝

1 個回答
1

您遇到的問題可能與API Gateway的路由設置和自定義域名的映射有關。以下是一些可能的解決方案:

  1. 確保API Gateway的階段(Stage)設置正確: 檢查您的API部署階段是否正確配置了所有路由。確保 "/" 和 "/test" 都在同一個階段中正確部署。

  2. 檢查自定義域名的基本路徑映射: 在API Gateway控制台中,檢查您的自定義域名設置。確保基本路徑映射(Base Path Mapping)正確設置。如果您只有一個映射指向根路徑 "/",可能需要添加額外的映射來處理子路徑。

  3. 使用代理資源: 考慮在API Gateway中使用代理資源 "{proxy+}"。這允許將所有請求轉發到單個Lambda函數,然後在該函數中處理不同的路由邏輯。

  4. 檢查Lambda函數的事件對象: 在Lambda函數中,檢查傳入的事件對象,特別是 "path" 和 "resource" 字段,以確保API Gateway正確傳遞路徑信息。

  5. 使用Lambda代理集成: 如果尚未使用,考慮將API方法設置為Lambda代理集成。這允許更靈活地處理請求和響應。

  6. 檢查API Gateway日誌: 啟用API Gateway的日誌記錄,並檢查日誌以查看請求如何被路由和處理。

  7. 重新部署API: 有時,簡單地重新部署API可以解決路由問題。

如果以上方法都無法解決問題,可能需要重新檢查整個API Gateway配置,確保所有設置都正確無誤。如果問題仍然存在,可能需要聯繫AWS支持以獲取進一步協助。
Sources
Lambda proxy integrations in API Gateway - Amazon API Gateway
Set up Lambda proxy integration for API Gateway using the AWS CLI - Amazon API Gateway
Set up Lambda custom integrations in API Gateway - Amazon API Gateway

profile picture
已回答 2 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南