我是API网关和AWS Lambda的新手,我正在尝试在具有以下元素的场景中使用它们:
我想要做的是能够通过使用API网关和Lambda来http://myprivateIp/myexample/index.hml,因为它似乎在AWS文档中提出。然后,我重新使用了基本的Hello World lambda示例(AWS蓝图之一)作为我的第一个lambda函数,并按照向导中的要求包含了VPC详细信息(也包含私有子网)。我还创建了一个带有一个资源的示例API(在本例中为myexample)和带有Lambda函数集成类型和Hello World函数的Get方法。根据文档,我创建了正确的权限(http://docs.aws.amazon.com/apigateway/latest/developerguide/create-lambda-roles.html)。我已经从我的API测试了GET方法,它正确地返回响应" Hello World"根据AWS预先存在的蓝图。我知道这可能听起来像一个非常天真的问题,但我不确定我是否真的证明我能打到我的VPC?我希望能够从我的index.html页面返回示例文本,例如,这可能吗?在这种特定情况下,我是否误解了AWS lambda的用途?
感谢您的帮助,
修改
所以,我在Node JS 4.3中整理了以下内容:
'use strict';
console.log('We are about to send a Get Request');
exports.handler = function(event, context, callback) {
var http = require("http")
var request = http.get("http://domain/example/index.html")
console.log('"This is my request":"' + request + '"');
callback(null, "The URL is succesfully retrieved")
};
测试成功运行,我是否正确地说它确实证明我可以在VPC上运行一个页面?
答案 0 :(得分:1)
您是对的 - 只要您的Lambda函数配置为在同一个VPC中运行,您就可以通过Lambda函数向VPC中的端点发出HTTP请求。
因此,您可以使用API网关调用Lambda并从VPC内的HTTP端点代理响应。
API网关无法直接在VPC中调用HTTP端点,因此建议您使用Lambda的当前方法。
答案 1 :(得分:-2)
您可以在Lambda函数中将EC2与私有IP连接。这意味着您可以通过Lambda函数点击您的VPC。