从ruby的aws-sdk获取amazon事件

e5nszbig  于 2023-03-17  发布在  Ruby
关注(0)|答案(1)|浏览(95)

我正在尝试用ruby的aws-sdk为我的示例检索amazon生成的事件,当我监视我的示例时,这将派上用场,并且当发现事件时会发出警报。
我找到一篇文章,它允许使用python的boto库,但我目前只能使用ruby。
这些事件可在EC2 Jmeter 板-〉事件下找到。
当前事件显示示例正在降级的硬件上运行并将被停用。事件类型为“instance-stop”。
有没有一种方法可以用ruby的aws-sdk程序化地获取这些事件?

ulmd4ohb

ulmd4ohb1#

我是在浏览亚马逊网站上的ruby sdk文档和查看某个人的python代码时发现这一点的。
Python的boto库:

stats = ec2.get_all_instance_status()

在ruby和ec2对象中,并不存在像这样的方法,我在这个博客(http://ruby.awsblog.com/)上读到了更多的例子,但没有什么与我想要的相似的。
当我在IRB中摸索时,我注意到有一个客户端对象,它确实包括了“描述示例状态”,它与Python的get_all_instance_status相似(如果不是相同的话)。
然后我就能找到这个链接:
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2/Client.html
这个客户端对象基本上是一个底层查询对象,它可以访问所有的API调用。现在这是一个简单的任务,因为文档描述了我们可以通过向describe_instance_status方法传递一个options {}来查询和过滤这些结果:

>> ec2 = AWS::EC2::new(:aws_key_id => ENV['AWS_ACCESS_KEY_ID'], :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'])
>> status = ec2.client.describe_instance_status({ "instance_ids" => ["i-xxxxxxx"] });
>> status
-> {:instance_status_set=>[{:events_set=>[{:code=>"instance-stop", :description=>"The instance is running on degraded hardware", :not_before=>2013-06-25 00:00:00 UTC}], :instance_id=>"i-xxxxxxxx",...

希望这对其他寻求做类似事情的人有所帮助。

相关问题