2017-04-02 36 views
0

我在探索使用AWS api網關通過HTTP調用調用lambda函數的選項。我有一個現有的Nginx負載均衡器,提供微服務。當我嘗試添加一個位置添加塊的代理通到AWS API網關,proxy從現有的nginx傳遞aws api網關lb

location /foo { 
    proxy_pass <aws api gateway url>; 
} 

,這是解決主機名到IP例如:10.20.30.40,而是直接查詢時AWS API網關返回400錯誤的請求來自IP。

有沒有什麼辦法可以從我現有的nginx服務器使用AWS API網關調用lambda?

+0

如果您使用已部署的URL而不是ARN,這是否正常工作? –

+0

編輯了這個問題,我正在使用該URL。 –

回答

0

如您所述,如果您嘗試通過IP訪問,則API網關將返回錯誤。您必須配置您的代理以發送Host標題,就像直接訪問API一樣。根據nginx文檔,這是通過proxy_pass_header指令實現的。

+0

謝謝,爲此添加了'proxy_ssl_server_name on'。正如你所提到的,服務器名稱沒有被傳遞,並且設置了它所能夠訪問的頭文件。 –