我正在尝试从NodeJS调用lambda函数。经过研究,我知道有两种方法可以做到:
API Gateway和AWS SDK的优缺点是什么?什么时候使用以上各种方式?
答案 0 :(得分:3)
这取决于。 API网关主要用于在不安全的环境(即浏览器,桌面应用程序,非服务器)中临时访问Lambda函数。
如果您的环境是安全的,例如在具有IAM角色的EC2实例或具有安全存储凭据的其他服务器上运行,则可以随意使用SDK并正确调用Lambda函数。
如果您需要将Lambda功能暴露给整个互联网,或者网络上的授权用户,或者任何有可能在传输过程中获取访问密钥和密钥的用户,那么您将需要坚持使用API网关在前面。
使用API网关,您可以使用API密钥或通过其他授权人(如Amazon Cognito)保护您的Lambda函数,以便用户在使用API端点之前需要登录。通过这种方式,他们只获得临时凭证,而不是任何人都无法获得的永久凭证。
答案 1 :(得分:1)
对于直接通过客户端调用lambda的安全性问题,我不同意_DF的意见。在过去的四年中,我以无服务器方式实现了Client + AWS SDK。直接打击我们拥有的所有微服务,例如Lambda,DynamoDB,S3,SQS等。
要使用此方法,我们必须深入了解IAM角色策略,包括其语句概念,身份验证令牌,AWS凭证和令牌-凭证交换。
对我来说,使用SDK更好地实现无服务器而不是API网关。为什么我更喜欢在无服务器基础设施上实现SDK而不是API?