gpt4 book ai didi

ruby - 我如何找出超出 AWS EC2 请求限制的原因?

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:10 24 4
gpt4 key购买 nike

我有一个 AWS 应用程序,它启动和终止来自几个不同 AMI 的许多 EC2 实例。

我开始通过 ruby​​ api 收到此错误,超出请求限制。我相信对于大多数帐户来说,这个限制是每小时 2,000 左右。但是在查看了我知道要检查的所有日志之后,我找不到任何证据表明我们的使用量接近这个高。

有没有办法从 Amazon 获取我正在执行的 EC2 API 查询的账目?

是否有任何其他技巧或好方法来确定我的过度使用,或者是什么导致了错误?

最佳答案

您可以通过 AWS.config 为 aws-sdk gem 启用日志记录。只需传入一个 ruby​​ Logger 实例即可。

require 'logger'
AWS.config(:logger => Logger.new($stdout))

您可能会遇到这样一种情况,它正在运行 n+1 个查询以从您的 EC2 资源中获取属性。这是一个例子:

ec2 = AWS::EC2.new
ec2.instances.each do |i|
puts i.status
end

执行 1 个请求以获取每个实例的 ID,然后为每个实例执行 1 个请求以获取其状态。您可以通过在 memoize block 中运行代码来改进这一点:

AWS.memoize do
ec2.instances.each do |i|
puts i.status
end
end

您还可以使用 AWS.start_memoizing(和 AWS.stop_memoizing)包围更大的代码区域。我强烈建议阅读这篇关于集合如何在 aws-sdk 中工作的博客文章:http://aws.typepad.com/aws/2012/01/how-collections-work-in-the-aws-sdk-for-ruby.html

关于ruby - 我如何找出超出 AWS EC2 请求限制的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com