0

我在所有AWS區域都有一個lambda函數。我有遍及全球的客戶,他們會對我的基地域example.com進行POST調用。我的(各種)負載均衡器負責確保將請求路由到最接近客戶端的區域的API網關,以便將延遲降至最低。使用AWS Route 53到API網關的路由

所以,到目前爲止,我有以下配置:部署在每個區域

  • 每個API網關的自定義域名,它公開了一個CloudFront的域名

    • lambda函數。例如,N.California地區配置了自定義域名us-west-1.example.com並調用了我的lambda的路徑映射。此API網關的CloudFront URL爲d12345123.cloudfront.net
    • 路由53託管區域中的A類型的記錄集,其中us-west-1.example.comd12345123.cloufront.net的別名。如果我打電話給us-west-1.example.com/1.0/localdb,它會返回正確的輸出。
    • Route53中的一個流量策略和一個策略記錄0123'的default.example.com類型,它具有分配給它的地理鄰近規則,它將流量重定向到CloudFront實例(與添加自定義域後公開的同一實例相同該地區的名稱)。這爲default.example.com式的託管區A類型的Route53託管區爲example.com條目A
    • 的記錄是一個別名default.example.com,讓裏面說到example.com流量可以發送到default.example.com

    這些配置後,當我做出example.com打電話,我收到的Cloudfront一個403迴應,稱這是一個Bad Request

    感謝

  • +0

    [在Amazon Route53中設置基於DNS的URL轉發]的可能重複(https://stackoverflow.com/questions/10115799/set-up-dns-based-url-forwarding-in-amazon-route53) – vascop

    +1

    到目前爲止,你會發現你認爲自己已經完成的成就和實際完成的成就之間存在差距。你的'default.example.com'不會達到你所期望的,所以回答你所問的內容將無濟於事。調用Lambda函數通常意味着使用API​​網關,並且將不同的CNAME記錄指向不同區域中的不同API網關部署是不夠的 - 對於給定的主機名,您只能將API網關配置爲期望* one *區域中的主機名。請提供更多關於您實際嘗試完成的任務和您的特定配置的詳細信息。 –

    +1

    當瀏覽器發出HTTP請求時,它會將「主機」標頭設置爲地址欄中URL中的主機名。無論中間DNS解析步驟如何,* original *主機名都是目標所見。這是你遇到的根本問題。目前還沒有一個適用於此的AWS本地,託管,無服務器解決方案。它需要區域代理服務器來重寫這些主機頭,或者重定向到區域主機名,或者......如果您的API總是需要<3秒來處理請求,那麼Lambda @ Edge中就有一個潛在的解決方案。 –

    回答

    0

    由於2017年11月的「亞馬遜API網關支持區域API端點」

    https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-regional-api-endpoints/

    與亞馬遜API網關創建REST API和自定義域時,您現在可以從兩種類型的API端點的選擇。區域API端點是從部署REST API的同一AWS區域訪問的新類型端點。這可以幫助您在API請求源自與您的REST API相同的區域時減少請求延遲。此外,您現在可以選擇將您自己的Amazon CloudFront分配與區域API端點相關聯。第二種類型的API端點是邊緣優化的API。邊緣優化的API是通過由API網關創建和管理的CloudFront分配來訪問的端點。以前,邊緣優化的API是使用API​​網關創建API的默認選項。

    要開始使用Amazon API Gateway控制檯,AWS CLI或AWS軟件開發工具包和API創建新的REST API。您還可以將現有的REST API和自定義域遷移到區域API端點。請訪問我們的文檔以瞭解更多關於此功能此功能現已在美國東部(弗吉尼亞北部),美國東部(俄亥俄州),美國西部(俄勒岡州),美國西部(北卡羅來納州)和美國東部(北卡羅來納州)可用。加拿大(中環),南美洲(聖保羅),歐盟(愛爾蘭),歐盟(法蘭克福),歐盟(倫敦),亞太地區(新加坡),亞太地區(東京),亞太地區(悉尼),亞太地區(首爾)和亞太地區(孟買)AWS地區。請訪問我們的產品頁面,瞭解有關Amazon API Gateway的更多信息。