amazon-web-services - 如何从 AWS Lambda 函数返回存储在 AWS S3 存储桶上的 HTML 页面

标签 amazon-web-services amazon-s3 aws-lambda

我的现状 :
我有一个带有资源/登录名的 AWS API 网关。当对此资源发出 GET 请求时,将调用 AWS Lambda 函数,该函数返回 HTML 登录表单。登录表单的 HTML 写在 Lambda 函数中的 JavaScript 字符串中(我在我的 Lambda 函数中使用 Node JS)。
提交表单时,相同的资源 -/login 和 POST 方法调用另一个验证登录的 Lambda 函数。如果登录失败,它会返回一个带有验证错误消息的 HTML 表单,但同样,HTML 代码是写在 JavaScript 字符串中的。

我的问题 :
是否可以在 AWS S3 存储桶中存储 HTML 文件,因此当我点击/login 时,API 网关调用 Lambda 函数,然后从 S3 存储桶获取 HTML 页面并将其返回给用户?
当表单验证失败时,我想从 S3 存储桶返回相同的 HTML,并添加错误消息。
是否可以通过这种方式互连这些组件?我正在努力解决的部分是在 S3 上存储 HTML 并从 Lambda 访问它。

最佳答案

您不需要涉及任何 Lambda 函数。您可以配置一个方法来代理 AWS API 调用,然后您唯一需要做的就是创建一个代理到 S3 API 对象 GET 的 API 网关代理。

您应该首先创建一个可以访问您的存储桶/特定 HTML 对象的 IAM 角色,记下它的 ARN,然后创建一个像图像一样的集成。

enter image description here

注意:当然,如果您想动态修改 HTML 的内容并且仅在您的内容是静态的情况下才有效,那么这不是一个有效的解决方案。如果你想这样做,你必须创建一个 Lambda 来下载 S3 对象,操作它并发送回客户端。

关于amazon-web-services - 如何从 AWS Lambda 函数返回存储在 AWS S3 存储桶上的 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38720733/

相关文章:

amazon-web-services - lambda 函数 IAM 角色是否需要 IAM 权限才能调用自身?

python - 如何在执行过程中不提供输入的情况下运行 aws-nuke?

Hibernate Search + Infinispan + S3 -- 防止字母数字文件名

javascript - 这里有什么问题吗?在 Alexa 中获取亚马逊用户的电子邮件

amazon-web-services - 对于使用 OAC 的 S3 丢失页面,CloudFront 返回 403 而不是 404

amazon-s3 - 亚马逊的 AWS 管理控制台是用什么语言编写的?

python - 将 pandas/scikit-learn 包添加到您的项目以用于 AWS lambda 的正确方法是什么

amazon-web-services - 我可以在 Lambda 函数执行之前使用 AWS Lambda Layers 作为中间件吗?

amazon-web-services - 无法使用Elasticsearch Kuromoji插件

javascript - Amazon Alexa - 未定义的语音响应