是否可以使用API​​而不是SDK?

时间:2018-05-07 21:10:35

标签: amazon-web-services go

我喜欢快速执行代码(因为我从Python切换到Go)并且我不喜欢依赖项。亚马逊建议使用SDK进行更简单的身份验证(但在Lambda中我可以从环境变量中获取IAM的令牌),并且因为内置到SDK中重试错误(我认为几行代码)。是的,使用SDK编写代码速度更快,但是使用纯HTTP API而不是SDK有哪些额外的注意事项?我太疯狂了几毫秒?这样的优化值得吗?

2 个答案:

答案 0 :(得分:2)

您使用AWS执行的任何操作都是API调用的结果,无论是由CLI,Web控制台还是SDK执行。

SDK可以更轻松地与这些API进行交互。虽然你可能会对一些电话进行一些小的改进,但总的来说你会花很多时间来做很少的好处。

答案 1 :(得分:0)

我认为所表达的对绩效的关注掩盖了真正的权衡。

考虑到有人必须维护您的代码 - 如果您使用API​​,测试区域很小,但AWS API可能会更改或被弃用;如果你是一个SDK,那么下一个程序员会插入新的SDK版本并希望它能够正常运行,但是如果它没有,那么它们会因为SDK的重量而陷入困境。

同样,想象某人需要对此应用程序进行安全审查,或者介绍SDK尚未涵盖的内容(让我们假设将会计组从调用者角色传播到底层存储)。

我认为没有一个明确的答案。

以下是建议

  • 保持一致 - API或SDK(在给定的应用程序内)
  • 考虑更大的图片(你打算写多少个应用程序?)
  • 不要害怕以后改用其他方法

我必须使用Docker(更好的API和SDK / libs)来决定类似过去的。以下是它的表现:

为了进行测试,我们最终使用了测试版的Docker Python绑定:prod版本还不够,绑定(你的SDK)整体上非常好而且清晰。

对于日志抓取,我使用了HTTP调用(你的API),“因为性能”,实际上使用API​​ vs SDK比较心理负载,并且因为绑定(SDK)不支持asyncio。