1
3
您所说的是直接从运行在客户机上的javascript调用lambda。 我相信唯一的方法就是在你的react前端嵌入awssdkforjavascript。见: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/browser-invoke-lambda-function-example.html 这有几个安全问题,只有其中一些可以减轻。 首先,您需要将aws凭证硬编码到您的前端以供全世界看到。这些凭据的访问权限可能在范围内受到限制,但要非常小心才能正确执行此操作,否则您将为某人的加密挖掘操作付费。 假设您只希望某些人将文件上载到您正在付费的存储服务,则需要某种形式的身份验证和授权。api网关并不真正执行身份验证,但它可以执行授权,尽管它可以连接到其他aws服务,如cognito或lambda(自定义授权程序)。你必须自己把它构建到你的后端lambda中。绝对可行,而且可能不会比使用来自api网关的自定义授权程序付出更多的努力。 连接到lambda direct的主要问题是lambda具有快速扩展的能力,如果有人试图用拒绝服务攻击攻击您,这可能是一个问题。lambda很便宜,但是一天24小时运行1000个并发实例会增加开销。 api网关允许您限制每秒/分钟/小时/等等,lambda只允许您限制任何给定时间的并发实例数。因此,如果将该限制设置为1,攻击者可能会导致该1实例每天运行24小时。 |