Lambda 与来自支付网关的 VPC 集成

Lambda integration with VPC from payment gateway

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

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

我的问题是我在 vpc 中有六个不同类型的网络服务位置。所以尝试用 lambda 函数调用它们并取回结果。所以我按照上面的说明进行操作 link。但我被困在一个地方。在 lambda 函数中

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

如果我静态提供所有值,那么我的请求将传递到 VPC 中的我的网络服务。没关系。然后我尝试使用 api 门对动态值执行相同的操作,我将 ip 和主机静态地放在模板中,如下所示。

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

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

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

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

我是 aws 新手,请多多指教。

谢谢 古文德

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