Lambda与支付网关

时间:2017-01-03 05:01:22

标签: lambda endpoint aws-api-gateway amazon-vpc

我正在尝试通过aws lambda将API网关中的lambda与VPC端点集成。

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 gate对动态值做同样的事情,我将ip和主机静态放入模板中,如下所示。

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

所以我向邮递员提出要求这个api请求到达lambda函数。我的问题是我将如何将路径传递给我的webservice到这个lambda函数。我按照上面的链接使用了模板和lambda。所以,当我打电话给网络服务时,请告诉我如何通过webservice网址。目前它正试图调用在api网关中定义的资源路径,例如。 / testgateway当中将显示404错误。而Web服务路径看起来像

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

我觉得我犯了一些愚蠢的错误。

请建议我是新来的。

由于 Gurvinder

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,因为在aws支付网关中我们必须为每个API网址附加模板。所以在模板而不是“$ context.resourcePath”中,我使用了解决问题的webservice的路径。