我喜欢快速执行代码(因为我从Python切换到Go)并且我不喜欢依赖项。亚马逊建议使用SDK进行更简单的身份验证(但在Lambda中我可以从环境变量中获取IAM的令牌),并且因为内置到SDK中重试错误(我认为几行代码)。是的,使用SDK编写代码速度更快,但是使用纯HTTP API而不是SDK有哪些额外的注意事项?我太疯狂了几毫秒?这样的优化值得吗?
答案 0 :(得分:2)
您使用AWS执行的任何操作都是API调用的结果,无论是由CLI,Web控制台还是SDK执行。
SDK可以更轻松地与这些API进行交互。虽然你可能会对一些电话进行一些小的改进,但总的来说你会花很多时间来做很少的好处。
答案 1 :(得分:0)
我认为所表达的对绩效的关注掩盖了真正的权衡。
考虑到有人必须维护您的代码 - 如果您使用API,测试区域很小,但AWS API可能会更改或被弃用;如果你是一个SDK,那么下一个程序员会插入新的SDK版本并希望它能够正常运行,但是如果它没有,那么它们会因为SDK的重量而陷入困境。
同样,想象某人需要对此应用程序进行安全审查,或者介绍SDK尚未涵盖的内容(让我们假设将会计组从调用者角色传播到底层存储)。
我认为没有一个明确的答案。
以下是建议:
我必须使用Docker(更好的API和SDK / libs)来决定类似过去的。以下是它的表现:
为了进行测试,我们最终使用了测试版的Docker Python绑定:prod版本还不够,绑定(你的SDK)整体上非常好而且清晰。
对于日志抓取,我使用了HTTP调用(你的API),“因为性能”,实际上使用API vs SDK比较心理负载,并且因为绑定(SDK)不支持asyncio。