作为一个廉价的我,我有一个想法,前几天用AWS运行一个每月少于镍的网络应用程序:
这个方案是否可以使用基于cookie和sesssion的身份验证,因为页面由一个域名(S3)提供服务,但是javascript正在与另一个域名(API网关)通信?
我可能会遇到哪些其他问题?
答案 0 :(得分:1)
Mike Roberts写了一篇关于无服务器架构及其权衡的非常全面的文章:http://martinfowler.com/articles/serverless.html
还发现了一个专为此设计的框架,该框架在AWS上运行:https://serverless.com/
但是,此时似乎不支持持久连接(例如websockets),这对我来说是一个交易破坏者。我怀疑AWS最终会让API Gateway服务websocket并将其消息发送给Lambda,但截至今天这似乎不可能。
答案 1 :(得分:0)
我使用您提出的设计完全运行多个网络应用程序,并提取gofaas,一个教育性的Go和Lambda应用程序,以分享技术。
使用CloudFront和Lambda @ Edge身份验证功能可以为静态站点客户端设置cookie。
使用API Gateway CORS配置可以允许静态站点与API通信。
最后,这依赖于JSON Web令牌(JWT)来安全地表示您的用户,静态站点和API之间的授权声明。
以下是一些设置所有内容的指南:
答案 2 :(得分:-1)
“无服务器”架构要记住的一件事是:
“如果'这个东西真的起飞了会发生什么?”
大多数人不会考虑当您的网站变得超级受欢迎或遭受DDOS攻击时,Lambda或DynamoDB的请求率有多高。
与您的请求率一样,您的总费用也会在这些活动中出现大幅增长。因此对于“小项目”而言,低成本非常重要我通常建议坚持一些小型VM来处理处理。虽然高请求率或DDOS可能会压倒并取消您的服务,但您可能不会受到令人发指的账单的打击。
虽然无服务器非常方便进行设置,但它可以很容易地咬回来比预期更难。
注意:如果您确实发现自己的账单高于预期,请联系您的云提供商。根据具体情况,他们中的一些人可能会愿意为一部分费用提供一次性信贷。
但要准备好解释发生的事情。我还建议您拥有服务日志(不仅适用于您的应用程序),还适用于您正在使用的任何云服务。