【发布时间】:2016-09-11 21:32:30
【问题描述】:
我对 API Gateway 和 AWS Lambda 非常陌生,我正在尝试在具有以下元素的场景中使用它们:
- 具有私有子网和公有子网的 VPC
- 安装了 Lamp 的 AMI EC2(免费层级)
- 一个简单的 index.html 页面,其中包含一些文本(显示“这是一个测试页面”)
我想做的是能够通过使用 API 网关和 Lambda 来攻击 http://myprivateIp/myexample/index.hml,正如 AWS 文档中似乎建议的那样。然后,我为我的第一个 lambda 函数重新使用了基本的 Hello World lambda 示例(AWS 蓝图之一),并按照向导中的要求包含了 VPC 详细信息(也包含私有子网)。我还创建了一个示例 API,其中包含一个资源(在本例中为 myexample)以及具有 Lambda 函数集成类型和 Hello World 函数的 Get 方法。根据文档,我创建了正确的权限 (http://docs.aws.amazon.com/apigateway/latest/developerguide/create-lambda-roles.html)。我已经从我的 API 测试了 GET 方法,它根据 AWS 预先存在的蓝图正确返回了响应“Hello World”。我知道这听起来可能是一个非常幼稚的问题,但我不确定我是否真的证明了我可以击中我的 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 上运行的页面?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway