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