2017-01-03 7 views
0

Я пытаюсь интегрировать лямбда в шлюз API с конечной точкой VPC через aws lambda.Лямбда-интеграция с VPC с платежного шлюза

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

Моя проблема заключается в том, что мой у меня есть шесть различных типов WebServices мест в VPC. Поэтому стараюсь называть их лямбда-функцией и возвращать результат. Поэтому я следую инструкциям в соответствии с приведенной выше ссылкой. но я застрял в месте. В лямбда-функции

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

если я обеспечиваю все значения статически, то мой запрос передается в моем WebService в VPC. это нормально. Поэтому я пытаюсь использовать api gate, чтобы сделать то же самое с динамическими значениями, где я ставил ip и хост статически в шаблоне, как показано ниже.

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

Так что я сделал запрос от почтальона, чтобы этот запрос api достигал функции лямбда. Мой вопрос заключается в том, как я пройду путь к моему web-сервису с помощью этой лямбда-функции. Я использовал шаблон и лямбда в соответствии с приведенной выше ссылкой. Поэтому, когда я поставил вызов в веб-сервис, пожалуйста, дайте мне знать, как я передам URL-адрес webservice. в настоящее время он пытается вызвать путь ресурса, который определен в шлюзе api, например./testgateway, который, конечно же, покажет ошибку 404. в то время как путь веб-сервиса будет выглядеть как

например. http://host/webserviceType/webservice.

Я чувствую, что делаю какую-то глупую ошибку.

Пожалуйста, предлагайте, поскольку я новичок в aws.

Благодаря Gurvinder

+0

Вы хотите передать имя хоста/ip на шлюз API или как-то волшебным образом узнать по API Gateway? –

ответ

0

Я решил этот вопрос, как и в AWS платежного шлюза, мы должны приложить шаблон с каждым API URL. Поэтому в шаблоне вместо «$ context.resourcePath» я использовал путь веб-службы, который решает проблему.