Amazon web services 负载测试AWS SDK客户端

Amazon web services 负载测试AWS SDK客户端,amazon-web-services,aws-sdk-net,Amazon Web Services,Aws Sdk Net,推荐的性能测试AWS SDK客户端的方法是什么?我基本上只是列出/描述资源,想看看查询10k对象时会发生什么。AWS是否提供了某种类型的模拟API,或者我真的需要请求每种类型10k的资源来实现这一点 当然,我至少可以在两个层面上进行模拟: SDK:我用自己的接口包装SDK并创建模拟。这不会使用SDK的JSON到对象代码,我的模拟会影响AppDomain,并增加内存、垃圾收集等 REST API:据我所知,SDK只是REST API的包装(因此对象中显示了HTTP响应代码)。似乎我可以配置SDK以

推荐的性能测试AWS SDK客户端的方法是什么?我基本上只是列出/描述资源,想看看查询10k对象时会发生什么。AWS是否提供了某种类型的模拟API,或者我真的需要请求每种类型10k的资源来实现这一点

当然,我至少可以在两个层面上进行模拟:

  • SDK:我用自己的接口包装SDK并创建模拟。这不会使用SDK的JSON到对象代码,我的模拟会影响AppDomain,并增加内存、垃圾收集等
  • REST API:据我所知,SDK只是REST API的包装(因此对象中显示了HTTP响应代码)。似乎我可以配置SDK以转到自定义端点。 这将mock与主AppDomain隔离开来,更具代表性,但当然我仍在对响应时间、限制等进行一些假设

  • 除了上述需要很长时间才能实现之外,我还想确保我的代码不会在本地或AWS大规模失败。我唯一能保证这一点的方法是在AWS创建(并支付)资源。我是否遗漏了什么?

    当你查询10k或更多的对象时,你必须处理:

  • 分页-API通常每次调用只返回有限数量的项,为下一次调用提供
    NextToken
  • 速率限制-如果您对某些AWS API施加了太多的限制,他们将对您进行速率限制,SDK可能会报告为某种速率限制超出了异常
  • 内存使用情况-希望在处理之前不要在内存中收集所有结果。在结果到达时进行处理,以节省操作内存
  • 除此之外,我不明白为什么它不起作用


    更新:另请查看-AWS模拟库(用于Python),该库也可以在独立模式下运行,用于其他语言。但是,与任何模拟一样,它的行为可能与实际情况不完全相同,例如在速率限制行为方面。

    当您查询10k或更多对象时,您必须处理:

  • 分页-API通常每次调用只返回有限数量的项,为下一次调用提供
    NextToken
  • 速率限制-如果您对某些AWS API施加了太多的限制,他们将对您进行速率限制,SDK可能会报告为某种速率限制超出了异常
  • 内存使用情况-希望在处理之前不要在内存中收集所有结果。在结果到达时进行处理,以节省操作内存
  • 除此之外,我不明白为什么它不起作用


    更新:还可以查看AWS模拟库(用于Python)这也可以在独立模式下运行,以便与其他语言一起使用。但是,与任何模拟一样,它的行为可能与真实情况不完全相同,例如在速率限制行为方面。

    是的,我考虑过这些。我的问题实际上是如何测试一个真实的场景,但理想情况下,不必增加每个资源的10k(需要支持票,可能不被批准).基本上,我能站起来模拟一个我可以查询并代表真实环境的环境吗?AWS或其他任何人提供类似的东西吗?速率限制实际上是一个完美的例子,如果我事先不知道会发生这种情况,我自己的模拟可能无法解释。@Nelson Rothermel检查-AWS模拟library(用于Python)这也可以在独立模式下运行,以便与其他语言一起使用。但是,与任何模拟一样,它的行为可能与真实情况不完全相同,例如,在速率限制行为方面。是的,我考虑过这些。我的问题实际上是如何测试现实场景,但理想情况下不必增加每个资源的10k(需要支持票,可能不被批准).基本上,我能站起来模拟一个我可以查询并代表真实环境的环境吗?AWS或其他任何人提供类似的东西吗?速率限制实际上是一个完美的例子,如果我事先不知道会发生这种情况,我自己的模拟可能无法解释。@Nelson Rothermel检查-AWS模拟library(用于Python)也可以在独立模式下运行,以便与其他语言一起使用。但是,与任何模拟一样,它的行为可能与实际情况不完全相同,例如在速率限制行为方面。