【发布时间】:2019-03-26 06:46:30
【问题描述】:
代替
(A) 遵循更传统的路线在 AWS 上运行 Web 应用程序(例如,在 AWS EC2 或 Beanstalk 上使用 Ruby/Sinatra 或 Python/Flask),或
(C) 在 S3 中创建静态 HTML 和 JavaScript 文件,在 AWS Lambda 中创建动态 API 端点(将 JSON 数据发送到那些通过 JavaScript 使用/解释该数据的静态网页),
我想达到一个中间地带:
- (B) 在 AWS Lambda(例如 Python)中创建 HTTP 终端节点,这些终端节点读取并使用 HTML 模板生成对客户端的完整 HTML 响应。
该设置将生成一个无服务器 Web 应用程序,其中 AWS Lambda 函数提供服务器端(讽刺的是我没有忘记)生成的 HTML 输出。
在 AWS Lambda 函数的 Python 代码中,可以包含 HTML 代码 sn-ps,在函数中修改(填充数据),并将 HTML 作为 text/html 输出返回给客户端。这种方法的缺点是 HTML 模板随后被“嵌入”到 Python 代码中,而不是外部的单独文件中。
Q1:如何在代码包的某个地方引用 HTML 模板文件 - 模板应该是包的一部分 - 让 Python 函数读取该文件,并通过模板中的变量替换生成 HMTL 页面?
Q2:如何使用 AWS 无服务器应用程序模型 (AWS SAM) 在我的项目中指定/包含/链接到一组 HTML 模板文件?
【问题讨论】:
-
以下内容可能对使用无服务器 AWS lambda 提供静态文件(您的模板)有用。 :github.com/activescott/serverless-aws-static-file-handler 我一直想试试这个,但没有机会。尽管如此,这是一项有趣的尝试!
-
关于添加“python”标签:已接受,但这不是问题的核心。 Python 只是编写 AWS Lambda 函数的示例语言,它也可以是 Node.js/JavaScript、Java、Go 或 C#。
-
在 Node.js 中,我通常使用 Handlebars 来达到同样的效果:handlebarsjs.com
标签: python amazon-web-services aws-lambda aws-sam