2017-01-03 188 views
0

我正在嘗試通過aws lambda將API中的lambda與VPC終端集成。支付網關與VPC的Lambda集成

https://aws.amazon.com/blogs/compute/using-api-gateway-with-vpc-endpoints-via-aws-lambda/

我的問題是我的我在VPC六種不同類型的web服務的地方。所以試圖用lambda函數調用它們並取回結果。所以我按照上述鏈接按照說明操作。但我被困在一個地方。在lambda函數中

var options = { 
host: event.requestParams.hostname, 
port: event.requestParams.port, 
path: event.requestParams.path, 
method: event.requestParams.method 
}; 

如果我靜態提供所有的值,那麼我的請求會被傳遞給我在VPC中的web服務。這沒關係。所以然後我嘗試使用api門做同樣的動態值,在那裏我把IP和主機靜態地放在模板中,如下所示。

#set($allParams = $input.params()) 
{ 
"requestParams" : { 
"hostname" : "XXX.XXX.XX.XX", 
"port" : "XX", 
"path" : "$context.resourcePath", 
"method" : "$context.httpMethod" 
} 

所以我向postman發出了這個api請求到達lambda函數的請求。我的問題是,我將如何將路徑傳遞給我的web服務,以此lambda函數。根據上面的鏈接,我使用了模板和lambda。所以當我打電話給web服務時,請讓我知道我將如何通過webservice url。目前它正在嘗試調用在api網關中定義的資源路徑,例如。/testgateway當然會顯示404錯誤。而Web服務路徑將看起來像

例如。 http://host/webserviceType/webservice

我覺得我在做一些愚蠢的錯誤。

請建議,因爲我是新來的aws。

感謝 Gurvinder

+0

你想通過主機名/ IP到API網關或以某種方式奇蹟般地通過API網關找到? –

回答

0

我已經解決了這個問題,因爲在AWS支付網關,我們必須重視模板,每個API網址。所以在模板而不是「$ context.resourcePath」我已經使用瞭解決問題的web服務的路徑。