用于RDS的AWS Ruby SDK

用于RDS的AWS Ruby SDK,ruby,amazon-web-services,amazon-rds,Ruby,Amazon Web Services,Amazon Rds,总之,我试图通过脚本确定RDS中读取副本的复制状态。这个信息似乎不是作为RDS实例的简单属性公开的,而是您必须使用较低级别的客户端类。这将返回AWS::Core::Response。因此: rds = AWS::RDS.new client = rds.client result = client.describe_db_instances({:db_instance_identifier => 'db instance id'}) 这将返回: => {:db_instance

总之,我试图通过脚本确定RDS中读取副本的复制状态。这个信息似乎不是作为RDS实例的简单属性公开的,而是您必须使用较低级别的客户端类。这将返回AWS::Core::Response。因此:

rds = AWS::RDS.new
client = rds.client

result = client.describe_db_instances({:db_instance_identifier => 'db instance id'})
这将返回:

 => {:db_instances=>[{:db_security_groups=>[{:status=>"active", :db_security_group_name=>"blah"}], :vpc_security_groups=>[], :db_parameter_groups=>[{:parameter_apply_status=>"in-sync", :db_parameter_group_name=>"blah"}], :read_replica_db_instance_identifiers=>[], :option_group_memberships=>[{:option_group_name=>"blah", :status=>"in-sync"}], :status_infos=>[{:message=>"errors message here", :status=>"error", :status_type=>"read replication", :normal=>false}], :backup_retention_period=>0, :multi_az=>false, :db_instance_status=>"available", :db_instance_identifier=>"db instance identifier", :preferred_backup_window=>"04:50-05:20", :preferred_maintenance_window=>"fri:06:00-fri:06:30", :availability_zone=>"us-east-1a", :engine=>"mysql", :pending_modified_values=>nil, :license_model=>"general-public-license", :endpoint=>{:port=>3306, :address=>"endpint"}, :engine_version=>"5.5.27", :read_replica_source_db_instance_identifier=>"datamgmt-production", :publicly_accessible=>true, :db_name=>"datamgmt", :auto_minor_version_upgrade=>true, :instance_create_time=>2014-05-06 22:05:27 UTC, :allocated_storage=>40, :db_instance_class=>"instance class", :master_username=>"username"}], :response_metadata=>{:request_id=>"id"}}
根据AWS Ruby SDK,在

将返回一个散列

我现在只是想从回报中得到:status_infos部分

my_hash['status_infos'] #returns nil
my_hash['db_instances']
运行gem会将我的_散列的输出显示为颜色编码的散列,因此我不知道为什么我无法检索到我想要获取的数据。欢迎任何帮助

使用:符号而不是“字符串”访问密钥


谢谢你的回复?我怎样才能深入到筑巢中呢?my_hash[:db_instances]返回其中的所有内容。my_hash[:db_instances][0]返回第一个子组。但是我的\u散列[:db\u instances][1],我的\u散列[:db\u instances][0][1]和我的\u散列[:status\u infos]一样重新返回nil。一些尝试和错误:我的\u散列[:db\u instances][0][:status\u infos][0][:status\u type]。谢谢你的指导,明白了。散列数组,很痛苦。
my_hash['status_infos'] #returns nil
my_hash['db_instances']
my_hash[:status_infos]
my_hash[:db_instances]