使用AWS的动态网站

时间:2017-08-22 06:05:30

标签: node.js amazon-web-services amazon-s3 lambda

我想使用AWS无服务器托管动态网站。我打算使用Lambda,API Gateway,DynamoDB和S3。我的前端页面将驻留在S3中。阻止程序是会有一些动态项目,例如用户名和其他元数据,这些项目将是用户特定的。到目前为止,我知道我们能做的最好的事情就是从S3中拉出html页面。然后我如何继续将这些变量包含在这些页面中?

我会在NodeJS中编写lambda。

4 个答案:

答案 0 :(得分:0)

您提到的动态项目(例如用户名和其他元数据)的阻止程序。您可以使用AngularJS或其他Framework来处理应用程序中的动态变量。

您还可以使用AWS Cognito进行身份验证。

答案 1 :(得分:0)

对于像您所描述的无服务器网站,您需要区分静态内容和动态内容。

静态内容,如HTML页面,Javascript文件,CSS可以托管在S3存储桶中。

对于动态项目,您可以使用Javascript或任何JS框架,并使用它与几个返回动态数据的lambda进行交互。 这些lambda可以附加到API网关。

如果您想将数据存储和检索到数据库,您可以使用DynamoDB或RDS实例,这样您就不需要管理任何服务器

如果只是身份验证,您可以使用AWS Cognito。

答案 2 :(得分:0)

您的HTML(静态页面)应包含所有输入字段(在您的情况下为用户名和元数据)。您可以使用任何clide side javascript库从这些输入字段中获取值。即使你可以使用经典的JavaScript(比如document.getElementById)从输入字段中获取值,但即使它工作也是很老的方法。一旦你获得了所需的值,那么你就可以用它来组成Json来调用lambda通过API网关功能。虽然S3仅支持静态网站托管,但您可以在HTML中编写JavaScript代码,这些代码不会被视为动态(如C#,Java等)。

简而言之,您可以通过在S3中托管的静态页面中的JavaScript来实现任何内容,并按照您的Api网关/ Lambda期望的方式构建适当的Json。

答案 3 :(得分:-1)

AWS S3适用于带有角度的前端。

对于api,我在Aws ECS中的docker容器中使用nodejs。