我有一个lambda函数我想从客户端调用。我打算使用API网关,但我发现排队的SNS可能很方便。
经过研究,似乎通过Javsacript SDK发布到SNS的唯一方法是通过google / facebook或AWS Cognito进行身份验证。我希望用户(更具体地说,事件)能够推送无授权,因此不能选择。
最后一个选项是对AWS密钥进行硬编码。在文档中明确表示不鼓励这样做,但在研究之后,看起来我可以为特定密钥创建安全性规定,并将其限制为仅发布到一个主题。
换句话说,它表面上是模仿REST API,不是吗?
我能想到的唯一缺点是SNS的恶意垃圾邮件。我知道AWS API允许速率限制,但在SNS上找不到类似的东西。
所以,2相关问题:
有没有办法防止恶意垃圾邮件进入SNS主题?
使用SNS而不是AWS API来调用lambdas还有其他缺点吗?
答案 0 :(得分:2)
您希望从SNS主题获得什么排队?我认为你可能会让SNS与SQS混淆。
我认为在此实例中使用SNS->Lambda
与使用API->Lambda
没有任何好处。但是,我确实看到在这种情况下使用SNS有几个缺点,因为它增加了不必要的复杂性,并且还会带来不必要的安全风险。
在这里使用SNS实际上没有任何优势,而使用API网关可以获得几个优势,例如速率限制和API密钥支持。更不用说API网关端点比SNS主题更容易从浏览器访问 。这是API网关的预期用途,为什么尝试使用SNS和硬编码AWS密钥破解某些方法?