ruby - 如何检查实例状态在 ruby​​ 中使用 "aws-sdk"?

标签 ruby amazon-web-services amazon-ec2 aws-sdk

我在 EC2 客户端上使用 run_instances 方法创建了一个实例。 我想检查实例是否正在运行。 一种方法是使用 describe_instances 方法并解析响应对象。 我想定期检查实例状态,直到实例状态为 :running。有人知道该怎么做吗? 有没有比解析响应对象更简单的方法? (我不能使用 fog gem,因为它不允许我在 VPC 中创建实例)

最佳答案

v2 aws-sdk gem 附带服务员。这些允许您安全地轮询资源以进入所需状态。他们有合理的限制,并且会在引发服务员失败错误一段时间后停止等待。您可以使用 v2 SDK 的资源接口(interface)或使用客户端接口(interface)执行此操作:

# resources
ec2 = Aws::EC2::Resource.new
ec2.instance(id).wait_until_running

# client
ec2 = Aws::EC2::Client.new
ec2.wait_until(:instance_running, instance_ids:[id])

关于ruby - 如何检查实例状态在 ruby​​ 中使用 "aws-sdk"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30325081/

相关文章:

c - Rubyinline sum 具有浮点值的数组元素

ruby - 如何告诉 CSV 创建一列而不是一行?

Ruby 哈希键以哈希值为条件的数组

amazon-web-services - 错误: Incorrect attribute value type - Terraform datasource(aws_ip_ranges)

amazon-web-services - ec2 :RunInstances 的最小 IAM 策略

amazon-web-services - AWS IAM SSM - 限制实例可以运行的文档

magento - 在 magento 的多个实例上设置 Cron 作业

java - ruby 在 Netty 中为 LengthFieldBasedFrameDecoder 参数构建一个文件

python - 未找到 subprocess.call 和 os.system 返回

node.js - 如何使用 Express.js 从在本地系统上运行的 node.js 应用程序连接到在 EC2 上运行的 redis?